Nagios 安装详解
对于运维人员来说,获悉服务器状况的信息非常重要,针对监控服务,比较好的有cacti和nagios,cacti使用更简单一些,cacti主要是用来采集信息,CPU、MEM、流量等信息更详细,nagios主要用来是报警功能,他配置比cacti麻烦一些,信息没有cacti采集的完全,但是有cacti不具备的报警功能,nagios会有一个报警的机制,当触发了这个报警机制时,会发送邮件或者短消息;如果能做到二者的结合,无疑是最好的选择; 这篇文章主要是介绍如何安装nagios监控平台、添加被监控主机(Linux和Windows),可以满足日常之中的报警功能,后续会将cacti的更详细安装发表出来,以及nagios和cacti的结合
先去基本需要安装的包
nagios-3.2.1.tar.gz
nrpe-2.12.tar.gz
httpd-2.2.21.tar.bz2
nagios-plugins-1.4.14.tar.gz
第一步:安装apache
解压 tar jxvf httpd-2.2.21.tar.bz2
编译安装apache,将一些需要的参数加上,需要cgi的支持
./configure --prefix=/usr/local/apache --enable-so --enable-track-vars --enable-rewrite --with-zlib --enable-mods-shard=most --enable-cgi --enable-cgid --with-suexec-caller=apache
确认无error信息后
make && make install
Ok,安装好后先不用启动,等下还需要修改http.conf的文件
第二步:安装nagios
因为nagios的安装很简单,主要是nagios的插件太多,安装nagios的插件和配置比较麻烦,需要细心一点
1.先建立nagios的用户名和密码
useradd nagios
创建一个组,用于从web接口执行nagios的外部命令,将nagios和apache用户加入到组中
usermod -G nagcmd nagios
usermod -G nagcmd apache
2.安装nagios
解压tar zxvf nagios-3.2.1.tar.gz
编译安装
./configure --prefix=/usr/local/nagios --with-command-group=nagcmd --with-httpd-conf=/usr/local/apache/conf
make all
make install
make install-init
make install-commandmode
make install-config
make install-webconf
Ok,到nagios目录下,ls一下
bin etc libexec sbin share var
说明nagios安装ok
到apache conf下,会看到多出了nagios.conf配置文件,这个文件是将apache与nagios结合的文件,将其追加到http文件中
cat nagios.conf >> httpd.conf
AuthUserFile /usr/local/nagios/etc/htpasswd.users 这个是登录到nagios需要验证的用户名和密码
[root@nagios-server conf]# /usr/local/apache/bin/htpasswd -c /usr/local/nagios/etc/htpasswd.users test
New password:
Re-type new password:
Adding password for user test
添加用户test用户,web访问时会用到的
更改属主,属组
chown -R apache:apache /usr/local/apache/
chown -R nagios:nagcmd /usr/local/nagios/
3.安装nagios-plugin
tar zxvf nagios-plugins-1.4.14.tar.gz
编译安装,这个是nagios的一个插件程序
./configure --prefix=/usr/local/nagios --with-nagios-user=nagios --with-nagios-group=nagios
make && make install
之后到nagios目录下多了一个 libexec,这个目录下面是nagios插件程序
先启动apache和nagios
/usr/local/apache/bin/apachectl -k start
启动nagios之前,先检查使用有Warnings和errors
/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
结果:
Total Warnings: 0
Total Errors: 0
Ok,将nagios启动,然后使用web访问下,看是否可以看到主界面
[root@nagios-server conf]# service nagios start
Starting nagios: done.
Ok,
Web访问nagios,方法:http://IP/nagios
这里需要输入刚新加的test用户
如果发现这样的error
或者是显示出了php的源代码文件,
这是因为缺少来php程序的支持,安装php以及修改http的配置文件
Ok,还需要修改http的配置文件,因为nagios下游cgi的文件和php的文件,从nagios3.0以后都是需要php的支持,不然的话,nagios的访问都是源代码:
解决办法:
安装php 程序包
解压包:
tar zxvf php-5.3.6.tar.gz
./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache/bin/apxs --with-libxml-dir --with-png-dir --with-jpeg-dir --with-zlib --with-freetype-dir --with-gd-dir --enable-mbstring=all
Make
Make test
TEST 6175/8798 [ext/standard/tests/file/005_variation.phpt]
Make install
这时如果你的libtool不一致的话,会出现error
/usr/local/apache/modules/libphp5.so": 没有那个文件或目录
解决办法:
将系统目前的libtool卸载掉
[root@nagios-server build]# rpm -qa | grep libtool
libtool-ltdl-2.2.6-15.5.el6.x86_64
libtool-2.2.6-15.5.el6.x86_64
之后
rpm -e libtool-2.2.6-15.5.el6.x86_64 --nodeps
将apache安装目录下build下的libtool复制到php编译安装目录(解压后的目录)下
cp -rf libtool /home/software/php-5.3.6
再make clean
重新执行./configuree make make install
成功后,修改apache的配置文件:
User apache
Group apache
DirectoryIndex index.php index.html
AddType application/x-httpd-php .php .phtml
AddHandler cgi-script .cgi
之后重启apache
/usr/local/apache/bin/apachectl -k restart
再重新访问下网页
发现OK 了,nagios和apache的结合没有问题了,剩下的就是nagios的插件和监控设置了
第三步:配置nagios监控主机的配置文件
1.修改nagios配置文件
cfg_file=/usr/local/nagios/etc/objects/localhost.cfg (这个是默认针对nagios监控主机的配置,没添加一台主机,都要在这个文件中配置)
cfg_dir=/usr/local/nagios/etc/servers (被监控主机的监控配置文件目录)
剩下的switch、routers、printer现在又没有用到
修改这两个就好
2.修改联系人配置文件 contacts.cfg
define contact{
contact_name test ;
alias admin ;
service_notification_period 24x7 ;
host_notification_period 24x7 ;
service_notification_options w,u,c,r ;
host_notification_options d,u,r ;
service_notification_commands notify-service-by-email ;
host_notification_commands notify-host-by-email ;
email frank@51coolbar.com ;
}
如果多个人的话,copy一下,将email更改下即可
define contactgroup{
contactgroup_name admins
alias Nagios Administrators
members test
}
这个是组,members可以添加多个,","(逗号)隔开
3.修改localhost文件
define host{
host_name 192.168.20.221
alias local-service
address 192.168.20.221
contact_groups admins
max_check_attempts 5
notification_interval 200
notification_options d,u,r
}
剩下的保持不变,l
4.修改时间,保持默认的即可
define timeperiod{
timeperiod_name 24x7
alias 24 Hours A Day, 7 Days A Week
sunday 00:00-24:00
monday 00:00-24:00
tuesday 00:00-24:00
wednesday 00:00-24:00
thursday 00:00-24:00
friday 00:00-24:00
saturday 00:00-24:00
}
5.修改command
添加一行,其他的保持不变
#check nrpe
define command{
command_name check_nrpe
command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
}
Ok了,更改这些会把nagios平台基本都搭建起来了,使用
/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
检查nagios那一个配置文件是否有error或者warning信息
Total Warnings: 0
Total Errors: 0
如果有警告或者error信息,需要去排除,确认无误后,将nagios启动
service nagios start
Starting nagios: done.
第四步:安装NRPE
因为我要为nagios server安装nrpe,就不需要安装nagios-plugin了,如果在是被监控端上安装nrpe,需要先添加nagios用户名,和安装nagios-plugin
./configure --prefix=/usr/local/nagios/
make all
make install-plugin
make install-daemon
make install-daemon-config
去编辑nrpe的配置文件
allowed_hosts=127.0.0.1 这个是nagios server的IP
command[check_users]=/usr/local/nagios/libexec/check_users -w 3 -c 6
command[check_load]=/usr/local/nagios/libexec/check_load -w 9,7,6 -c 20,15,10
command[check_disk]=/usr/local/nagios/libexec/check_disk -w20 % -c 15% -p / -u GB
command[check_zombie_procs]=/usr/local/nagios/libexec/check_procs -w 1 -c 3 -s Z
command[check_total_procs]=/usr/local/nagios/libexec/check_procs -w 150 -c 200
command[check_ping]=/usr/local/nagios/libexec/check_ping -w 100,20% -c 200,50%
command[check_swap]=/usr/local/nagios/libexec/check_swap -w 20% -c 10%
测试本机nrpe是否ok
[root@server221 etc]# /usr/local/nagios/libexec/check_nrpe -H localhost
NRPE v2.12
将nrpe启动
/usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d
检查是否启动ok
[root@server221 etc]# netstat -anpt | grep nrpe
tcp 0 0 0.0.0.0:5666 0.0.0.0:* LISTEN 8049/nrpe
现在,通过web就可以看到nagios server 监控的信息