运维百科

Nagios使用check_mysql监控mysql

工作原理:

    利用特定的用户定期访问指定的mysql数据库。当不能访问或连不通时则报警。 

1、在生产库上安装nagios插件

    备注:编译完显示一定要有mysql支持,不然没有check_mysql插件

check_mysql插件

    nagios监控mysql使用的是 check_mysql 这个插件,需要在nagios服务器上先安装mysql-devel,然后再重新安装nagios-plugin,这样才会出现check_mysql。否则即使copy了一份,也照样用不了。

2、编译或重新编译 nagios-plugin

[root@cloud src]# tar zxf nagios-plugins-2.1.1.tar.gz
[root@cloud src]# cd nagios-plugins-2.1.1
[root@cloud nagios-plugins-2.1.1]# ./configure --prefix=/usr/local/nagios --with-nagios-user=nagios --with-nagios-group=nagios --with-command-user=nagios --with-command-group=nagcmd
[root@cloud nagios-plugins-2.1.1]# make
[root@cloud nagios-plugins-2.1.1]# make install
[root@cloud nagios-plugins-2.1.1]# chmod 755 /usr/local/nagios

3、查看 check_mysql

# ls /usr/local/nagios/libexec/check_mysql

4、建立专用数据库:

[root@svr3 ~]# /usr/local/webserver/mysql/bin/mysql -u root -p 
Enter password:  
Welcome to the MySQL monitor.  Commands end with ; or \g. 
Your MySQL connection id is 51910 
Server version: 5.5.3-m3-log Source distribution 
 
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. 
 
mysql> create database nagios;
Query OK, 1 row affected (0.00 sec) 
 
mysql> grant select on nagios.* to nagios@'%' identified by '123qaz123';
Query OK, 0 rows affected (0.00 sec) 
 
mysql> flush privileges; 
Query OK, 0 rows affected (0.00 sec) 
 
mysql> use mysql;
Database changed
 
mysql> select User,Password,Host from user; 
+----------------+-------------------------------------------+------------------+ 
| User           | Password                                  | Host             | 
+----------------+-------------------------------------------+------------------+ 
| root           | *84BB5DF4823DA319BBF86C99624479A198E6EEE9 | localhost        | 
| nagdb          | *A1F1CB851D62F002C09A0C9C4A76262473432F55 | %                | 
+----------------+-------------------------------------------+------------------+ 
14 rows in set (0.00 sec) 
12 rows in set (0.00 sec) 
 
 
在command.cfg里增加插件命令: 
#check mysql 
define command{
        command_name check_mysql
        command_line $USER1$/check_mysql -H $HOSTADDRESS$ -u $ARG1$ -d $ARG2$ -p $ARG3$
}
 
#定义服务: 
define service{
       use                             local-service,srv-pnp
       host_name                       idcyunwei
       service_description             MySQL
       check_command                   check_mysql!nagios!nagios!123qwe123
       }

错误:

Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)

解决办法:

为 mysql.sock 加个连接,比如说实际的mysql.sock在 /tmp/ 下,则
#ln -s /tmp/mysql.sock /var/lib/mysql/mysql.sock         即可


154441799.jpg

本站部分资源收集于网络,纯个人收藏,无商业用途,如有侵权请及时告知!

2
分享到:

评论 0

取消
  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址