localhost.cfg

  1. define host{
  2. use linux-server ; Name of host template to use
  3. ; This host definition will inherit all variables that are defined
  4. ; in (or inherited by) the linux-server host template definition.
  5. host_name Nagios-Server
  6. alias Nagios-Server
  7. address 127.0.0.1
  8. }
  9. define hostgroup{
  10. hostgroup_name linux-servers ; The name of the hostgroup
  11. alias Linux Servers ; Long name of the group
  12. members Nagios-Server ; Comma separated list of hosts that belong to this group
  13. }
  14. define service{
  15. use local-service ; Name of service template to use
  16. host_name Nagios-Server
  17. service_description PING
  18. check_command check_ping!100.0,20%!500.0,60%
  19. }
  20. define service{
  21. use local-service ; Name of service template to use
  22. host_name Nagios-Server
  23. service_description Root Partition
  24. check_command check_local_disk!20%!10%!/
  25. }
  26. define service{
  27. use local-service ; Name of service template to use
  28. host_name Nagios-Server
  29. service_description Current Users
  30. check_command check_local_users!20!50
  31. }
  32. define service{
  33. use local-service ; Name of service template to use
  34. host_name Nagios-Server
  35. service_description Total Processes
  36. check_command check_local_procs!250!400!RSZDT
  37. }
  38. define service{
  39. use local-service ; Name of service template to use
  40. host_name Nagios-Server
  41. service_description Current Load
  42. check_command check_local_load!5.0,4.0,3.0!10.0,6.0,4.0
  43. }
  44. define service{
  45. use local-service ; Name of service template to use
  46. host_name Nagios-Server
  47. service_description Swap Usage
  48. check_command check_local_swap!20!10
  49. }
  50. define service{
  51. use local-service ; Name of service template to use
  52. host_name Nagios-Server
  53. service_description SSH
  54. check_command check_ssh
  55. notifications_enabled 0
  56. }
  57. define service{
  58. use local-service ; Name of service template to use
  59. host_name Nagios-Server
  60. service_description HTTP
  61. check_command check_http
  62. notifications_enabled 0
  63. }

windows.cfg

  1. define host{
  2. use windows-server ; Inherit default values from a template
  3. host_name Nagios-Windows ; The name we're giving to this host
  4. alias My Windows Server ; A longer name associated with the host
  5. address 192.168.1.113 ; IP address of the host
  6. }
  7. define hostgroup{
  8. hostgroup_name windows-servers ; The name of the hostgroup
  9. alias Windows Servers ; Long name of the group
  10. }
  11. define service{
  12. use generic-service
  13. host_name Nagios-Windows
  14. service_description NSClient++ Version
  15. check_command check_nt!CLIENTVERSION
  16. }
  17. define service{
  18. use generic-service
  19. host_name Nagios-Windows
  20. service_description Uptime
  21. check_command check_nt!UPTIME
  22. }
  23. define service{
  24. use generic-service
  25. host_name Nagios-Windows
  26. service_description CPU Load
  27. check_command check_nt!CPULOAD!-l 5,80,90
  28. }
  29. define service{
  30. use generic-service
  31. host_name Nagios-Windows
  32. service_description Memory Usage
  33. check_command check_nt!MEMUSE!-w 80 -c 90
  34. }
  35. define service{
  36. use generic-service
  37. host_name Nagios-Windows
  38. service_description C:\ Drive Space
  39. check_command check_nt!USEDDISKSPACE!-l c -w 80 -c 90
  40. }
  41. define service{
  42. use generic-service
  43. host_name Nagios-Windows
  44. service_description W3SVC
  45. check_command check_nt!SERVICESTATE!-d SHOWALL -l W3SVC
  46. }
  47. define service{
  48. use generic-service
  49. host_name Nagios-Windows
  50. service_description Explorer
  51. check_command check_nt!PROCSTATE!-d SHOWALL -l Explorer.exe
  52. }

e. services.cfg文件

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

 

  1. define service{
  2. 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会通过指定的通知方式邮件或者短信)将信息发给这里指定的联系人或者使用者。

  1. define contact{
  2. contact_name David #联系人的名称,这个地方不要有空格 use generic-contact #引用generic-contact的属性信息,其中“generic-contact”在templates.cfg文件中进行定义 alias Nagios Admin
  3. email david.tang@bsmart.cn
  4. } define contactgroup{
  5. contactgroup_name ts #联系人组的名称,同样不能空格
  6. alias Technical Support #联系人组描述 members David #联系人组成员,其中“david”就是上面定义的联系人,如果有多个联系人则以逗号相隔
  7. }

