1.安装篇
我使用的yum安装,
nagios服务器:
807 yum install trace 808 yum install trace -y 822 yum search nagios 823 yum install gcc glibc glibc-common gd gd-devel xinetd openssl-devel 824 yum search nagios 825 yum install nagios 835 yum search nagios-plugins 836 yum install -y nagios-plugins 837 yum install -y nagios-plugins-all 839 yum install httpd 840 yum install php 841 yum install mysql 842 yum search mysql 843 yum install mysql-server mysql 884 yum install nrpe -y 912 yum install nagios-plugins-all -y 913 yum search nagios 918 yum install *nrpe*nagios客户端:
246 yum search nrpe 247 yum install nrpe -y 328 yum install nagios-plugin 329 yum search nagios 330 yum install nagios-plugins-all -y 341 yum install nrpe* 356 yum install *nrpe* 406 yum install gcc glibc glibc-common gd gd-devel xinetd openssl-devel 453 history |grep yum2.配置:
nagios 服务端配置
找到nagios.cfg ,我的是在/etc/nagios/目录下面,其实这里不需要配置什么
nagios服务器本身也是自己的客户端,在/etc/nagios下面有一个nrpe.cfg,可以修改下他
# ALLOWED HOST ADDRESSES # This is an optional comma-delimited list of IP address or hostnames # that are allowed to talk to the NRPE daemon. Network addresses with a bit mask # (i.e. 192.168.1.0/24) are also supported. Hostname wildcards are not currently # supported. # # Note: The daemon only does rudimentary checking of the client's IP # address. I would highly recommend adding entries in your /etc/hosts.allow # file to allow only the specified host to connect to the port # you are running this daemon on. # # NOTE: This option is ignored if NRPE is running under either inetd or xinetd allowed_hosts=127.0.0.1,192.168.74.141这里主要添加了nrpe客户端所允许的服务端。
nagios server
[root@Git nagios]# /etc/init.d/nagios stop Stopping nagios: done. [root@Git nagios]# /etc/init.d/nagios restart Running configuration check...done. Stopping nagios: No lock file found in /var/run/nagios.pid Starting nagios: done.
[root@Front1 ~]# /etc/init.d/nrpe restart Shutting down nrpe: [ OK ] Starting nrpe: [ OK ] [root@Front1 ~]# netstat -ltp|grep nrpe tcp 0 0 *:5666 *:* LISTEN 20941/nrpe [root@Front1 ~]#
server端nrpe测试
[root@Git nagios]# /usr/lib/nagios/plugins/check_nrpe -H 192.168.74.238 NRPE v2.14 [root@Git nagios]# /usr/lib/nagios/plugins/check_nrpe -H 127.0.0.1 NRPE v2.14 [root@Git nagios]#成功会出现版本号
client测试链接server
[root@Front1 ~]# /usr/lib/nagios/plugins/check_nrpe -H 192.168.74.141 CHECK_NRPE: Error - Could not complete SSL handshake. [root@Front1 ~]# /usr/lib/nagios/plugins/check_nrpe -H 127.0.0.1 NRPE v2.14 [root@Front1 ~]#
这时候打开
http://192.168.74.141/nagios/ 用户名nagiosadmin 密码nagiosadmin
192.168.74.141是我nagiosserver的ip
这时候是看不到客户端的信息的。因为你根本没有把客户端加进去
4.让nagios server识别client
server端查看:
[root@Git objects]# ll total 56 -rw-rw-r-- 1 root root 7704 Aug 31 06:28 commands.cfg -rw-rw-r-- 1 root root 2166 Aug 31 06:28 contacts.cfg -rw-r--r-- 1 root root 4821 Dec 30 21:50 front.cfg -rw-r--r-- 1 root root 5403 Dec 30 21:49 localhost.cfg -rw-rw-r-- 1 root root 3124 Aug 31 06:28 printer.cfg -rw-rw-r-- 1 root root 3293 Aug 31 06:28 switch.cfg -rw-rw-r-- 1 root root 11158 Aug 31 06:28 templates.cfg -rw-rw-r-- 1 root root 3208 Aug 31 06:28 timeperiods.cfg -rw-rw-r-- 1 root root 4019 Aug 31 06:28 windows.cfg [root@Git objects]# pwd /etc/nagios/objects [root@Git objects]#
下面配置文件的host_name alias 自定义,我用的是hostname ,ip 不要写错了。
define host{ use linux-server ; Name of host template to use ; This host definition will inherit all variables that are defined ; in (or inherited by) the linux-server host template definition. host_name Front1.Webserver alias Front1.Webserver address 192.168.74.238 } define service{ use local-service ; Name of service template to use host_name Front1.Webserver service_description PING check_command check_ping!100.0,20%!500.0,60% } define service{ use local-service ; Name of service template to use host_name Front1.Webserver service_description Root Partition check_command check_local_disk!20%!10%!/ } define service{ use local-service ; Name of service template to use host_name Front1.Webserver service_description Current Users check_command check_local_users!20!50 } define service{ use local-service ; Name of service template to use host_name Front1.Webserver service_description Total Processes check_command check_local_procs!250!400!RSZDT } define service{ use local-service ; Name of service template to use host_name Front1.Webserver service_description Current Load check_command check_local_load!5.0,4.0,3.0!10.0,6.0,4.0 } define service{ use local-service ; Name of service template to use host_name Front1.Webserver service_description Swap Usage check_command check_local_swap!20!10 } define service{ use local-service ; Name of service template to use host_name Front1.Webserver service_description SSH check_command check_ssh notifications_enabled 0 } define service{ use local-service ; Name of service template to use host_name Front1.Webserver service_description HTTP check_command check_http notifications_enabled 0 }到这里还有完成
需要修改nagios.cfg,添加信息
# OBJECT CONFIGURATION FILE(S) # These are the object configuration files in which you define hosts, # host groups, contacts, contact groups, services, etc. # You can split your object definitions across several config files # if you wish (as shown below), or keep them all in a single config file. # You can specify individual object config files as shown below: cfg_file=/etc/nagios/objects/commands.cfg cfg_file=/etc/nagios/objects/contacts.cfg cfg_file=/etc/nagios/objects/timeperiods.cfg cfg_file=/etc/nagios/objects/templates.cfg # Definitions for monitoring the local (Linux) host cfg_file=/etc/nagios/objects/front.cfg cfg_file=/etc/nagios/objects/localhost.cfg #cfg_dir=/etc/nagios/objects/hosts查找关键字
[root@Git nagios]# grep -E 'localhost|front' nagios.cfg cfg_file=/etc/nagios/objects/front.cfg cfg_file=/etc/nagios/objects/localhost.cfg admin_email=nagios@localhost admin_pager=pagenagios@localhost [root@Git nagios]# pwd /etc/nagios [root@Git nagios]# l
这样就OK了.其实就是加一个节点,然后告诉nagioserver我添加了一个新的节点。
以上就是我配置的。
问题来了,如果我有100个机器,那么objects目录岂不是非常的乱。怎么解决?我看了这个文档,写的很清楚,亲自实践了,成功了,上面的hosts注释的那个就是看了他的配置
链接:http://blog.chinaunix.net/uid-21926461-id-3713609.html
-----------------------------------------------------------------------------------------------------------------------------------
define hostgroup{ hostgroup_name linux-server alias Linux Server members localhost,Front1.Webserver }