监控MYSQL服务是否异常

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了监控MYSQL服务是否异常相关的知识,希望对你有一定的参考价值。

问题描述:监控mysql服务是否正常启动,如果未正常启动,就启动MYSQL

判断mysql的方法:

1)端口判断

[[email protected] ~]# netstat -lntup | grep 3306
tcp        0      0 0.0.0.0:3306            0.0.0.0:*               LISTEN      2288/mysqld

2)进程判断

[[email protected] ~]# ps -ef | grep mysqld      
mysql     2071     1  0 11:32 ?        00:00:00 /bin/sh /usr/bin/mysqld_safe --basedir=/usr
mysql     2288  2071  0 11:32 ?        00:00:24 /usr/libexec/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib64/mysql/plugin --log-error=/var/log/mariadb/mariadb.log --pid-file=/var/run/mariadb/mariadb.pid --socket=/var/lib/mysql/mysql.sock
root     10097  6962  0 17:27 pts/1    00:00:00 grep --color=auto mysqld

3)返回值判断

[[email protected] ~]# mysql -uroot -proot -e "select version();" &>/dev/null 
[[email protected] ~]# echo $?
0

法一:实现思路是过滤出MYSQL端口3306进行判断:

#!/bin/bash
port=`netstat -lnt|grep 3306|wc-l`
if [ $port -ne 1 ]
then
  /etc/init.d/mysql start
else
    echo "MySQL is running."
fi

执行结果:
[[email protected] ~]# sh mysql1.sh  
MySQL is running.


法二:实现思路是通过MYSQL进程进行判断:

#!/bin/bash
portcess=`ps -ef|grep mysql|grep -v grep|wc -l`
if [ $portcess -ne 2 ]
then
  /etc/init.d/mysqld start
else
  echo "MySQL is running."
fi


执行结果:
[[email protected] ~]# sh mysql1.sh  
MySQL is running.

注意:过滤的字符串‘mysql’不要在脚本名字出现,如果出现则不准

法三:实现思路是通过web连接返回值判断:

#!/bin/bash
mysql -uroot -proot -e "select version();" &>/dev/null
if [ $? -ne 0 ]
then
  /etc/init.d/mysqld start
else
  echo "MySQL is running."
fi

执行结果:
[[email protected] ~]# sh mysql1.sh  
MySQL is running.


小结:web服务监控手段:

  1. 端口(本地或者远程)

  2. 本地进程

  3. header(httpd code)

  4. URL(wget,curl

本文出自 “小菜鸟” 博客,请务必保留此出处http://baishuchao.blog.51cto.com/12918589/1942148

以上是关于监控MYSQL服务是否异常的主要内容,如果未能解决你的问题,请参考以下文章

监控mysql主从同步状态是否异常,如果异常,则发生短信或邮寄给管理员

MYSQL进阶学习笔记十六:MySQL 监控!(视频序号:进阶_35)

Linux运维之Shell编程------监控MySQL错误码及主从复制同步异常

Shell开发MySQL主从监控脚本

shell 练习(13) —— 监控 httpd 进程数是否异常

性能测试监控策略汇总