注意:监控MySQL需要在被监控端配置如下:
1)客户端连接mysql添加nagios用户
mysql> create database nagios;
Query OK, 1 row affected (0.00 sec)
mysql> grant select on nagios.* to nagios@'192.168.1.18' identified by 'nagios';
Query OK, 0 rows affected (0.11 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
mysql> quit 2)Nagios服务器端添加mysql监控
[root@Nagios nrpe-2.15]# vi /usr/local/nagios/etc/objects/templates/commands.cfg
# 'check_mysql' command definition
define command{
command_name check_mysql
command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -u nagios -d nagios -p nagios
} ——安装msmtp
1)下载安装msmtp
[root@Nagios Linux]# wget http://jaist.dl.sourceforge.net/project/msmtp/msmtp/1.4.31/msmtp-1.4.31.tar.bz2
[root@Nagios Linux]# tar fvx msmtp-1.4.31.tar.bz2
[root@Nagios Linux]# cd msmtp-1.4.31
[root@Nagios msmtp-1.4.31]# ./configure --prefix=/usr/local/msmtp
[root@Nagios msmtp-1.4.31]# make && make install
[root@Nagios msmtp-1.4.31]# cd /usr/local/msmtp/ 2)配置msmtp
[root@Nagios msmtp]# mkdir etc
[root@Nagios msmtp]# cd etc/
[root@Nagios etc]# vi msmtprc
account default
logfile /usr/local/msmtp/msmtp.log
host smtp.163.com
from xxxxxx@163.com
auth login
user xxxxxx@163.com
#邮箱密码
password xxxxxx 3)安装mutt
[root@Nagios etc]# yum install mutt -y 4)配置mutt
[root@Nagios etc]# vi /etc/Muttrc
set sendmail="/usr/local/msmtp/bin/msmtp"
set use_from=yes
set realname="YingTao"
set from=hypocriticals@163.com
set envelope_from=yes
set editor="vim"
set record="/usr/local/msmtp/etc/sent" 5)Nagios默认使用sendmail发送邮件、只需要把 /bin/mail 改为 /usr/bin/mutt即可。
[root@Nagios etc]# vi objects/templates/commands.cfg
# 'notify-host-by-email' command definition
define command{
command_name notify-host-by-email
command_line /usr/bin/printf "%b" "***** Nagios *****\n\nNotification Type: $NOTIFICATIONTYPE$\nHost: $HOSTNAME$\nState: $HOSTSTATE$\nAddress: $HOSTADDRESS$\nInfo: $HOSTOUTPUT$\n\nDate/Time: $LONGDATETIME$\n" | /usr/bin/mutt -s "** $NOTIFICATIONTYPE$ Host Alert: $HOSTNAME$ is $HOSTSTATE$ **" $CONTACTEMAIL$
}
# 'notify-service-by-email' command definition
define command{
command_name notify-service-by-email
command_line /usr/bin/printf "%b" "***** Nagios *****\n\nNotification Type: $NOTIFICATIONTYPE$\n\nService: $SERVICEDESC$\nHost: $HOSTALIAS$\nAddress: $HOSTADDRESS$\nState: $SERVICESTATE$\n\nDate/Time: $LONGDATETIME$\n\nAdditional Info:\n\n$SERVICEOUTPUT$\n" | /usr/bin/mutt -s "** $NOTIFICATIONTYPE$ Service Alert: $HOSTALIAS$/$SERVICEDESC$ is $SERVICESTATE$ **" $CONTACTEMAIL$
} ——测试能否通过邮箱报警
1)在被监控端关闭mysql
[root@CentOS ~]# /etc/init.d/mysqld stop
Shutting down MySQL. SUCCESS!
[root@CentOS ~]# netstat -antup |grep 3306 2)登陆WEB Nagios查看MySQL状态
3)在服务端查看日志 [默认日志路径为/usr/local/nagios/var/]
[root@Nagios ~]# cd /usr/local/nagios/var/
[root@Nagios var]# tail -f nagios.log
#检查五次、如果五次服务还是无法检测到服务是正常的,则发邮件通知。
[1388002399] SERVICE ALERT: 192.168.0.83;check_mysql;CRITICAL;SOFT;1;Can't connect to MySQL server on '192.168.0.83' (111)
[1388002459] SERVICE ALERT: 192.168.0.83;check_mysql;CRITICAL;SOFT;2;Can't connect to MySQL server on '192.168.0.83' (111)
[1388002519] SERVICE ALERT: 192.168.0.83;check_mysql;CRITICAL;SOFT;3;Can't connect to MySQL server on '192.168.0.83' (111)
[1388002579] SERVICE ALERT: 192.168.0.83;check_mysql;CRITICAL;SOFT;4;Can't connect to MySQL server on '192.168.0.83' (111)
[1388002639] SERVICE ALERT: 192.168.0.83;check_mysql;CRITICAL;HARD;5;Can't connect to MySQL server on '192.168.0.83' (111)
[1388002639] SERVICE NOTIFICATION: nagios;192.168.0.83;check_mysql;CRITICAL;notify-service-by-email;Can't connect to MySQL server on '192.168.0.83' (111) 4)登陆邮箱查看是否收到邮件 [由于是虚拟机时间没有调整、和现实时间有差别]