(二)增加新的配置文件
先创建简单的配置文件timeperiods.cfg,其内容如下:
define timeperiod{ timeperiod_name 24×7 alias 24 Hours A Day, 7 Days A Week sunday 00:00-24:00 monday 00:00-24:00 tuesday 00:00-24:00 wednesday 00:00-24:00 thursday 00:00-24:00 friday 00:00-24:00 saturday 00:00-24:00 } |
这个文件的定义明晰易懂,不多做说明。另建议7X24小时监控。
第二个手动创建的配置文件是 contacts.cfg,其格式如下:
define contact { contact_name sa //不要有空格 alias system administrator service_notification_period 24×7 host_notification_period 24×7 service_notification_options w,u,c,r host_notification_options d,u,r service_notification_commands service-notify-by-sms,service- notify-by-email //这个命令读配置文件miscommands.cfg host_notification_commands host-notify-by-email,host-noti fy-by-sms //这个命令读配置文件miscommands.cfg email sery@163.com pager 13333333333 //手机号,收报警短信 } //不要把这个符号写掉了 define contact { contact_name sery alias system administrator service_notification_period 24×7 host_notification_period 24×7 service_notification_options w,u,c,r host_notification_options d,u,r service_notification_commands service-notify-by-sms,service- notify-by-email host_notification_commands host-notify-by-email,host-noti fy-by-sms email sery@sohu.com pager 13312345678 } |
上面的文件定义了2个联系人,如果有更多联系人的话,照这个格式在后面追加即可。服务通知选项(service_notification_options)与主机通知选项(host_notification_options)的几个选项在这里说明一下:w-warning , u-unknown,c-critical,r-recovery;d-down,u-unreachable,注意一下,主机报警和服务报警有些差异。
紧接着的第三个手动创建的配置文件是contactgroups.cfg文件,这个文件是依照上一个文件contacts.cfg来的,contactgroups文件相对简单一些,其格式如下:
define contactgroup { contactgroup_name sagroup //不要用空格 alias system administrator group members sa,sery //本例有2个成员 } |
多个成员之间用逗号做分界符,如果有更多的联系组,就依相同的格式在文件中追加余下的组。
关键的角色终于登场,这就是配置文件hosts.cfg。下面是我定义的两个主机的基本样式:
#define monitor host ############################################ # Wangjing IDC servers # ############################################ define host { host_name nagios-server alias nagios server address 61.x..x.49 contact_groups sagroup //多个联系组用逗号分隔,数据来源于contactgroups.cfg check_command check-host-alive max_check_attempts 5 notification_interval 10 //值可调,大小什么值合适需自己测定 notification_period 24×7 notification_options d,u,r } define host { host_name 24-25 alias server 24-25 address 202.X.24.25 contact_groups sagroup check_command check-host-alive //down机就发报警通知 max_check_attempts 5 notification_interval 10 notification_period 24×7 notification_options d,u,r } |
更多的主机依此格式逐个追加进来。小技巧,如果是连续的ip段,最好自己写个脚本生成hosts.cfg文件,为了以后维护方便,尽可能在文件中使用易读的注释(如本例# Wangjing IDC servers #)。
再一个重量级的配置文件是services.cfg,没有这个文件,什么监控也没用。下面给出一个样式文件:
#service definition ########################################### # Wangjing IDC servers service for host-live # ########################################### define service { host_name nagios-server //来源:hosts.cfg service_description check-host-alive check_period 24×7 max_check_attempts 4 normal_check_interval 3 retry_check_interval 2 contact_groups sagroup //来源:contactgroups.cfg notification_interval 10 notification_period 24×7 notification_options w,u,c,r check_command check-host-alive //检查主机是否存活 } define service { host_name 74-210 service_description check_tcp 80 check_period 24×7 max_check_attempts 4 normal_check_interval 3 retry_check_interval 2 contact_groups sagroup notification_interval 10 notification_period 24×7 notification_options w,u,c,r check_command check_tcp!80 //检查tcp 80端口服务是否正常 } |
书写时要注意的是,check_tcp与要监控的服务端口之间要用”!”做分隔符。如果服务太多,以应该考虑用脚本来生成。
主机组配置文件hostgroups.cfg,这是一个可选的项目,它建立在文件hosts之上,其格式如下:
define hostgroup { hostgroup_name sa-servers alias sa servers members nagios-server,24-25,24-26 //用逗号间隔多个主机 } |
多个主机组依上面的格式逐个追加上去。后面给一个主机组的截图。
千辛万苦,终于把这些配置给做好保存,现在几乎有点迫不及待了,运行程序/usr/local/nagios –v /usr/local/nagios/etc/nagios.cfg来检查所有配置文件的正确性。如果十分幸运的话,运行完毕将在输出尾部出现
Total Warnings: 0 Total Errors: 0 Things look okay – No serious problems were detected during the pre-flight check |
这样的情况,大功告成;但我却没有这么幸运,修改了好多个地方才成功。不过值得庆幸的是,这个校验的错误报告时非常有用的(不象有的系统的帮助文档中看不中用)。看我故意设置的一个错误产生的输出:
[root@netmonitor nagios]# bin/nagios -v etc/nagios.cfg Nagios 2.5 Copyright (c) 1999-2006 Ethan Galstad (http://www.nagios.org) Last Modified: 07-13-2006 License: GPL Reading configuration data… Error: Could not find any host matching ’nagios-server’ Error: Could not expand member hosts specified in hostgroup (config file ’/usr/local/nagios/etc/hostgroups.cfg’, starting on line 2) ……………………… |
它告诉我配置文件在什么位置产生错误(实际上我故意在配置文件里加了一个注释符号来测试)。验证通过以后,就可以执行命令/usr/local /nagios –d /usr/local/nagios/etc/nagios.cfg 把nagios作为守护进程。然后用ps –aux | grep nagios 看进程是否处于运行状态。到这一步,nagios服务基本上算是配置完毕。做hosts.cfg、services.cfg等配置时,可以运用一些小技巧来减少出错的概率:如先定义少许的主机、服务,待校验无误后再追加。
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
作者
相关推荐
-
网络管理系统也要“量体裁衣”
你也许考虑过用一根火柴或一个核反应堆来煮一个鸡蛋。对于这个工作来说,这两种方法都没有做到“量体裁衣”。
-
网络流量与监控指南
对企业的网络流量进行监控和分析是网络管理员的工作之一,如何才能对网络流量进行有效的管理?本技术手册包含了网络流量监控所面临的挑战、怎样为网络设备选择监控软件、以及如何使用网络监控工具进行网络流量的监控等。
-
Nagios实战全解(五):关键应用监控的重要策略
前段时间有人问我怎么用nagios监控linux内存使用情况以及怎么设置报警阈值?linux运行时是最大可能的利用内存,监控这个对象没有现实意义,这些明显属于无效的监控策略……
-
Nagios实战全解(四):监控Mysql服务器
监控Mysql需要在nagios和Mysql服务器这两个部分做处理:Mysql服务器安装nrpe、创建Mysql监控用户;配置nagios及用htpasswd创建浏览器验证帐号。下面分步描述。