Nagios 是成熟的開源 IT 基礎設施監控系統,支援主機/服務狀態監控、異常通知(郵件/短信)、事件處理、Web 可視化。本文記錄雙機環境下(MySQL Master + Nagios Server)的完整部署流程。
yum install httpd gcc make perl-ExtUtils-Embed.x86_64 -y yum localinstall gd-devel-2.0.35-11.el6.x86_64.rpm -y
useradd nagios usermod -G nagios apache # Apache 需寫入 Nagios 目錄 tar jxf nagios-cn-3.2.3.tar.bz2 cd nagios-cn-3.2.3 ./configure --enable-embedded-perl make all make install make install-init make install-commandmode make install-config make install-webconf # 自動整合 Apache
yum install mysql-devel openssl-devel -y tar zxf nagios-plugins-1.4.15.tar.gz cd nagios-plugins-1.4.15 ./configure --with-nagios-user=nagios --with-nagios-group=nagios --enable-extra-opts --enable-libtap --enable-perl-modules make && make install
/usr/local/nagios/etc/nagios.cfg# 註釋掉 localhost.cfg #cfg_file=/usr/local/nagios/etc/objects/localhost.cfg # 新增服務與主機定義文件 cfg_file=/usr/local/nagios/etc/objects/services.cfg cfg_file=/usr/local/nagios/etc/objects/hosts.cfg
hosts.cfgdefine host{
use linux-server
host_name vm2.example.com
alias Nagios vm2
address 127.0.0.1
icon_image switch.gif
statusmap_image switch.gd2
2d_coords 100,200
3d_coords 100,200,100
}
define hostgroup{
hostgroup_name linux-servers
alias Linux Servers
members *
}
CREATE DATABASE nagdb DEFAULT CHARSET utf8; GRANT SELECT ON nagdb.* TO 'nagios'@'%' IDENTIFIED BY 'nagios'; FLUSH PRIVILEGES;
/usr/local/nagios/libexec/check_mysql -H 192.168.1.152 -u nagios -d nagdb -p nagios # 輸出:Uptime: 3374 Threads: 1 Questions: 11 ...
若報 libmysqlclient.so.18 not found:
ln -s $MYSQL_HOME/lib/libmysqlclient.so.18.0.0 /usr/lib/libmysqlclient.so.18
# /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
重啟 NRPE:/usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d
services.cfgdefine service{
use local-service
host_name node2
service_description mysql
check_command check_nrpe!check_mysql
notifications_enabled 1
}
service nagios restartservice httpd restarthttps://192.168.0.202/nagios(帳號 nagiosadmin,密碼安裝時設定)check_mysql_query、check_mysql_slave、check_disk、check_loadcontacts.cfg、commands.cfg 定義 notify-host-by-email 等