您的位置:首页 > 移动开发 > IOS开发

Nagios+pnp

2013-11-07 18:20 645 查看
一、Nagios服务器安装过程1)配置服务器端IP地址
[root@localhost~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0
# Advanced Micro Devices [AMD] 79c970 [PCnet32 LANCE]DEVICE=eth0BOOTPROTO=noneHWADDR=00:0c:29:fe:39:A1ONBOOT=yesNETMASK=255.255.255.0IPADDR=192.168.6.199GATEWAY=192.168.6.1TYPE=Ethernet
A,安装前准备
安装LAMP架构
[root@localhost~]# mount /dev/cdrom /media/

[root@localhost~]# vi /etc/yum.repos.d/rhel-debuginfo.repo
[rhel-debuginfo]name=Red Hat Enterprise Linux $releasever - $basearch – Debugbaseurl=file:///media/Serverenabled=1gpgcheck=0gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
[root@localhost~]#yum install gcc glibc glibc-common gd gd-devel php-gd
[root@localhost~]# yum -y install php* mysql* http*
[root@localhost~]# service httpd start
[root@localhost~]# service mysqld start
[root@localhost~]# chkconfig httpd on
[root@localhost~]# chkconfig mysqld on

[root@localhost~]# vim /var/www/html/index.php
<?php
phpinfo();
?>
访问http://192.168.6.199/



2)安装Nagios
1)创建nagios程序用户、组
[root@localhost ~]# useradd -s /sbin/nologinnagios[root@localhost ~]# mkdir/usr/local/nagios [root@localhost ~]# chown -R nagios:nagios /usr/local/nagios/[root@localhost ~]# chmod -R 755 /usr/local/nagios/

2)保证系统中sendmail服务器要开启
[root@localhost ~]# yum install sendmail[root@localhost ~]# service sendmail statussendmail (pid 3090) 正在运行...

B、编译安装Nagios
[root@localhost ~]# cd /aaa/[root@localhost aaa]# tar zxf nagios-3.2.0.tar.gz [root@localhost aaa]# cd nagios-3.2.0[root@localhost nagios-3.2.0]# ./configure--prefix=/usr/local/nagios/[root@localhost nagios-3.2.0]# make all ; make install ; make install-init ;make install-commandmode ; make install-config ;make install-webconf[root@localhost nagios-3.2.0]# chkconfig --add nagios[root@localhost nagios-3.2.0]# chkconfig nagios on[root@localhost nagios-3.2.0]# chkconfig --list nagiosnagios 0:关闭 1:关闭 2:启用 3:启用 4:启用 5:启用 6:关闭

C、安装Nagios插件
你可以从http://www.nagios.org官方网站上下载最新的nagios插件
[root@localhostaaa]# tar zxf nagios-plugins-1.4.14.tar.gz
[root@localhostaaa]# cd nagios-plugins-1.4.14
[root@localhostnagios-plugins-1.4.14]# ./configure --prefix=/usr/local/nagios/ ; make ;make install

D、安装Nagios的汉化包
[root@localhostaaa]# tar jxf nagios-cn-3.2.0.tar.bz2
[root@localhostaaa]# cd nagios-cn-3.2.0
[root@localhostnagios-cn-3.2.0]#./configure ; make all ; makeinstall

E、修改apache配置文件
[root@localhost~]# vi /etc/httpd/conf/httpd.conf
231 User 232 Group apache391 DirectoryIndex index.phpindex.html index.html.var992 #setting for nagios993 ScriptAlias/nagios/cgi-bin "/usr/local/nagios/sbin"994 <Directory"/usr/local/nagios/sbin">995 AuthType Basic996 Options ExecCGI997 AllowOverride None998 Order allow,deny999 Allow from all1000 AuthName "nagiosaccess"1001 AuthUserFile/usr/local/nagios/etc/htpasswd1002 Require valid-user1003 </Directory>1004 Alias /nagios"/usr/local/nagios/share"1005 <Directory"/usr/local/nagios/share">1006 AuthType Basic1007 Options ExecCGI1008 AllowOverride None1009 Order allow,deny1010 Allow from all1011 AuthName "nagiosaccess"1012 AuthUserFile/usr/local/nagios/etc/htpasswd1013 Require valid-user1014 </Directory>

