关于mysql监控脚本怎么写会比较好的记录

最近,自己业务进行上线,上线后,需要考虑的是对各种服务进行监控,包括(httpd服务,mysqld服务等),现在想以mysqld服务为例总结下那种方式的脚本最为专业和合理:

(1).根据mysql的端口号来监控mysql的服务。(常见于监控mysql的本地服务)

比较常见的一个脚本:

1 netstat -natup|grep mysqld|awk -F‘[ :]+‘ ‘{print $5}‘

 上面是将mysqld的端口号进行了过滤,这个方法的缺点是:有可能是端口在,但是服务可能是不正常的。例如:系统负载很高,cpu的负载也很高,连接数满了,这个是其存在的问题之一。

(2).根据mysql的进程监控mysql的服务:

比较常见的一个脚本:

1 ps -aux |grep mysqld |grep -v grep|wc -l

这种方式的缺点也是和上面的一样:有可能是端口在,但是服务可能是不正常的。例如:系统负载很高,cpu的负载也很高,连接数满了,这个是其存在的问题之一。

(3). 通过mysql客户端的命令以及用账户连接mysql,然后根据确定返回的命令状态或者返回的内容来确定mysql是否正常(本地或者是远程的连接状态)。

比较常见的一个判断脚本(只是其中的一些个核心内容):

1 mysql -uroot -p1234 -e‘select version();‘>&/dev/null
2 echo $?

如果上面的$?是0 的话,说明是能够正常连接的,如果为1的话,则说明是连接失败的。

这种方式的缺点是,需要有mysql的连接客户端,要有数据的账号和密码,以及连接数据库主机的授权。

(4).通过php/java的方式直接连接mysql的方式来监控mysql的服务状态。

比较常见的一个脚本,也是比较简单的:

1 <?php
2 $conn = mysql_connect(‘root‘,‘1234‘,‘locahost‘,3306) or die(‘mysql coulc not connect‘.mysql_error());
3
4 ?>

这种方式是最接近用户的访问方式,效果是最好的,因为上面的这种方式尽管就算是端口存在,但是只要服务器的cpu负载很高,那用户的访问肯定是不正常的。

所以报警的最佳方式不是服务的报警是否开启了,而是网站的用户访问是否还是正常。这才是最佳的报警原则和方式。  我们应该从用户的角度出发考虑问题,而不是说从运维的角度来考虑问题。 所以应该在工作中使用这个方式。

时间: 2024-10-31 10:56:42

关于mysql监控脚本怎么写会比较好的记录的相关文章

mysql监控脚本二

==========主从状态监控================= export LANG=en_US.UTF-8 # monitor master-slave  监控主从同步 hostip="10.136.13.92" user="root" pass="[email protected]" message="" # 监控主从同步状态 slaveStatus=$(mysql -u${user} -p${pass}  mysq

Zabbix Windos mysql 监控脚本

说明:判断mysql主进程是否关闭,如果关闭则返回0 创建文件:MySQL-ping.vbs Set objFS = CreateObject("Scripting.FileSystemObject") Set objArgs = WScript.Arguments str1 = getCommandOutput("C:\Program Files\MySQL\MySQL Server 5.5\bin\mysqladmin -uroot -pqaz123wsx ping&qu

MySQL监控脚本

#!/bin/bash## usage() {echo "Usage: $0 [ types... ] [ limit ] "echo ""echo "Types are:"echo "[ Size ] [ Rss ] [ Swap ] [ Private ] [ Shared ]"echo ""printf "%-12s%-12s\n" "[ Size ]" &qu

zabbix:percona mysql监控插件使用方法

一.配置Zabbix Agent 1.插件安装及配置 下载地址:https://www.percona.com/downloads/percona-monitoring-plugins/ 安装percona的监控mysql软件包: rpm -ivh percona-zabbix-templates-1.1.7-1.noarch.rpm 查看rpm安装的文件路径: [[email protected] ~]# rpm -ql percona-zabbix-templates-1.1.7-1.noa

MySQL的keepalived高可用监控脚本

MySQL的keepalived高可用监控脚本 MySQL(或者其它服务)的keepalived高可用监控脚本 开发脚本需求 :我们知道,keepalive是基于虚拟ip的存活来判断是否抢占master的机制的,但是如果我们做了MySQL的keepalived的高可用的时候,就要考虑一种情况的发生,那就是如果机器网卡并没有断,二十由于MySQL服务的不稳定,或者人为的误操作,导致的服务关闭,会引起的结果就是,keepalive并不会切换,因为并不是主master的虚拟ip不存在,而是服务已经停止

用python监控mysql数据库是否可写

监控数据库是否可写,如果你的监控脚本逻辑是,写入数据库成功后显示成功,反之显示不成功然后报警.那么难题来了,数据库真的无法写入了,你的监控脚本的写入命令也会被mysql hang住,一直卡在那里,直到天荒地老,根本无法实现报警.那换个思路,如果设置个超时时间,是不是更好. #!/usr/bin/env python # -*-coding:utf8-*- import MySQLdb import re import smtplib import json from email.mime.tex

MySQL慢日志监控脚本实例剖析

公司线上的 MySQL 慢日志,之前一直没有做好监控.趁着上周空闲,我就把监控脚本写了下,今天特地把代码发出来与51博友分享一下. 针对脚本的注解和整体构思,我会放到脚本之后为大家详解. #!/bin/bash # # 本脚本用来在指定频率内监控 MySQL 慢日志的变化,并在发生增长时及时报警 # Written by sunsky # Mail : [email protected] # Date : 2014-11-17 10:00:00 # MON_FILE="$2"   # 

mysql和nginx服务是否正常监控脚本

一.监控web服务器和mysql方法 1.监控端口(nginx也相同) 1.1本地监控 netstat -tunlp|grep 3306|wc -l ss -tunlp|grep 3306|wc -l 1.2远程监控 nmap 10.117.33.98 -p 3306|grep open|wc -l echo -e "\n"|telnet 10.117.33.98 3306 2>/dev/null |grep Connected|wc -l 2.监控进程(nginx同) ps -

mysql主从同步监控脚本

mysql主从同步监控脚本,利用mysql从库中的IO和SQL进程以及延迟时间来监控主从同步是否正常,详细shell脚本如下: #!/bin/bash #author wangning #date 2017-7-17 #qq 1198143315 #Email [email protected] ################################## define variable############################# define_variable(){ ip