用NagiosQL来添加要监控的Windows主机
检查主机和被监控端是否可以通讯
测试通过
监督-HOST-添加
设置主机名、地址、选择模板
记得需要在这里选写入配置才行
然后添加需要的其它服务,先添加C盘的使用情况,监督-服务-添加
记得需要在这里选写入配置才行
为当前主机添加上面定义好的服务,(再返回到当前以定义好的主机上面来)选择"服务选项"-选择定义好的需要监控服务,其实在定义服务的时候也可以选择主机的,也可以在主机这里选择相关服务
记得需要在这里选写入配置才行,然后重启Nagios服务即可
从上到下执行一次
过一段时间就可以在Nagios界面上看到如下界面图
想监控什么东西要靠自己多学习然后举一反三来自定义出自己想要的服务来
在图形监控界面点相应服务选项则出相应的图形监控界面.
为服务器加美化标识图标
通过阅读官方文档,得知在host定义中有四个变量可选,用于指定每一个host的图标文件名,默认的存储位置是/usr/local/nagios/share/images/logos
icon_image: 可以使用GIF, PNG,或者是JPG文件,推荐图像尺寸为40x40
icon_image_alt: 即为HTML语法中关于image元素的ALT属性值
vrml_image: Nagios提供使用VRML语言绘制三维图像功能,这里不要使用透明图片(PNG, GIF),最好使用JPG
statusmap_image: 提供给statusmap CGI脚本使用的图片,服务器要支持GD,这个文件的类型为gd2
未添加图标:
通过上面方法添加的主机配置文件在定义的/etc/nagiosql/hosts目录下面,服务配置文件在/etc/nagiosql/services目录下
编辑需要加图标的主机配置文件,然后按如下图所示加入两行
windows主机图标添加
[root@localhost hosts]# vi finchinatest.cfg |
重启nagios服务以后,可以看到图标出来了.
[root@localhost hosts]# service nagios restart |
linux主机图标添加
[root@localhost hosts]# vim CentOS.cfg |
最终效果
监控的机器是什么系统一目了然
Tips:先把/usr/local/nagios/share/images/logos目录下载到本地,通过缩略图可以清楚的查看自己想添加的图标
监控linux主机
检查监控段和被监控端是否通讯
测试通过
配置NRPE文件
根据需求加入需要监控服务,这一步非常重要,比如想要监控本机的SWAP分区,需要在被监控机的/usr/local/src/nrpe-2.12/sample-config/nrpe.cfg里面加入如下:
command[check_swap]=/usr/local/nagios/libexec/check_swap �Cw 20% �Cc 10%
如果这里没有定义好,那你在服务器端会报错误:NRPE command ‘check_swap’ not defined
[root@localhost etc]# find / -name nrpe.cfg /usr/local/src/nrpe-2.12/sample-config/nrpe.cfg [root@localhost etc]# vim /usr/local/src/nrpe-2.12/sample-config/nrpe.cfg |
进入nagiosQL管理控制台点 命令-定义-添加
命令:check_nrpe
命令行:$USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
Tips:如果报错有不合法字符检查命令又没错,确认是否有空格
现在开始添加需要监控的linux主机 监督-host-添加
添加一个自定义服务 监督-服务-添加
可以在添加服务之前先在服务器端执行一下命令,确认数据是否可以正常收集得到,想监控什么就想添加相应服务进去.
cpu使用率服务:$ARG1$:check_load
在线用户服务:$ARG1$:check_users
进程数量服务:$ARG1$:check_total_procs
第一个分区使用情况服务:$ARG1$: check_sda1
Tips:这些服务必须在被监控的linux客户端的nrpe.cfg文件中得到定义
加一个ping检查服务
每多添加一个服务,请在被监控的linux客户端的nrpe.cfg文件中要定义此命令,在控制台设定的参数和定义命令的参数要一致,
每多添加一条命令都需要重启nrpe服务,以使配置立即生效
[root@localhost ~]# service nrpe restart |
然后在主机端关联刚才自定义好的服务(上面监控window时候在服务选项里已经定义好了,在添加服务时候选择了主机和主机组,这里没有添加所以没)
最后在工具-nagios控制 检查写入的配置文件全部执行一次
监控路由器
没有路由也没弄模拟器。以下转自网上
这里用模拟的路由器来桥接到物理网络然后配置好ip地址和启用SNMP相关信息
安装check_snmp plugin
在编译 nagios-plugins 时,如果系统支持net-snmp, 会自动编译 check_snmp 插件。(刚开始可能我们没有安装net-snmp,所以没有出现check_snmp这个插件)
1、安装net-snmp
yum -y install net-snmp-libs net-snmp-devel net-snmp net-snmp-utils
2、重新再编译安装插件 nagios-plugins-1.4.13
./configure
make && make install
3、检查SNMP的当前版本
如果版本过低,可能不支持 snmp v2c
相应的OID可以通过厂商的MIB查询;也可以在一些专业网站查询 Online MIB Database;也可以通过snmpwalk 得到。
snmpwalk -v version -c community hostname
4、相应的命令可以通过snmpget 测试。
snmpget -c community -v 2c hostname iso.3.6.1.4.1.3224.16.3.2.0
在日常监控中,经常会用到snmp服务,而snmpwalk命令则是测试系统各种信息最有效的方法,现总结一些常用的方法如下:
snmpwalk -v 1 -c public 10.103.33.1 .1.3.6.1.2.1.25.2.2 取得系统总内存
snmpwalk -v 1 -c public 10.103.33.1 hrSystemNumUsers 取得系统用户数
snmpwalk -v 1 -c public 10.103.33.1 .1.3.6.1.2.1.4.20 取得IP信息
snmpwalk -v 1 -c public 10.103.33.1 system 查看系统信息
snmpwalk -v 1 -c public 10.103.33.1 ifDescr 获取网卡信息
以上只是一些常用的信息,snmpwalk功能很多,可以获取系统各种信息,只要更改后面的信息类型即可.如果不知道什么类型,也可以不指定,这样所有系统信息都获取到:
snmpwalk -v 1 -c public 10.103.33.1
现在我们测试一下连接到到模拟路由器上面去获取MIB信息,可以看到我们设置的SNMP相关信息在这里全部出现了,
通过以上命令查看到的结果我们再来执行以下命令就应该知道如果想查看路由器上f0/0的信息那么在MIB信息库里面对就的查询名称就是ifDescr.1,
上面讲了这么多是为了下面的监控做铺垫,现在然正式开始添加需要监控的路由器
添加一主机如图所示,这里用先用PING命令检查路由器的连通性,相关参数设置代表什么意思上面说得清楚这里不再说明
可以根据自己的需要来自定义一个命令,命令-定义-添加
比如我现在想检查路由器启动了多长时间,其实我们要执行的命令是:check_snmp -H '$HOSTADDRESS -C '$ARG1 -o sysUpTime.0
先通过命令查看到sysuptime的OID的值为:sysUpTimeInstance
调出check_snmp参数用法详解,自己好好研究看一看
现在开始我们来自定义符合自己要求的命令来,到管理-命令-定义
由于这里只需要用到-H-C �Co 三个参数,注意这里要区分大小写,这里命令行里面就按如图所示进行添加,最后记得点保存即可
然后再到监督-服务-添加 在查检命令这里我们可以选择到我们刚才自定义好的命令
多添加一个服务检查路由器f0/0接口的状态
写入配置
然后再到主机里面关联刚才建好的服务
最后记得要从上到下执行一下这个动作,不然会出问题滴.
最后的战果如下图所示
邮件报警
邮件报警这里我们用最简单的方法就是调用系统自带的mailx来发警告邮件(也可自己搭建第三方的邮件服务器)
手机接收邮件的方法其实也很简单,发到163的邮箱也支持手机接收,还有移动的139邮箱都可以滴,到手机做简单的设定即可.
确认一下程序文件安装存入的路径
试着发一封邮件到自己的邮箱试试看,
打开邮箱确认邮件是否能够成功收到
到警告-联系数据-添加
可以自定义一个联系组 警告-联系组-添加
添加完成以后记得要点写入配置文件
到需要启用报警的主机上面启用报警,监督-Host-需要启用报警的主机-报警设置,注意配置完成以后要记得点写入配置按钮哈.
然后再从上到下全部点执行
由于主机检查刷新有一定的时间间隔,最先反应报警是ping服务
Tips:过几十秒相关服务才全部相继开始告警,不注意这里有个尝试次数的设定,我测试发现一直要等到这个尝试次数结束以后才能报警,而这中间尝试的时间大约为10分钟,这里需要调整,要不然明明主机down要等半天才反应过来岂不没有什么意义了
足足等了十分钟才终于收到报警邮件,晕
基本上3-5分钟之内就会发送一份邮件报警
以上遇到两个问题需要解决,报警的延时拖得太长,邮件发送的次数太多,我们需要限制报警邮件的发送次数,要不然一直这样发下去邮箱都要塞爆了.
报警的延时拖得太长的问题,这里我们其实只要修改服务的重试次数和检查间隔时长.
监督-服务-修改
然后在每个检查设置选项按如下图所示设置,当服务是正常状态时每隔1分钟检查一次,当服务有问题时的时候也每隔1分钟重试一次,但最大只能重试2次
主机检查设置同样按如下图所示操作.
这里想说明一下,默认的ping服务检查调用是imp_any这个自定义命令,要修改ping的检查次数请到这里来改.改完后记得到nagios控制里面去点执行然后重启nagios服务一次
最后可以看到所有重试次数全部变成了2次,每分钟检查一下状态信息(频繁检查状态信息会对网络带宽有一定的影响,请大家根据自己的情况去定检查的间隔时间)
上图为证成功通过
邮件发送的次数太多的问题
如果服务器出现故障而未能及时的解决,Nagios就会不断的发送告警信息,实在令人头疼,Nagios于是用hostescalations和serviceescalations来控制报警间隔时间来完善它的报警功能.
通过查看nagios.cfg配置文件可以发现上次我们添加的时候,此配置文件已经写入在里面了
这里我们设定简单点不要搞得那么复杂,通知前3条信息我们按正常频率接由邮件,从第3条信息以后我们改变它有通知时间,这里我设为120分钟,当然你可以根据自己的情况去定,然后从第5条信息起再恢复它有通知频率间隔,就是这么简单.
添加如下内容:
define serviceescalation{
host_name Win2K3 ;被监控主机名称 ,要与hosts.cfg中的名称一致
service_description PING,Memory Usage,Explorer,CPU Load,C:\ Drive Space ;被监控服务名称多个用逗号隔开
first_notification 3 ;第3条信息起,改变频率间隔
last_notification 5 ;第5条信息起,恢复频率间隔
notification_interval 120 ;通知间隔(单位:分)
contact_groups IT_Group ;要通知的群组
}
添加如下内容:
define hostescalation{
host_name Win2K3 ;被监控主机名称,要与hosts.cfg中名称一致
first_notification 3 ;第3条信息起,改变频率间隔
last_notification 5 ;第5条信息起,恢复频率间隔
notification_interval 120 ;通知间隔(单位:分)
contact_groups IT_Group ;要通知的群组
}
Tips:这里要说明一点问题,习惯性每次配置完成以后都从上到下点执行一次,而这次却出了问题
当执行写入其他数据的时候我们可以发现我们刚手动加入信息的两个文件在这里的配置再次被重写了,刚手动加入的信息全部都恢复成默认的了,难怪我在测试的时候发现明明设置了限制的时间却发现没有起效果,原来发现原因在这个地方(我估计需要通过这个控制台来修改这两个配置文件,但我没有找到哪个地方可以去修改)所以当你手动改了以后,请不要执行这一步就行了.
最后总结:我发现在测试的时候有些服务有告警有些没有,有时全没有,但主机告警每次都很及时,服务的报警设置是 一致的,应该没有问题,我怀疑是不是我的主机性能的问题,开几台虚拟机还加一些应用使用主机在应用上感觉就很慢,待以后有空再来验证,我也是初次研究这个 东东,写这篇可花了我不少时间,我也是摸着石头过河,有错误再所难免,发现问题欢迎大家指正.