六。配置Nagios文件(二)

d. hosts.cfg文件

此文件默认不存在,需要手动创建,hosts.cfg主要用来指定被监控的主机地址以及相关属性信息,根据实验目标配置如下:

define host{   

        use                     linux-server          #引用主机linux-server的属性信息,linux-server主机在templates.cfg文件中进行了定义。

        host_name               Nagios-Linux          #主机名

        alias                   Nagios-Linux          #主机别名

        address                 192.168.1.111         #被监控的主机地址,这个地址可以是ip,也可以是域名。

        }  

#定义一个主机组   

define hostgroup{      

        hostgroup_name          bsmart-servers        #主机组名称,可以随意指定。

        alias                   bsmart servers        #主机组别名

        members                 Nagios-Linux          #主机组成员,其中Nagios-Linux就是上面定义的主机。     
        }

注意:/usr/local/nagios/etc/objects 下默认有localhost.cfg windows.cfg 这两个配置文件,localhost.cfg 文件是定义监控主机本身的,windows.cfg 文件是定义windows 主机的,其中包括了对host 和相关services 的定义。所以在本次实验中,将直接在localhost.cfg 中定义监控主机(Nagios-Server),在windows.cfg中定义windows 主机(Nagios-Windows)。根据自己的需要修改其中的相关配置,详细如下:

localhost.cfg

define host{

        use                     linux-server            ; Name of host template to use

                                                        ; This host definition will inherit all variables that are defined

                                                        ; in (or inherited by) the linux-server host template definition.

        host_name               Nagios-Server

        alias                   Nagios-Server

        address                 127.0.0.1

        }

define hostgroup{

        hostgroup_name  linux-servers ; The name of the hostgroup

        alias           Linux Servers ; Long name of the group

        members         Nagios-Server ; Comma separated list of hosts that belong to this group

        }

define service{

        use                             local-service         ; Name of service template to use

        host_name                       Nagios-Server

        service_description             PING

        check_command                   check_ping!100.0,20%!500.0,60%

        }

define service{

        use                             local-service         ; Name of service template to use

        host_name                       Nagios-Server

        service_description             Root Partition

        check_command                   check_local_disk!20%!10%!/

        }

define service{

        use                             local-service         ; Name of service template to use

        host_name                       Nagios-Server

        service_description             Current Users

        check_command                   check_local_users!20!50

        }

define service{

        use                             local-service         ; Name of service template to use

        host_name                       Nagios-Server

        service_description             Total Processes

        check_command                   check_local_procs!250!400!RSZDT

        }

define service{

        use                             local-service         ; Name of service template to use

        host_name                       Nagios-Server

        service_description             Current Load

        check_command                   check_local_load!5.0,4.0,3.0!10.0,6.0,4.0

        }

define service{

        use                             local-service         ; Name of service template to use

        host_name                       Nagios-Server

        service_description             Swap Usage

        check_command                   check_local_swap!20!10

        }

define service{

        use                             local-service         ; Name of service template to use

        host_name                       Nagios-Server

        service_description             SSH

        check_command                   check_ssh

        notifications_enabled           0

        }

define service{

        use                             local-service         ; Name of service template to use

        host_name                       Nagios-Server

        service_description             HTTP

        check_command                   check_http

        notifications_enabled           0

        }

windows.cfg

define host{

        use             windows-server  ; Inherit default values from a template

        host_name       Nagios-Windows  ; The name we're giving to this host

        alias           My Windows Server       ; A longer name associated with the host

        address         192.168.1.113   ; IP address of the host

        }

define hostgroup{

        hostgroup_name  windows-servers ; The name of the hostgroup

        alias           Windows Servers ; Long name of the group

        }

define service{

        use                     generic-service

        host_name               Nagios-Windows

        service_description     NSClient++ Version

        check_command           check_nt!CLIENTVERSION

        }

define service{

        use                     generic-service

        host_name               Nagios-Windows

        service_description     Uptime

        check_command           check_nt!UPTIME

        }

define service{

        use                     generic-service

        host_name               Nagios-Windows

        service_description     CPU Load

        check_command           check_nt!CPULOAD!-l 5,80,90

        }

define service{

        use                     generic-service

        host_name               Nagios-Windows

        service_description     Memory Usage

        check_command           check_nt!MEMUSE!-w 80 -c 90

        }

define service{

        use                     generic-service

        host_name               Nagios-Windows

        service_description     C:\ Drive Space

        check_command           check_nt!USEDDISKSPACE!-l c -w 80 -c 90

        }

define service{

        use                     generic-service

        host_name               Nagios-Windows

        service_description     W3SVC

        check_command           check_nt!SERVICESTATE!-d SHOWALL -l W3SVC

        }

define service{

        use                     generic-service

        host_name               Nagios-Windows

        service_description     Explorer

        check_command           check_nt!PROCSTATE!-d SHOWALL -l Explorer.exe

        }

e. services.cfg文件

此文件默认也不存在,需要手动创建,services.cfg文件主要用于定义监控的服务和主机资源,例如监控http服务、ftp服务、主机磁盘空间、主机系统负载等等。Nagios-Server Nagios-Windows 相关服务已在相应的配置文件中定义,所以这里只需要定义Nagios-Linux 相关服务即可,这里只定义一个检测是否存活的服务来验证配置文件的正确性,其他服务的定义将在后面讲到。

define service{  

        use                     local-service          #引用local-service服务的属性值,local-servicetemplates.cfg文件中进行了定义。

        host_name               Nagios-Linux           #指定要监控哪个主机上的服务,Nagios-Serverhosts.cfg文件中进行了定义。

        service_description     check-host-alive       #对监控服务内容的描述,以供维护人员参考。

        check_command           check-host-alive       #指定检查的命令。
        }  