创建apache目录的验证文件“/usr/local/nagios/etc/htpasswd”
[root@localhost~]# htpasswd -c /usr/local/nagios/etc/htpasswd benet
New password: Re-type new password: Adding password for user benet

重启apache服务器并进行验证nagios登陆情况
[root@localhost~]# service httpd restart
停止 httpd: [确定]启动 httpd: [确定]



至此nagios服务器安装结束

二、Nagios服务器配置过程
Nagios的配置过程:主机,主机组,服务,服务组,联系人,联系人组,监控时间,监控命令等,配置文件及配置项之间相互关联,彼此引用。
(Nagios配置的核心思想)
最重要的4点:
第一:要定义监控哪些主机、主机组(hosts.cfg),服务,服务组(services.cfg)
第二:要定义这个监控项需要通过什么命令实现(commands.cfg)
第三:要定义监控的时间段(timeperiods.cfg)
最后:要定义主机或服务出现问题时要通知的联系人或联系人组(contacts.cfg)
所有的模板都在objects目录下,包括主机、服务、命令、时间、联系人、模板模块
1)定义hosts.cfg文件(监控哪些主机、主机组(hosts.cfg))
[root@localhost~]# cd /usr/local/nagios/etc/objects/
[root@localhostobjects]# ls ../
cgi.cfg hosts.cfg nagios.cfg services.cfgcommands.cfg htpasswd objects templates.cfgcontacts.cfg localhost.cfg resource.cfg timeperiods.cfg[root@localhostobjects]# vi hosts.cfg 此文件默认没有,自动创建
define host{use linux-serverhost_name webalias benet-webaddress 192.168.6.199}define host{use linux-serverhost_name mysqlalias benet-mysqladdress 192.168.6.200}define hostgroup{hostgroup_name sa-serversalias sa serversmembers web,mysql}

2)定义services.cfg(监控哪些服务,服务组(services.cfg))
[root@localhostobjects]# vi services.cfg 此文件默认没有,自动创建
################- benet web -##########################define service{use local-servicehost_name webservice_description PINGcheck_command check_ping!100.0,20%!500.0,60%}define service{use local-servicehost_name webservice_description SSHcheck_command check_ssh}define service{use local-servicehost_name webservice_description SSHDcheck_command check_tcp!22}define service{use local-servicehost_name webservice_description httpcheck_command check_http}#####################- MYSQL -##########################define service{use local-servicehost_name mysqlservice_description PINGcheck_command check_ping!100.0,20%!500.0,60%}define service{use local-servicehost_name mysqlservice_description SSHcheck_command check_ssh}define service{use local-servicehost_name mysqlservice_description ftpcheck_command check_ftp}define service{use local-servicehost_name mysqlservice_description mysqlportcheck_command check_tcp!3306}注意:hosts.cfg和services.cfg两个文件默认在/usr/local/nagios/etc并不存在,需要手动创建。
Check_ping!100.0,20%!500.0,60%命令!告警延时,丢包率!严重告警延时,丢包率。Check_ssh!22!10命令!端口!连接超时时间

3)定义contacts.cfg(定义主机或服务出现问题时要通知的联系人或联系人组)
[root@localhostobjects]# vi contacts.cfg
35 email root@localhost ;

4)定义cgi.cfg
[root@localhostetc]# cd /usr/local/nagios/etc/
[root@localhostetc]# vi cgi.cfg
107 default_user_name=benet119 authorized_for_system_information=nagiosadmin,benet131 authorized_for_configuration_information=nagiosadmin,benet144 authorized_for_system_commands=benet157 authorized_for_all_services=nagiosadmin,benet158 authorized_for_all_hosts=nagiosadmin,benet171 authorized_for_all_service_commands=nagiosadmin,benet172 authorized_for_all_host_commands=nagiosadmin,benet

