CentOS 5.2安装Nagios实现短信报警笔记(3)

七.定义联系人和联系人组。我定义了三个人,两个组。前两个人在第一组里,第三个人在第二组里。

#### 定义第一个联系人
define contact{            ;       
        contact_name      user1
        use               generic-contact
        alias              Nagios Admin
        service_notification_commands   service-by-sms,notify-service-by-email  ;短信和邮件告警。

##service-by-sms是我用来发短信的命令,默认情况下,这个命令是commands.cfg里没有的。
##所以加完这个配置后,在commands.cfg定义这个命令之前,nagios是无法正常restart的。
## 当然如果没有service-by-sms和host-by-sms,nagios还是随便restart的。废话真多。^_^

host_notification_commands      host-by-sms,notify-host-by-email    
        email           [email]user1@domain.com[/email]
        pager             133    ;手机号码
        }
### 定义第二个联系人
define contact{            ;       
        contact_name       user2
        use               generic-contact
        alias              Nagios Admin     
        service_notification_commands   service-by-sms,notify-service-by-email 
        host_notification_commands      host-by-sms,notify-host-by-email        
        email            [email]user2@domain.com[/email]
        pager             137xxxxxxxx
        }
#### 定义第三个联系人
define contact{            ;       
        contact_name      user3
        use               generic-contact
        alias              Nagios Admin      
        service_notification_commands   service-by-sms,notify-service-by-email 
        host_notification_commands      host-by-sms,notify-host-by-email        
        email            [email]test@sina.com[/email]
        pager             139
        }
#### 定义联系人组
define contactgroup{
        contactgroup_name       admins  
        alias                   Nagios Administrators
        members                 user1,user2   
        }

define contactgroup{
        contactgroup_name       test_group
        alias                   Test
        members                 user3
        }

八.设置被监控的windows服务器。

找了个NSClient++-Win32-0.3.5.msi的安装包,直接装上,服务里就带了NSC++的服务,登录方式允许与桌面交互。

又照着网上的把文件注释都去掉。只有CheckWMI.dll和RemoteConfiguration.dll前面的注释保留。

网上N多资料都写着建议加password,可是加完了怎么用一直没人说,每个文章连标点符号都一样,shit!!!天下文章一大抄害死人啊!

[Settings]
password=123456 ;这个密码在nagios的主机配置文件中这么用,check_command xxxxxx  -s 123456
allowed_hosts=192.168.0.0/16 ;允许nagios服务器访问,也可以定义主机,比如:allow_hosts=192.168.1.250/32
port=12489

启动服务。windows服务器图标右下角出现有两个重叠的加号,当然有的服务器没出来,不知道为啥,反正12489端口通了,能用就行!

九.修改nagios参数,注释本机配置文件,取消注释 windows.cfg。要是有多个主机配置文件就继续在nagios里加,主机配置文件的格式跟windows.cfg一样就行了。

vi /usr/local/nagios/etc/nagios.cfg
#cfg_file=/usr/local/nagios/etc/objects/localhost.cfg
cfg_file=/usr/local/nagios/etc/objects/windows.cfg
cfg_file=/usr/local/nagios/etc/objects/test/winhosts.cfg ;配置文件路径自定义,随便!

nagios.cfg里有一行配置command_check_interval=-1,据说这个值是nagios根据自身情况自定义检查时间,尽可能快地检查。但我没发现,我把它改成10s,20s都没用,我最后只好在windows.cfg和其他hosts.cfg里自己加了。看看哪位有空帮忙解答一下。
修改/user/local/nagios/etc/objects/windows.cfg。监控CPU、监控内存,监控进程。看了网上N多2.9的资料,发现3.0.3省了很多东西,真庆幸。里面有很多参数都省略了,但是想用到怎么办,也是自己加了。我在测试时就加了normal_check_interval、max_check_attempts和congtact_groups这三个

define host{
        use             windows-server  ; Inherit default values from a template
        host_name       192.168.0.1   ; 因为我们平时工作交流时描述主机都用IP地址描述,这里就懒得改了,一招烩了吧!
        alias           sunfeng's laptop        ; A longer name associated with the host
        address         192.168.0.1   ; IP address of the host
        }

define service{
        use                     generic-service
        host_name               192.168.0.1
        max_check_attempts      5         ;检查多少次,依然有问题时告警。nagios3.0.3配置里是没有这行的,默认就是3。好像2.x版本的有,不过我没用过2.x。
        normal_check_interval   15        ;监控周期。有的文档里描述这行的单位是秒,但我试出来的是分钟。这行默认配置里也没有,默认好像是10分钟。
        service_description     Uptime
        check_command           check_nt!UPTIME   -s 123456 ;嘿嘿,windows的NSC++密码用上了!
        }

define service{
        use                     generic-service
        host_name               192.168.0.1
        max_check_attempts      3
        normal_check_interval   15
        service_description     CPU Load
        check_command           check_nt!CPULOAD!-l 5,80,90 -s 123456
        }

define service{
        use                     generic-service
        host_name               192.168.0.1
        service_description     CMD   
        normal_check_interval   1    ; ;每分钟检查一次进程。我就是为了试验,一般时候用不着这么短的间隔
        max_check_attempts     1   ;我觉得进程这个东西要是没了,马上就出事了,所以宁可误报也不能让它自己慢悠悠地查3次再告警。但有资料说不建议这么做,我忘了具体原因了。
        contact_groups            admins    ;这行也是默认情况下没有的。可填可不填,我只是为了区分下��那个组。;出错就给test_group组里的user3发短信发邮件。
        check_command           check_nt!PROCSTATE!-d SHOWALL -l CMD.EXE -s 123456  ;监控cmd.exe我照着网上的文档试着监控explorer.exe,全小写,或者写成Explorer.exe都能监控到,但是CMD或者firefox等用户进程,不管资源管理器里显示的大小写如何,这里必须写成大写,否则就检测失败。
        }

define service{
        use                     generic-service
        host_name               192.168.0.1
        service_description     firefox  
        normal_check_interval    1   
        max_check_attempts      1  
        contact_groups            test_group    ;出错就给test_group组里的user3发短信发邮件。
        check_command           check_nt!PROCSTATE!-d SHOWALL -l FIREFOX.EXE -s 123456
        }

linux

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/3ea4f88acea1bd3a736b5ca23a4444d5.html