f. contacts.cfg文件

contacts.cfg是一个定义联系人和联系人组的配置文件,当监控的主机或者服务出现故障,nagios会通过指定的通知方式(邮件或者短信)将信息发给这里指定的联系人或者使用者。

define contact{

        contact_name                    David             #联系人的名称,这个地方不要有空格

        use                             generic-contact   #引用generic-contact的属性信息,其中generic-contacttemplates.cfg文件中进行定义

        alias                           Nagios Admin

        email                           [email protected]

        }

define contactgroup{

        contactgroup_name       ts                              #联系人组的名称,同样不能空格

        alias                   Technical Support               #联系人组描述

        members                 David                           #联系人组成员,其中david就是上面定义的联系人,如果有多个联系人则以逗号相隔

        }

g. timeperiods.cfg文件

此文件只要用于定义监控的时间段,下面是一个配置好的实例:

#下面是定义一个名为24x7的时间段,即监控所有时间段  

define timeperiod{  

        timeperiod_name 24x7       #时间段的名称,这个地方不要有空格

        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  

        }  

#下面是定义一个名为workhours的时间段,即工作时间段。  

define timeperiod{  

        timeperiod_name workhours   

        alias           Normal Work Hours  

        monday          09:00-17:00  

        tuesday         09:00-17:00  

        wednesday       09:00-17:00  

        thursday        09:00-17:00  

        friday          09:00-17:00  

        }  

h. cgi.cfg文件

此文件用来控制相关cgi脚本,如果想在nagiosweb监控界面执行cgi脚本,例如重启nagios进程、关闭nagios通知、停止nagios主机检测等,这时就需要配置cgi.cfg文件了。
由于nagiosweb监控界面验证用户为david,所以只需在cgi.cfg文件中添加此用户的执行权限就可以了,需要修改的配置信息如下:

default_user_name=david

authorized_for_system_information=nagiosadmin,david  

authorized_for_configuration_information=nagiosadmin,david  

authorized_for_system_commands=david

authorized_for_all_services=nagiosadmin,david  

authorized_for_all_hosts=nagiosadmin,david

authorized_for_all_service_commands=nagiosadmin,david  

authorized_for_all_host_commands=nagiosadmin,david 

i. nagios.cfg文件

nagios.cfg默认的路径为/usr/local/nagios/etc/nagios.cfg,是nagios的核心配置文件,所有的对象配置文件都必须在这个文件中进行定义才能发挥其作用,这里只需将对象配置文件在Nagios.cfg文件中进行引用即可。

log_file=/usr/local/nagios/var/nagios.log                  # 定义nagios日志文件的路径

cfg_file=/usr/local/nagios/etc/objects/commands.cfg        # cfg_file变量用来引用对象配置文件,如果有更多的对象配置文件,在这里依次添加即可。
cfg_file=/usr/local/nagios/etc/objects/contacts.cfg
cfg_file=/usr/local/nagios/etc/objects/hosts.cfg
cfg_file=/usr/local/nagios/etc/objects/services.cfg
cfg_file=/usr/local/nagios/etc/objects/timeperiods.cfg

cfg_file=/usr/local/nagios/etc/objects/templates.cfg
cfg_file=/usr/local/nagios/etc/objects/localhost.cfg       # 本机配置文件
cfg_file=/usr/local/nagios/etc/objects/windows.cfg         # windows 主机配置文件

object_cache_file=/usr/local/nagios/var/objects.cache      # 该变量用于指定一个所有对象配置文件的副本文件,或者叫对象缓冲文件

precached_object_file=/usr/local/nagios/var/objects.precache
resource_file=/usr/local/nagios/etc/resource.cfg           # 该变量用于指定nagios资源文件的路径,可以在nagios.cfg中定义多个资源文件。

status_file=/usr/local/nagios/var/status.dat               # 该变量用于定义一个状态文件,此文件用于保存nagios的当前状态、注释和宕机信息等。

status_update_interval=10                                  # 该变量用于定义状态文件(即status.dat)的更新时间间隔,单位是秒,最小更新间隔是1秒。

nagios_user=nagios                                         # 该变量指定了Nagios进程使用哪个用户运行。
nagios_group=nagios                                        # 该变量用于指定Nagios使用哪个用户组运行。

check_external_commands=1                                  # 该变量用于设置是否允许nagiosweb监控界面运行cgi命令;
                                                           # 也就是是否允许nagiosweb界面下执行重启nagios、停止主机/服务检查等操作;
                                                           # 1为运行,0为不允许。

command_check_interval=10s                                 # 该变量用于设置nagios对外部命令检测的时间间隔,如果指定了一个数字加一个"s"(10s);
                                                           # 那么外部检测命令的间隔是这个数值以秒为单位的时间间隔;
                                                           # 如果没有用"s",那么外部检测命令的间隔是以这个数值的时间单位的时间间隔。
interval_length=60                                         # 该变量指定了nagios的时间单位,默认值是60秒,也就是1分钟;
                                                           # 即在nagios配置中所有的时间单位都是分钟。

6.4 验证Nagios 配置文件的正确性

Nagios 在验证配置文件方面做的非常到位,只需通过一个命令即可完成:

# /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg

wKiom1RQq7XQLp7ZAAB1zTbgVlg702.jpg

 

Nagios提供的这个验证功能非常有用,在错误信息中通常会打印出错误的配置文件以及文件中的哪一行,这使得nagios的配置变得非常容易,报警信息通常是可以忽略的,因为一般那些只是建议性的。 

看到上面这些信息就说明没问题了,然后启动Nagios 服务。


你可能感兴趣的:(监控,主机,信息,nagios配置文件)