3、配置nagios主配置文件<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

在这里定义后面的配置文件的保存路径,下面只贴修改部分
vi /usr/local/nagios/etc/nagios.cfg
cfg_file=/usr/local/nagios/etc/objects/commands.cfg
#cfg_file=/usr/local/nagios/etc/objects/contacts.cfg    //这一行注释掉,为了方便管理,我们重新写一个联系人的配置文件
cfg_file=/usr/local/nagios/etc/contacts.cfg      //指定联系人配置文件路径
cfg_file=/usr/local/nagios/etc/contactgroups.cfg   //指定联系人组配置文件路径
#cfg_file=/usr/local/nagios/etc/objects/timeperiods.cfg   //注释掉,用自己写的监视时段配置文件

cfg_file=/usr/local/nagios/etc/timeperiods.cfg         //指定监视时段配置文件路径

cfg_file=/usr/local/nagios/etc/objects/templates.cfg     //指定临时配置文件路径
cfg_file=/usr/local/nagios/etc/services.cfg           //服务配置文件路径

#cfg_file=/usr/local/nagios/etc/objects/localhost.cfg   //注释掉,
cfg_file=/usr/local/nagios/etc/hosts.cfg               //主机配置文件路径
cfg_file=/usr/local/nagios/etc/hostgroups.cfg              //主机组配置文件路径

 

check_external_commands=1  //web界面下重启nagios,停止主机/服务检查操作,默认关闭;
command_check_interval=10s      //定义这个命令检查时间间隔,默认是1秒;

 

 

4、配置timeperiods.cfg文件

这是个服务器监控时间段的配置文件,一般都是全天24小时,名称是24x7;
vi /usr/local/nagios/etc/timeperiods.cfg

define timeperiod{

        timeperiod_name         24x7

        alias                      24 hours a day,7days 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

        }

在这里要注意时间段名称那里的后面不能有空格出现,

 

 

5、创建联系人配置文件,contacts.cfg

vi /usr/local/nagios/etc/contacts.cfg
 define contact {
     contact_name         kytest
     alias                system administrator
     service_notification_period    24x7
     host_notification_period       24x7
     service_notification_options   w,u,c,r
     host_notification_options       d,u,r
     service_notification_commands  notify-service-by-email
     host_notification_commands     notify-host-by-email
     email                          kyhack@vip.qq.com
    # pager                         13800138000
     }

 

           创建一个名为kytest的联系人,下面列出其中几个重要选项的说明
       # 服务出了状况通知的时间段,这个时间段是前面 timeperiods.cfg 里面定义的。

       service_notification_period    24x7

 

       # 主机出现状况时通知的时间段,这个时间段是前面 timeperiods.cfg 里面定义的。

     host_notification_period       24x7
    
       # 当服务出现 w— 报警 (warning),u— 未知 (unkown),c— 严重 (critical),r— 从异常恢复到正常,在这四种情况下通知联系人

service_notification_options   w,u,c,r

 

# 当主机出现 d­­­­— 当机 (down),u— 返回不可达 (unreachable),r— 从异常情况恢复正常 , 在这 3 种情况下通知联系人

     host_notification_options       d,u,r

 

       # 服务出问题通知采用的命令 notify-service-by-email , 这个命令是在 commands.cfg 中定义的 , 作用是给联系人发邮件 . nagios2.x 的版本上可以不一样,可以自己到 commands.cfg 里看一下;在这里也可以设置发送短信的方式通知联系人,前提是你要配置有发送知道的脚本,还要到 commands.cfg 里面添加发送脚本所用到的命令;

   service_notification_commands  notify-service-by-email

 

       # 同上 , 主机出问题时采用的也是发邮件的方式通知联系人

     host_notification_commands     notify-host-by-email

 

       # 指定 联系的人 email 地址

     email         kyhack@vip.qq.com

 

       # 联系人的手机 , 前提是要支持短信通知,这里没有启用通过手机短信的方式发送警报

pager        13800138000

 

如果有多个联系人的话,可以通过复制来创建多个联系人;

 

6、创建联系人组配置文件,contactgroups.cfg ,把多个联系人加到一个组里面
vi  /usr/local/nagios/etc/contactgroups.cfg
define contactgroup{
        contactgroup_name       sagroup
        alias                   system administrator group
        members                 kytest
        }
注意:members选项里面的联系人在contacts.cfgj里面要要定义,多个联系从之间用逗号隔开;

 

7、创建hosts.cfg主机配置文件

vi  /usr/local/nagios/etc/hostgroups.cfg
define host{

host_name               nagios-server          // 被监控主机的名称 ,后面不能带空格

        alias                   nagios server      //别名
        address                 192.168.0.10      // 被监控主机的 ip 地址,这里是监控本机
        contact_groups          sagroup     //联系人组,是在前面contactgroups.cfgj里面定义的组        check_command        check-host-alive    //检查主机是否存活,命令来自commadns.cfg文件
        max_check_attempts      5                            //检查失败后重试次数
        notification_interval   10                           //提醒的间隔,每隔10秒提醒一次
        notification_period     24x7      //提醒的周期,24x7这个时间段来自timeperiods.cfg里的定义
        notification_options    d,u,r        //在什么时候提醒,详见contacts.cfg部分的介绍
        }
define host{
        host_name               win2003
        alias                   web server
        address                 192.168.0.100        //这是我的windows 2003的服务器,
        contact_groups          sagroup
        check_command           check-host-alive
        max_check_attempts      5
        notification_interval   10
        notification_period     24x7
        notification_options    d,u,r
        }
define host{
        host_name               linux
        alias                   web server
        address                 192.168.0.102                //被监控的linux服务器
        contact_groups          sagroup
        check_command           check-host-alive
        max_check_attempts      5
        notification_interval   10
        notification_period     24x7
        notification_options    d,u,r
        }

 

             在这里我定义了三台主机,只是作一个例子;如果你有更多的主机可以通过复制来添加主机,再修改一下相应的位置就可以了;

 

 

8、创建hostgroups.cfg文件

vi  /usr/local/nagios/etc/hostgroups.cfg
define hostgroup{
        hostgroup_name  sa-servers
        alias           sa servers
        members         nagios-server,win2003,linux
        }
这个跟联系人组配置差不多,要是有多台主机可以用逗号隔开;members里的主机成员必须也是要在hosts.cfg里面定义的,其实这个文件也可以不要;

 

ok,到这里就差可以说是完成了最基础的一部份了,现在就是最关键的一部分了,前面已经定义好了联系人,被监控主机,但是还没有定义好要监控主机上的什么东东;现在在这一部分就可以对主机上的各种信息进行监控,nagios监控的信息主要有:本地资源,对外的服务等;本地资源主要包括cpu,硬盘,swap,内存等;对外服务有web,fpt,smtp,pop3等;