5)定义nagios.cfg
[root@localhost~]# vim /usr/local/nagios/etc/nagios.cfg
19log_file=/usr/local/nagios/var/nagios.log
30 cfg_file=/usr/local/nagios/etc/objects/hosts.cfg31cfg_file=/usr/local/nagios/etc/objects/services.cfg32cfg_file=/usr/local/nagios/etc/objects/commands.cfg33cfg_file=/usr/local/nagios/etc/objects/contacts.cfg34 cfg_file=/usr/local/nagios/etc/objects/timeperiods.cfg35cfg_file=/usr/local/nagios/etc/objects/templates.cfg
三、Nagios的运行和维护1)验证nagios主配置文件的语法正确性[root@localhostetc]# /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
Total Warnings: 0Total Errors: 0
Things look okay - No serious problems were detected during thepre-flight check
2)启动与停止nagios[root@localhostetc]# service nagios start
Starting nagios:This account is currently not available. done.[root@localhostetc]# service nagios status
nagios (pid 5106) is running...[root@localhostetc]# service nagios stop
Stopping nagios: .done.[root@localhostetc]# service nagios restart
Running configuration check...done.Stopping nagios: No lock file found in/usr/local/nagios//var/nagios.lockStarting nagios:This account is currently not available. done.



四、Nagios性能分析图表的实现
1)安装PNP支持包rrdtool工具

[root@localhostaaa]# tar zxf rrdtool-1.4.5.tar.gz
[root@localhostaaa]# cd rrdtool-1.4.5
[root@localhostrrdtool-1.4.5]#./configure--prefix=/usr/local/rrdtool ; make ; make install
安装rrdtool时候的报错:configure:error:Pleasefix thelibrary issues listed above and try again解决办法:yum -y install cairo-devel libxml2-devel pangopango-devel如果上面执行后无果,请执行下面操作:yum install cgiliblibart_lgpl-develpango-devel* cairo-devel* libxml2-devel如果上面执行后无果,请执行下面操作:yum -y install zlib libpng freetypelibart_lgpllibart_lgpl-devel libxml* pango*通常编辑安装文件时,出现make无法安装,这其实是configure编译时出现了问题。问题分析思路:先不要make,步骤分开进行,先configure编译,这样容易发现是哪一步出现的错误,并解决

2)安装PNP
[root@localhost rrdtool-1.4.5]# cd /aaa/[root@localhost aaa]# tar zxf pnp-0.4.13.tar.gz [root@localhost aaa]# cd pnp-0.4.13[root@localhost pnp-0.4.13]# ./configure --with-nagios-user=nagios--with-nagios-group=nagios --with-rrdtool=/usr/local/rrdtool/bin/rrdtool --with-perfdata-dir=/usr/local/nagios/share/perfdata; make all ; make install ; make install-config ; make install-init
3)配置PNPA,创建默认配置文件
[root@localhost pnp-0.4.13]# cd /usr/local/nagios/etc/pnp/[root@localhost pnp]# cp process_perfdata.cfg-sampleprocess_perfdata.cfg[root@localhost pnp]# cp npcd.cfg-sample npcd.cfg[root@localhost pnp]# cp rra.cfg-sample rra.cfg[root@localhost pnp]# chown -R nagios:nagios/usr/local/nagios/etc/pnp/[root@localhost pnp]# chmod -R 755 /usr/local/nagios/etc/pnp/必须设置这个权限,不然web界面执行控制命令会出错chown -R nagios.nagios/usr/local/nagios/var/rwchmod -R 777/usr/local/nagios/var/rw

