nagios监控linux与windows主机
经过一段时间的整理,结合个人在linux与windows服务器上的测试,写出这篇blog,希望更多地人关注nagios,虽然cacti也具有这样的功能但缺泛像nagios的警报功能。Naigos的安装:
一、 所需软件
nagios-2.9.tar.gz
nagios-plugins-1.4.7.tar.gz
imagepak-base.tar.gz
nsclient_201.zip
二、 安装
1、nagios安装
- tar –xvzf nagios-2.9.tar.gz
- mkdir /usr/local/nagios
- useradd nagios –d /usr/local/nagios
- chmod 755 /usr/local/nagios
- cd nagios-2.9
- ./configure –prefix=/usr/local/nagios –with-gd-lib=/usr/local/lib
- –with-gd-inc=/usr/local/include
- make all
- make install
- make install-init ##This installs the init script in /usr/local/etc/rc.d
- make install-commandmode
- make install-config ##将初始的配置文件安装到/usr/local/nagios/etc
注:在make install-init 这一步的时候可能会进行不下去,这时只要加个root组即可。
2、nagios-plugins的安装
- tar –xvzf nagios-plugins-1.4.7.tar.gz
- mkdir /usr/local/nagios-plugins
- cd nagios-plugins-1.4.7
- ./configure –prefix=/usr/local/nagios-plugins
- make all
- make install
安装完成以后在/usr/local/nagios-plugins会产生一个libexec的目录,将该目录全部移动到/usr/local/nagios目录下
- mv /usr/local/nagios-plugins/libexec /usr/local/nagios
3、imagepak-base的安装
tar –xvzf imagepak-base.tar.gz
解压以后是base目录
- cp –R base /usr/local/nagios/share/images/logos
4、安装过程全部结束
#p#
三、Nagios的设定:
(1)、配置apache
在apache的配置文件httpd.conf中追加
- ScriptAlias /nagios/cgi-bin/ /usr/local/nagios/sbin/
- AllowOverride AuthConfig
- Options ExecCGI
- Order allow,deny
- Allow from all
- Alias /nagios/ /usr/local/nagios/share/
- Options None
- AllowOverride AuthConfig
- Order allow,deny
- Allow from all
(2)、设置访问权限
1、在/usr/local/nagios/share目录下
- vi .htaccess
- AuthName “Nagios Access”
- AuthType Basic
- AuthUserFile /usr/local/nagios/etc/.htpasswd
- require valid-user
2、在/usr/local/nagios/sbin目录下
- vi .htpasswd
- AuthName “Nagios Access”
- AuthType Basic
- AuthUserFile /usr/local/nagios/etc/.htpasswd
- require valid-user
3、/usr/local/apache/bin/htpasswd –c /usr/local/nagios/etc/.htpasswd nagios
这个apache目录根据安装目录的不同而不同,主要所以用.htpasswd这个命令生成用户名和密码
#p#
四、配置nagios
1、在/usr/local/nagios/etc下是nagios的配置模板文件.cfg-sample,把.cfg-sample文件全部拷贝成.cfg
例如:cp nagios.cfg-sample nagios.cfg
mkdir /usr/local/nagios/etc/sample
cp *.cfg-sample !$
全部拷贝完成即可.
1、修改cgi.cfg
vi /etc/cgi.cfg
修改use_authentication=1为use_authentication=0,即不用验证.不然有一些页面不会显示。
2、然后检查配置文件是否出错
/usr/local/nagios/bin/nagios –v /usr/local/nagios/etc/nagios.cfg
出现Total Warnings: 0
Total Errors: 0
为正常
出错的话,就是.cfg文件有问题
3、启动后台进程
/usr/local/nagios/bin/nagios -d /usr/local/nagios/etc/nagios.cfg
/usr/local/etc/rc.d/nagios start
4、(如果有些页面看不到的话.可以在cgi.cfg文件中把带有authorized的选项前的#号去掉即可)这些配置完以后,基本的nagios配置完成。
#p#
五、安装监控linux类服务器的nrpe
nrpe 安装与使用
(一)远程主机的配置(192.168.0.206 linux)
1、安装openssl
- #./config –prefix=/usr/local/nagios/openssl
- #make
- #make install
2、安装nrpe与配置
- #./configure –enable-ssl –with-ssl-lib=/usr/local/nagios/openssl/lib
- –with-kerberos-inc=/usr/local/nagios/openssl/include –enable-command-args
- #make all
- #mkdir /usr/local/nagios/etc
- #mkdir /usr/local/nagios/bin
- #mkdir /usr/local/nagios/libexec
- #chown -R nagios:nagios /usr/local/nagios
- #cp nrpe.cfg /usr/local/nagios/etc
- #cp src/nrpe /usr/local/nagios/bin
- #cp src/check_nrpe /usr/local/nagios/libexec
- #vi /usr/local/nagios/etc/nrpe.cfg
改成你允许的IP
allowed_hosts=127.0.0.1,192.168.0.207(207是nagios服务器)
改成你准备监视的服务
- command[check_disk]=/usr/local/nagios/libexec/check_disk -w $ARG1$ -c $ARG2$ -p $ARG3$
检查磁盘,当 / 剩余$ARG1$%报警(浅黄色),剩余$ARG2$%“出错”(红色)-p 后为指定分区
3、启动nrpe,端口为5666
- /usr/local/nagios/bin/nrpe -c /etc/nrpe.cfg -d
4、安装监测的模块
nagios-plugins的安装
- tar –xvzf nagios-plugins-1.4.7.tar.gz
- mkdir /usr/local/nagios-plugins
- cd nagios-plugins-1.4.7
- ./configure –prefix=/usr/local/nagios-plugins
- make all
- make install
安装完成以后在/usr/local/nagios-plugins会产生一个libexec的目录,将该目录全部移动到/usr/local/nagios目录下
- mv /usr/local/nagios-plugins/libexec /usr/local/nagios
(二)服务器上的配置
1、安装openssl
- #./config –prefix=/usr/local/nagios/openssl
- #make
- #make install
2、安装nrpe(主要是使用check_nrpe模块)
- #./configure –enable-ssl –with-ssl-lib=/usr/local/nagios/openssl/lib
- –with-kerberos-inc=/usr/local/nagios/openssl/include –enable-command-args
- #make all
- #cp src/check_nrpe /usr/local/nagios/libexec
3、nagios文件的配置
vi commands.cfg
定义check_nrpe命令
- # ‘check_nrpe’ command definition
- define command{
- command_name check_nrpe
- command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
- }
4、重启nagios服务
/etc/rc.d/init.d/nagios restart (linux)
在 Nagios主机上192.168.0.207:
[root@207 etc]#vi /usr/local/nagios/etc/commads.cfg
加入以代码:
- define command{
- command_name check_ping
- command_line $USER1$/check_ping -H $HOSTADDRESS$ -p $ARG1$ $ARG2$
- }
- [root@db4 etc]#cfg=”cfg_file=/usr/local/nagios/etc/lgweb.cfg”
- [root@db4
- [email=root@db4][/email]
- etc]#echo “$cfg” >> /usr/local/nagios/etc/nagios.cfg
- [root@db4 etc]#/etc/init.d/nagios start
#p#
六、安装监控windows NT服务器的nsclient
1、客户端192.168.0.201配置
下载nsclient包
nsclient_201.zip
解压包到c:\nsclient
打开cmd命令行提示符输入:
c:
cd c:\nsclient
pNSClient.exe /install
net start nsclient
安装完成
2、服务端192.168.0.207配置
- #cd /usr/local/nagios/etc
- #vi 201web.cfg(具体内容见配置文件)
- #vi commands.cfg(添加相应的命令,见配置文件)
- #echo “cfg=/usr/local/nagios/etc/201web.cfg” >> /usr/local/nagios/etc/nagios.cfg
- #/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg(若无错误就可进行下步)
- #service nagios start
访问nagios监控的web界面:
http://192.168.0.207/nagios/index.html
故障排除:
问:将use_authentication=1设为1时会出现如下错误:
It appears as though you do not have permission to view information for any of the hosts you requested…
答:方法一,只需将/usr/local/nagios/etc/cgi.cfg中的以下几个参数前的注释去掉:
- default_user_name=nagios
- authorized_for_system_information=nagiosadmin,nagios
- authorized_for_configuration_information=nagiosadmin,nagios
- authorized_for_system_commands=nagiosadmin,nagios
- authorized_for_all_services=nagiosadmin,nagios
- authorized_for_all_hosts=nagiosadmin,nagios
- authorized_for_all_service_commands=nagiosadmin,nagios
- authorized_for_all_host_commands=nagiosadmin,nagios
#p#
关于监控linux主机mysql相关注意点:
1、server(nagios服务端192.168.0.132)
#/usr/local/nagios/libexec/check_mysql -H 192.168.0.207 -u root -p xukixu
此时可能会出现错误:Host ‘192.168.0.132′ is not allowed to connect to this MySQL server
因此只要在客户端做个mysql授权用户访问即可
2、client(客户端192.168.0.207)
- #mysql -uroot -pxukixu
- mysql>grant all privileges on *.* to
- root@192.168.0.132
- identified by ‘xukixu’;
- mysql>flush privileges;
- mysql>quit;