Nagios是一款开源的免费网络监视工具,能有效监控Windows、Linux和Unix的主机状态,交换机路由器等网络设置,打印机等。在系统或服务状态异常时发出邮件或短信报警第一时间通知网站运维人员,在状态恢复后发出正常的邮件或短信通知。
(1) 在ip为172.25.0.3主机中安装nagios
# tar jxf nagios-cn-3.2.3.tar.bz2
# yum install -y gd-devel // ./configure时需要gd
#cd nagios-cn-3.2.3
# ./configure
# useradd -M -d /usr/local/nagios -G nagcmd nagios //创建nagios用户,指定家目录/usrlocal/nagios,指定用户组nagcmd。
# usermod -G nagcmd apache // 将apache加到和nagios同一个组(nagcmd) 中
# make all
这时编译完毕提示make install-init、make install-commandmode、make installconfig\make install-webconf等四项make命令,依次执行毕。
# htpasswd /usr/local/nagios/etc/htpasswd.users nagiosadmin //修改nagios登录密码
# /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg //检查nagios配置是否正确
# /etc/init.d/nagios start
在浏览器中输入172.25.0.3/nagios,出现nagios的web界面。
nagios这时还不能使用,还要安装nagios-plungin。
# /etc/init.d/httpd start
# tar zxf nagios-plugins-2.1.1.tar.gz #cd nagios-plugins-2.1.1 #yum install openssl-devel #./configure --with-nagios-user=nagios --with-nagios-group=nagios //以nagios组和nagios用户安装 #make && make install #chown nagios.nagios /usr/local/nagios/libexec/* -R #/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg #/etc/init.d/nagios reload 在/usr/local/nagios/etc/中,编辑nagios.cfg: 在cfg_file=/usr/local/nagios/etc/objects/temlates.cfg下>面加入两行: cfg_file=/usr/local/nagios/etc/objects/hosts.cfg cfg_file=/usr/local/nagios/etc/objects/services.cfg 并将下两行的localhost.cfg注释 在/usr/local/nagios/etc/objects/中, #cp localhost.cfg hosts.cfg #cp localhost.cfg services.cfg // 创建主机和服务配置文件 在hosts.cfg中,仅保留一个host和hostgroup,并适当修改。在services.cfg中,保留一个servicegroup,并适当修改。监控指令是调用/usr/local/nagios/libexec里面的check文件实现>的。比如,在该目录下
#./check_disk -w 20 -c 10 // 检测存储空间,低于20%时警告,低于10%时告警通知。 在/usr/local/nagios/etc/objects/中,有几个cfg文件: command.cfg用来配置services.cfg的check命令; templates.cfg是模板配置,包含最基本的配置如监控间隔,报警阈值等; timeperiod.cfg是监控时间配置; contacts.cfg是联系人配置,设置邮件发送。重启nagios。
(2) 监控远程主机 我们接下来在172.25.0.3(server3)中监控172.25.0.2(server2)主机。 nagios监控采集依赖数据库,因此在server2的mysql中,创建nagios用户。 在server3中#/usr/local/nagios/libexec/check_mysql -H 172.25.0.2 -u nagios -p nagios
会显示一些信息,说明能够调用server2的mysql。 或者 #mysql -h 172.25.0.2 -u nagios -p nagios 能进入nagios用户的数据库。 在command.cfg中,加入check_mysql模块: define command{ command name check_mysql command_line $USER1$/check_mysql -H $HOSTADDRESS$ -u $ARG1$ -p $ARG2$ } 在services.cfg中加入check_mysql模块: 在hosts.cfg 中加入添加server2的host模块。 define host{ use linux-server host-name server2.example.com alias Slave parents 172.25.0.3 address 172.25.0.2 icon_p_w_picpath server.gif statusmap_p_w_picpath server.gd2 2d_coords 400.100 3d_coords 400.100.100 } 重启nagios。(3) nrpe被动监控
至此nagios监控还是主动式监控。要提高效率需要被监控主机向监控机提供信息,即被动式监控。可以通过nrpe实现。
在server2上,解压nagioss-plugins-2.1.1.tar.gz和nrpe-2.15.tar.gz 安装openssl-devel 编译安装nagios-plugins。 nrpe依赖xinetd,因此安装xinetd。 编译安装nrpe 修改/etc/xinetd/nrpe,将only from后面的ip改为172.25.0.3. 修改/etc/services,在tcpmux上一行加入 nrpe 5666/tcp 依次运行下列make指令 make install-plugin make install-daemon make install-daemon-config make install-xinetd 启动xinetd服务 #scp /usr/local/nagios/libexec/check_nrpe 172.25.0.3:/usr/local/nagios/libexec在server3中,
#chown nagios.nagios check_nrpe #./check_nrpe -H 172.25.0.3 //显示nrpe版本号 #./check_nrpe -H 172.25.0.3 -c check_disk //通过nrpe调用172.25.0.2主机的check_disk 依次在command.cfg,services.cfg中加入check_nrpe模块。重启nagios服务这样nrpe被动监控搭建成功!(4)告警通知 nagios监控发现异常后会通过邮件方式通知。 在server3中的command.cfg中修改为自己的邮箱地址即可。 重启nagios。 设置自己邮箱白名单,将root@172.25.0.3添加到白名单,这样nagios有告警就会向邮箱发送邮件。 另一种通用多元化的通知方式:110云告警 登陆www.onealert.com 注册帐号,扫描二维码绑定微信。按照网页>文档说明安装配置110云告警插件。告警方式有邮件,微信,电话,短信等。至此,nagios监控搭建完毕 !