B,修改process_perfdata.cfg
[root@localhostpnp]# vi /usr/local/nagios/etc/pnp/process_perfdata.cfg
44 LOG_LEVEL = 2
4)修改Nagios主配置文件A,增加小太阳图标
[root@localhostpnp]# cd /usr/local/nagios/etc/objetcs
[root@localhostetc]# vi templates.cfg
define host{name hosts-pnpregister 0action_url /nagios/pnp/index.php?host=$HOSTNAME$process_perf_data 1}define service{name services-pnpregister 0action_url /nagios/pnp/index.php?host=$HOSTNAME$&srv=$SERVICEDESC$process_perf_data 1}

B、修改nagios.cfg
找到如下几行去掉注释
[root@localhostobjects]# cd ..
[root@localhostetc]# vi nagios.cfg
833 process_performance_data=1845 host_perfdata_command=process-host-perfdata846 service_perfdata_command=process-service-perfdata

C、修改commands.cfg
[root@localhost~]# vim /usr/local/nagios/etc/objects/commands.cfg
227 # 'process-host-perfdata' commanddefinition
228 define command{229 command_name process-host-perfdata230 command_line /usr/local/nagios/libexec/process_perfdata.pl231 }232 233 234 #'process-service-perfdata' command definition235 define command{236 command_name process-service-perfdata237 command_line /usr/local/nagios/libexec/process_perfdata.pl238 }

D、修改hosts.cfg文件和services.cfg文件
[root@localhost~]# vi /usr/local/nagios/etc/objects/hosts.cfg
define host{use linux-server,hosts-pnphost_name webalias benet-webaddress 192.168.6.199} define host{use linux-server,hosts-pnphost_name mysqlalias benet-mysqladdress 192.168.6.200}define hostgroup{hostgroup_name sa-serversalias sa serversmembers web,mysql}[root@localhost~]# vi /usr/local/nagios/etc/objects/services.cfg
################- benet web -##########################define service{use local-service,services-pnphost_name webservice_description PINGcheck_command check_ping!100.0,20%!500.0,60%}define service{use local-service,services-pnphost_name webservice_description SSHcheck_command check_ssh}注意项:别心急看小太阳数据,等会儿就有了。



访问http://localhost/nagios/pnp



点击小太阳,出现对主机或服务的监控页面



五,利用插件扩展Nagios的监控功能
下面我们通过在nagios服务端和客户端安装NRPE插件来搭建一个更加完善的Nagios监控系统。

1)配置nagios客户端(即远端被监控主机192.168.6.200)
A)安装Nagios插件
登陆192.168.6.200客户端
[root@localhost~]# cd /aaa/
[root@localhostaaa]# useradd -s /sbin/nologin nagios
[root@localhostaaa]# tar zxf nagios-plugins-1.4.14.tar.gz
[root@localhostaaa]# cd nagios-plugins-1.4.14
[root@localhostnagios-plugins-1.4.14]# ./configure ; make ;make install
[root@localhostnagios-plugins-1.4.14]# chown nagios:nagios /usr/local/nagios/
[root@localhostnagios-plugins-1.4.14]# chown -R nagios.nagios /usr/local/nagios/libexec/

B)安装NRPE插件
[root@localhostaaa]# cd /aaa/
[root@localhostaaa]# tar zxf nrpe-2.12.tar.gz
[root@localhostaaa]# cd nrpe-2.12
[root@localhostnrpe-2.12]# ./configure ; make all ; make install-plugin ; make install-daemon; make install-daemon-config

C)修改NRPE配置文件
[root@localhostnrpe-2.12]# vi /usr/local/nagios/etc/nrpe.cfg
79 allowed_hosts=192.168.1.1 #nagios服务器地址44 server_address=192.168.233.204 #客户机本机地址192.168.6.199:指定nagios服务器地址

