前面两篇做了大量监控准备工作,接下来才是进入正题,监控远程主机资源,如这里我要监控远程主机的cpu负载、内存、硬盘、网卡流量等

规范:

1).所有下载压缩包统一存放于/usr/local/src下

2).编译安装目录统一为/usr/local/下

服务端IP:10.30.20.2

客户端IP:10.30.20.10

正文

在被监控主机既客户端(以下均使用客户端),安装nagios-plugins-2.1.1.tar.gz、nrpe-2.15.tar.gz,解压后的nrpe包内有具体的配置文档

一. 客户端安装及配置

安装前准备

useradd -s /sbin/nologin nagios

1.nagios-plugins安装

tarzxvfnagios-plugins-2.1.1.tar.gzcdnagios-plugins-2.1.1./configure--prefix=/usr/local/nagios--with-nagios-user=nagios--with-nagios-group=nagiosmake&&makeinstall

2.安装xinetd服务

因本文档的nrpe启动方式是利用xinetd启动,因此需要服务器有xinetd服务

yum install xinetd -y

3.安装nrpe插件

tarzxvfnrpe-2.15.tar.gzcdnrpe-2.15./configure--prefix=/usr/local/nagios--with-nagios-user=nagios--with-nagios-group=nagiosmakeall&&makeinstall-plugin&&makeinstall-daemon&&makeinstall-daemon-configmakeinstall-xinetd

说明:非官方说明,个人理解解释其含义

make all 编译全部文件

make install-plugin 安装插件

make install-daemon 以daemon模式安装

make install-daemon-config 生成daemon配置文件

make install-xinetd 生产xinetd配置文件

修改/etc/xinetd.d/nrpe文件,使nagios服务端可以访问客户端

only_from=127.0.0.1<nagios_ip_address>

此处要做下说明,only_from有多个ip值时是以空格区分,之前配置时以逗号区分多个IP,启动xinetd服务时nrpe服务并没启动,排查了好长时间才发现是这里配置的问题

将nrpe加入xinetd,编辑/etc/services,在最后一行添加如下内容,可使用shift+g或G直接跳到最后一行

vim/etc/servicesnrpe5666/tcp#nrpe

启动xinetd服务,并查看nrpe进程

servicexinetdstartnetstat-at|grepnrpe

4.测试nrpe是否通信是否正常

/usr/local/nagios/libexec/check_nrpe-Hlocalhost


说明:

-h 帮助信息

-H 指定主机地址


监控对象监控阀值

主机资源

主机存活:check_ping-w 3000.0,80% -c 5000.0,100% -p 5(3000毫秒响应时间内,丢包率超过80%报警告,5000毫秒响应时间内,丢包率超过100%报危急,一共发送5个包)

登陆用户数:check_load-w 5 -c 10(w为警告,c为危急)

系统负载:check_load-w 15,10,5 -c 30,25,20(1分钟,5分钟,15分钟大于对应的等待进程数则警告或危急)

磁盘占用率:check_disk-w 20% -c 10% -p /(根分区剩余空间为总大小的20%警告,10%危急,-p后是根分区)

磁盘I/O:check_iostat-w 5 –c 10 (磁盘I/O的iowait超过5%报警告,超过10%报危急)

僵尸进程数:check_zombie_procs-w 5 -c 10 -s Z(有5个僵尸进程报警告,10个报危急)

总进程数:check_total_procs-w 150 -c 200(总进程到150个警告,200个报危急)

内存使用情况:check_mem-w 90% -c 95%(内存空闲率90%以上报警告,95%以上报危急)

SWAP使用率:check_swap-w 20% -c 10%(交换分区剩余空间为总大小的20%警告,10%危急)


服务监控

监控服务端口:check_tcp|check_udp-H localhost2 -p 80(主机与对应的端口号)

监控页面响应时间:check_http-H localhost2 -u http:\/\/localhost2/test.jsp –w 5 –c 10(检查页面,超过5s报警告,超过10s报危急)

检测IP连接数:check_ips-w 200 –c 250(IP连接数超过200报警告,超过250报危急)

流量监控

监控网络流量:check_traffic-V 2c -C public -H localhost2 -I 2 -w 12,30 -c 15,35 -M –(snmp版本,用户,主机,对应网卡,警告阀值,危急阀值)


