工作原理:
利用特定的用戶定期訪問指定的mysql數據庫。當不能訪問或連不通時則報警。
1.在生產庫上安裝nagios插件
安裝略
備注:編譯完顯示一定要有mysql支持,不然沒有check_mysql插件
2.配置mysql
----建立nagdb專用數據庫 mysql> create database nagdb default CHARSET=utf8; Query OK, 1 row affected (0.01 sec) mysql> grant select on nagdb.* to 'nagios'@'%'; Query OK, 0 rows affected (0.00 sec) mysql> update mysql.user set 'Password' = PASSWORD('nagios') where 'User'='nagios'; ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''Password' = PASSWORD('nagios') where 'User'='nagios'' at line 1 mysql> update mysql.user set Password = PASSWORD('nagios') where user='nagios'; Query OK, 1 row affected (0.03 sec) Rows matched: 1 Changed: 1 Warnings: 0 mysql> flush privileges; Query OK, 0 rows affected (0.00 sec)
----用以下命令來驗證一下: [root@node2 etc]# /usr/local/nagios/libexec/check_mysql -H 192.168.1.152 -u nagios -d nagdb -p nagios Uptime: 3374 Threads: 1 Questions: 11 Slow queries: 0 Opens: 33 Flush tables: 1 Open tables: 26 Queries per second avg: 0.003
備注:如果出現:/usr/local/nagios/libexec/check_mysql: error while loading shared libraries: libmysqlclient.so.18: cannot open shared object file: No such file or directory 請查看$MYSQL_HOME/lib [root@node2 lib]# ln -s ./libmysqlclient.so.18.0.0 /usr/lib/libmysqlclient.so.18
3.配置nrpe.cfg
[root@node2 etc]# tail /usr/local/nagios/etc/nrpe.cfg command[check_mysql]=/usr/local/nagios/libexec/check_mysql -H 192.168.1.152 -u nagios -d nagdb -p nagios //加入此行
4.配置nagios服務端
[root@node1 etc]# cat services.cfg //加入下面內容 define service{ use local-service host_name node2 service_description mysql check_command check_nrpe!check_mysql notifications_enabled 1 }
5.重啟nrpe和服務端的nagios