D)启动NRPE
[root@localhostnrpe-2.12]# /usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d
[root@localhostnrpe-2.12]# netstat -antl |grep 5666
tcp 0 0 0.0.0.0:5666 0.0.0.0:* LISTEN E)测试NRPE
[root@localhostnrpe-2.12]# /usr/local/nagios/libexec/check_nrpe -H 127.0.0.1
NRPE v2.12如果出现NRPE v2.12表明NRPE已经正常工作

定义让nagios服务器监控我本机上的内容(当前用户数,CPU,内存,硬盘等信息)
[root@localhostlibexec]# vi /usr/local/nagios/etc/nrpe.cfg
199 command[check_users_1]=/usr/local/nagios/libexec/check_users -w5 -c 10200command[check_load_1]=/usr/local/nagios/libexec/check_load -w 15,10,5 - c 30,25,20201command[check_sda1_1]=/usr/local/nagios/libexec/check_disk -w 20% -c 10 % -p /dev/sda1202command[check_zombie_procs_1]=/usr/local/nagios/libexec/check_procs -w 5 -c 10 -s Z203command[check_total_procs_1]=/usr/local/nagios/libexec/check_procs -w 1 50 -c 200重启NRPE
[root@localhost~]# ps -elf |grep nrpe
5 S nagios 22379 1 0 75 0 - 1243 - 17:59 ? 00:00:00 /usr/local/nagios/bin/nrpe -c/usr/local/nagios/etc/nrpe.cfg -d0 R root 22586 4247 0 78 0 - 1039 - 18:09 pts/0 00:00:00 grep nrpe[root@localhost~]# kill -9 22379
[root@localhost~]# /usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg –d

2,配置nagios服务器端
登陆nagios服务器端:192.168.6.199
1)安装NRPE插件
[root@localhostetc]# cd /aaa/
[root@localhostaaa]# tar zxf nrpe-2.12.tar.gz
[root@localhostaaa]# cd nrpe-2.12
[root@localhostnrpe-2.12]# ./configure ; make ; make install-plugin

2)测试插件能否取得与客户端192.168.6.200的联系
[root@localhost nrpe-2.12]#/usr/local/nagios/libexec/check_nrpe -H 192.168.6.200
NRPE v2.12出现NRPE v2.12就证明成功联系上客户端

3)定义一个check_nrpe监控命令
[root@localhostnrpe-2.12]# vi /usr/local/nagios/etc/objects/commands.cfg
define command{ command_namecheck_nrpe command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c$ARG1$}
4)添加远程主机监控项[root@localhostnrpe-2.12]# vi /usr/local/nagios/etc/objects/services.cfg
define service{use local-servicehost_name mysqlservice_description userscheck_command check_nrpe!check_users_1}define service{use local-servicehost_name mysqlservice_description loadcheck_command check_nrpe!check_load_1}define service{use local-servicehost_name mysqlservice_description diskcheck_command check_nrpe!check_sda1_1}define servicegroup{ servicegroup_name servergroup alias server-group members web,PING,web,SSH,web,SSHD,web,http,mysql,users,mysql,load,mysql,disk}6)测试并重新启动nagios服务
[root@localhost~]# service nagios restart






测试中出现的错误
安装好nagios打开网页出现下面问题The requested URL /nagios/cgi-bin/statusmap.cgiwas not found on this server解决方案,确定安装下面的包。1.安装gd-devel回到nagios安装时解压开的目录#make devclean# ./configure --with-gd-lib=/usr/lib --with-gd-inc=/usr/include接下来#./configure --with-command-group=nagios#make all; make install; make install-init; make install-config;make install-commandmode; make install-webconf 重新回到你的nagios的sbin目录查看几个cgi脚本有没有生成。因为没有配置yum源,所以自以为上面的lib库应该都安装了。然后直接重新编译安装。后来发现还是不行。没办法,配置yum源,发现第一个gd库就没装了。一个个查,一个个装。从头到位从新配置。最后搞定....看来还是要耐心点。错误
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Nagios pnp