g. timeperiods.cfg文件

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

  1. #下面是定义一个名为24x7的时间段,即监控所有时间段
  2. define timeperiod{
  3. timeperiod_name 24x7 #时间段的名称,这个地方不要有空格
  4. alias 24 Hours A Day, 7 Days A Week
  5. sunday 00:00-24:00
  6. monday 00:00-24:00
  7. tuesday 00:00-24:00
  8. wednesday 00:00-24:00
  9. thursday 00:00-24:00
  10. friday 00:00-24:00
  11. saturday 00:00-24:00
  12. }
  13. #下面是定义一个名为workhours的时间段,即工作时间段。
  14. define timeperiod{
  15. timeperiod_name workhours
  16. alias Normal Work Hours
  17. monday 09:00-17:00
  18. tuesday 09:00-17:00
  19. wednesday 09:00-17:00
  20. thursday 09:00-17:00
  21. friday 09:00-17:00
  22. }

h. cgi.cfg文件

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

  1. default_user_name=david
  2. authorized_for_system_information=nagiosadmin,david
  3. authorized_for_configuration_information=nagiosadmin,david
  4. authorized_for_system_commands=david
  5. authorized_for_all_services=nagiosadmin,david
  6. authorized_for_all_hosts=nagiosadmin,david
  7. authorized_for_all_service_commands=nagiosadmin,david
  8. 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文件中每个参数的含义:

  1. 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
  2. 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
  3. cfg_file=/usr/local/nagios/etc/objects/templates.cfg
  4. cfg_file=/usr/local/nagios/etc/objects/localhost.cfg # 本机配置文件
  5. cfg_file=/usr/local/nagios/etc/objects/windows.cfg # windows 主机配置文件
  6. object_cache_file=/usr/local/nagios/var/objects.cache # 该变量用于指定一个“所有对象配置文件”的副本文件,或者叫对象缓冲文件 precached_object_file=/usr/local/nagios/var/objects.precache
  7. 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命令;
  8. # 也就是是否允许nagios在web界面下执行重启nagios、停止主机/服务检查等操作;
  9. # “1”为运行,“0”为不允许。 command_check_interval=10s # 该变量用于设置nagios对外部命令检测的时间间隔,如果指定了一个数字加一个"s"(如10s);
  10. # 那么外部检测命令的间隔是这个数值以秒为单位的时间间隔;
  11. # 如果没有用"s",那么外部检测命令的间隔是以这个数值的“时间单位”的时间间隔。 interval_length=60 # 该变量指定了nagios的时间单位,默认值是60秒,也就是1分钟;
  12. # 即在nagios配置中所有的时间单位都是分钟。

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

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

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

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

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

七、Nagios的启动与停止

7.1 启动Nagios

a. 通过初始化脚本启动nagios

  1. # /etc/init.d/nagios start
  2. or
  3. # service nagios start

b. 手工方式启动nagios

通过nagios命令的“-d”参数来启动nagios守护进程:

  1. # /usr/local/nagios/bin/nagios -d /usr/local/nagios/etc/nagios.cfg

7.2 重启Nagios

当修改了配置文件让其生效时,需要重启/重载Nagios服务。

a. 通过初始化脚本来重启nagios

  1. # /etc/init.d/nagios reload
  2. or
  3. # /etc/init.d/nagios restart
  4. or
  5. # service nagios restart

b. 通过web监控页重启nagios

可以通过web监控页的 "Process Info" -> "Restart the Nagios process"来重启nagios

c. 手工方式平滑重启

  1. # kill -HUP <nagios_pid>

7.3 停止Nagios

a. 通过初始化脚本关闭nagios服务

  1. # /etc/init.d/nagios stop  
  2. or  
  3. # service nagios stop 

b. 通过web监控页停止nagios

可以通过web监控页的 "Process Info" -> "Shutdown the Nagios process"来停止nagios

c. 手工方式停止Nagios

  1. # kill <nagios_pid> 


相关内容