5.配置nrpe监控插件及执行命令

注:只有在此定义了执行命令及执行插件,服务端才可调用

vim/usr/locat/nagios/etc/nrpe.cfgcommand[check_users]=/usr/local/nagios/libexec/check_users-w5-c10command[check_load]=/usr/local/nagios/libexec/check_load-w15,10,5-c30,25,20command[check_sda1]=/usr/local/nagios/libexec/check_disk-w20%-c10%-p/dev/sda1command[check_zombie_procs]=/usr/local/nagios/libexec/check_procs-w5-c10-sZcommand[check_total_procs]=/usr/local/nagios/libexec/check_procs-w150-c200command[check_swap]=/usr/local/nagios/libexec/check_swap-w20%-c10%

说明:以下面一条做下解释,需用此条是因为需要根据自己的实际情况修改/dev/sda1磁盘目录

插件具体用法可通过-h参数查看帮助

command[check_sda1]=/usr/local/nagios/libexec/check_disk-w20%-c10%-p/dev/sda1

command[check_sda1] #定义远程调用时的插件名或是调用方法

=/usr/local/nagios/libexec/check_disk -w 20% -c 10% -p /dev/sda1 #定义插件名的具体插件及执行参数

-w 参数定义警告阀值http://morrowind.blog.51cto.com/addblog.php

-c 参数定义严重阀值

-p 参数指定具体磁盘目录

如有其它资源需要监控,只需在nrpe.cfg中添加对应的调用名及参数即可远程调用

客户端配置到此基本结束,下面配置服务端,既nagios服务器

二.服务端配置

测试

前面客户端已经做好配置了,在配置服务端之前,可以先在服务端对客户端的监控做下测试,为什么要这么做呢?因为我在配置服务端的时候出错了,不确定是配置文件里写错了,还是压根服务端就得不到客户端的监控信息

服务端执行如下命令,会返回客户端nrpe的版本

/usr/local/nagios/libexec/check_nrpe-H10.30.20.10

执行个监控cpu load的命令

/usr/local/nagios/libexec/check_nrpe-H10.30.20.10-ccheck_load

执行成功则返回类似以下的信息

2.commands.cfg配置

在文件最后一行增加以下内容

vim/usr/local/nagios/etc/commands.cfgdefinecommand{command_namecheck_nrpecommand_line$USER1$/check_nrpe-H$HOSTADDRESS$-c$ARG1$}

3.配置主机及服务

创建webapp目录存放配置文件

主机配置

vimwebapp/host.cfgdefinehost{uselinux-server,host-pnp#这个是根据templates.cfg信息定义,如果上面定义的模板host-pnp添加在definehost#和definesevice里面,这儿host-pnp可以不用加,因为linux-server已经包含了host_namecacti#必须是被监控的主机名aliascacti-web#别名随便定义address10.30.20.10#主机ip地址contact_groupsadmins#邮件组,下面会演示}

主机组配置

vimwebapp/hostgroup.cfgdefinehostgroup{hostgroup_nameservers#组名aliasservers_group#别名memberscacti#主机名(为host.cfg文件定义的host_name名称)多个逗号隔开}

服务配置,既需要监控的服务内容都在此文件内配置,此文只列举部分作为参考

vimwebapp/cacti_service.cfg####setcactihostdefineservice{uselocal-service,services-pnp#使用的模板名称,一定要在templates.cfg里面提前定义好host_namecactiservice_descriptionhttpcheck_commandcheck_httpcontact_groupsadminsflap_detection_enabled0}defineservice{uselocal-service,services-pnphost_namecactiservice_descriptionSSH_portcheck_commandcheck_tcp!22contact_groupsadminsflap_detection_enabled0}defineservice{uselocal-service,services-pnphost_namecactiservice_descriptionCurrentLoadcheck_commandcheck_nrpe!check_load#使用nrpe检测,客户端需要定义contact_groupsadminsflap_detection_enabled0}

等上几分钟就可以在web页面查看到监控信息了

我的主机进程数太多了,可能和之前被人植入ddos工具有关,抽时间再查查服务



附件:http://down.51cto.com/data/2366192