Linux下Nagios的安装与配置(1)(4)
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-service在templates.cfg文件中进行了定义。 host_name Nagios-Linux #指定要监控哪个主机上的服务,“Nagios-Server”在hosts.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-contact”在templates.cfg文件中进行定义 alias Nagios Admin
- email david.tang@bsmart.cn
- } 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脚本,如果想在nagios的web监控界面执行cgi脚本,例如重启nagios进程、关闭nagios通知、停止nagios主机检测等,这时就需要配置cgi.cfg文件了。
由于nagios的web监控界面验证用户为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文件中进行引用即可。
nagios主要用于监控主机资源以及服务,在nagios配置中称为对象,为了不必重复定义一些监控对象,Nagios引入了一个模板配置文件,将一些共性的属性定义成模板,以便于多次引用。这就是templates.cfg的作用。
下面详细介绍下templates.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秒。 nagiosnagios_user=nagios # 该变量指定了Nagios进程使用哪个用户运行。 nagiosnagios_group=nagios # 该变量用于指定Nagios使用哪个用户组运行。 check_external_commands=1 # 该变量用于设置是否允许nagios在web监控界面运行cgi命令;
- # 也就是是否允许nagios在web界面下执行重启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
Nagios提供的这个验证功能非常有用,在错误信息中通常会打印出错误的配置文件以及文件中的哪一行,这使得nagios的配置变得非常容易,报警信息通常是可以忽略的,因为一般那些只是建议性的。
看到上面这些信息就说明没问题了,然后启动Nagios 服务。
七、Nagios的启动与停止
7.1 启动Nagios
a. 通过初始化脚本启动nagios
b. 手工方式启动nagios 通过nagios命令的“-d”参数来启动nagios守护进程: 7.2 重启Nagios 当修改了配置文件让其生效时,需要重启/重载Nagios服务。 a. 通过初始化脚本来重启nagios b. 通过web监控页重启nagios 可以通过web监控页的 "Process Info" -> "Restart the Nagios process"来重启nagios c. 手工方式平滑重启 7.3 停止Nagios a. 通过初始化脚本关闭nagios服务 b. 通过web监控页停止nagios 可以通过web监控页的 "Process Info" -> "Shutdown the Nagios process"来停止nagios c. 手工方式停止Nagios
评论暂时关闭