Nagios是一款开源的免费网络监视工具,能有效监控Windows、Linux和Unix的主机状态,交换机路由器等网络设置,打印机等。在系统或服务状态异常时发出邮件或短信报警第一时间通知网站运维人员,在状态恢复后发出正常的邮件或短信通知。
Nagios和cacti有什么区别呢?简单的来说cacti主要监控流量,服务器状态页面展示;nagios主要监控服务,邮件及短信报警灯,当然也有简单的流量监控界面,二者综合使用效果更好。(附Nagios工作简单逻辑图)
Nagios监控客户端需要借助插件及NRPE软件来实现,NRPE作为中间的代理程序,接收Nagios服务器端发来的请求,另一端在远程主机上指定的相关的监控信息。
下面简单说下nagios平台搭建
1. 准备工作
nagios-3.2.1.tar.gz
nagios-plugins-1.4.14.tar.gz
nrpe-2.14.tar.gz
2. 服务端环境搭建
useradd -s /sbin/nologin nagios
mkdir /usr/local/nagios
chown -R nagios.nagios /usr/local/nagios
tar zxvf nagios-3.2.1.tar.gz
cd nagios-3.2.1
./configure --prefix=/usr/local/nagios --with-command-group=nagios
make all
make install;
make install-init;
make install-config;
make install-commandmode;
make install-webconf;
注:
make install //来安装主程序,CGI和HTML文件
make install-init //在/etc/rc.d/init.d安装启动脚本
make install-config //来安装示例配置文件,安装的路径是/usr/local/nagios/etc
make install-commandmode //来配置目录权限
make install-webconf // 配置nagios跟apache整合
安装Nagios-plugins
tar zxvf nagios-plugins-1.4.14.tar.gz
cd nagios-plugins-1.4.14
./configure --prefix=/usr/local/nagios --with-nagios-user=nagios --with-nagios- group=nagios
make && make install
nagios访问控制设置
htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin
输入两次密码即可,登录页面的时候会用到这个密码.
Nagios测试访问
重启nagios
/etc/init.d/nagios restart ;
/etc/init.d/httpd restart ;
http://IP/nagios/
3. 添加一个客户端监控的步骤:
cp localhost.cfg 192.168.2.99.cfg
把默认配置文件里面的locahost、127.0.0.1、check_local替换成最新
因为没有在客户端安装nagios插件及NRPE,
需删掉配置文件里disk、swap、process、user、cpu等监控配置段(这里根据个人需求修改)
cd /usr/local/nagios/etc
vi nagios.cfg
在nagios.cfg 36行后加入cfg_file=/usr/local/nagios/etc/objects/192.168.2.99.cfg
最后执行:/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg没有报错即可。
4. Nagios客户端插件安装
Nagios客户端安装需要安装两个软件,nagios-plugins-1.4.14.tar.gz和nrpe-2.14.tar.gz
安装方法如下:
useradd nagios ;
tar -xzf nagios-plugins-1.4.14.tar.gz
cd nagios-plugins-1.4.14
./configure --prefix=/usr/local/nagios
make &&make install
tar -xzf nrpe-2.14.tar.gz
cd nrpe-2.14
./configure --enable-ssl --with-ssl-lib
make all && make install-plugin && make install-daemon && make install-daemon-config
chown -R nagios:nagios /usr/local/nagios/
5. Nrpe客户端配置
修改vi /usr/local/nagios/etc/nrpe.cfg 修改默认配置段的内容如下,
allowed_hosts=192.168.2.91(这里是改为服务器监控机的IP)
command[check_users]=/usr/local/nagios/libexec/check_users -w 5 -c 10
command[check_load]=/usr/local/nagios/libexec/check_load -w 15,10,5 -c 30,25,20
command[check_disk]=/usr/local/nagios/libexec/check_disk -w 20 -c 10 -p /dev/sda2
command[check_procs]=/usr/local/nagios/libexec/check_procs -w 50 -c 100
command[check_swap]=/usr/local/nagios/libexec/check_swap -w 20 -c 10
启动nrpe客户端命令:
/usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d
Nagios服务器nrpe配置
Nagios 服务器端也需要安装nrpe,同时需要定义nrpe监控命令,写command.cfg末尾即可:
define command{
command_name check_nrpe
command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
}
在服务器端对应IP的配置文件中,加入需要监控的项目:
define service{
use local-service
host_name 192.168.2.99
service_description Users_Monitor
check_command check_nrpe!check_users
notifications_enabled 1
}
其他同理,添加的方法一样。只要在客户端nrpe.cfg里面添加的监控命令,都可以在服务端引用。
Nagios监控端HTTP关键词
在真实的线上环境中,如果要监控HTTP、web、tomcat某个URL关键词,监控网站关键词是否被篡 改,如果来实现呢?
这里可以使用默认监控命令check_http命令+相关的参数来实现,如下:
在command.cfg添加如下关键词监控命令:check_http_word,参数解析:-I指定IP或者主机名,-u 指定URL,-p指定端口,-s指定关键词。
vim commands.cfg (这里是在监控服务器上的修改)
definecommand{
command_name check_http_word
command_line $USER1$/check_http -I $HOSTADDRESS$ -u$ARG1$ -p $ARG2$ -s $ARG3$
}
然后在服务器端监控主机的配置文件里面引用即可,引用的方法如下:
define service{
use local-service
host_name 192.168.2.99
service_description Discuz
check_command check_http_word!/forum.php!80!Discuz
notifications_enabled 1
}
通常在修改配置文件的时候最好是在外边命令测试一下 比如:
/usr/local/nagios/libexec/check_http -I 192.168.2.99 -u /index.php -p 80 -s "Discuz"
Nagios监控Mysql主从报警
监控Mysql可以用个nagios mysql插件,首先在command.cfg中定义如下配置:
define command{
command_name check_mysql_slave
command_line $USER1$/check_mysql -H $HOSTADDRESS$ -S -uroot -p123456
}
然后在主机配置文件中定义监控项目:
define service{
use local-service
host_name 192.168。2.99
service_description MYSQL_Slave_Monitor
check_command check_mysql_slave
}
配置完毕后 重启nagios服务 查看监控状态
Nagios邮件及短信报警
安装邮件服务:
[[email protected] objects]# yum install sendmail* mailx -y
Loaded plugins: fastestmirror
说明fastestmirror不能使用 可以禁用这个插件
- 1.修改插件的配置文件
- # vi /etc/yum/pluginconf.d/fastestmirror.conf
- enabled = 1//由1改为0,禁用该插件
- 2.修改yum的配置文件
- # vi /etc/yum.conf
- plugins=1//改为0,不使用插件
重新安装即可
重启服务
service sendmail restart;
chkconfig sendmail on
邮件测试:
echo "test" |mail -s "test" [email protected]
测试OK后
修改配置文件:
vi /usr/local/nagios/etc/objects/contacts.cfg 修改为需要发送的邮箱即可
最后重启nagios服务,可以测试关闭某个服务,过一会就会收到nagios发来的报警邮件。