Python 自动化运维(3)--Nagios配置

Nagios配置文件

nagios

  • nagios.cfg 主配置文件,进程运行状态的配置文件,其他配置文件主要是基于此配置文件选择
  • cgi.cfg 控制cgi访问的配置文件,网络访问协议,web访问配置
  • resource.cfg 资源文件,在此文件中定义的变量可以再其他配置文件中引用
  • objects/*.cfg 监控相关的配置文件,用于定义nagios对象
    • commands.cfg 定义命令的配置文件,可以被其他文件应用
    • contacts.cfg 定义联系人和联系人组,用于接收警报消息
    • localhosts.cfg 定义监控本机的配置文件,不局限于local,可以是其配置文件
    • printer.cfg 定义打印机配置文件默认不启用
    • switch.cfg 监控路由器的配置文件,默认不启用
    • templates.cfg 模板配置文件
    • timeperiods.cfg 定义监控时间段的配置文件
    • windows.cfg 监控windows主机的一个配置文件模板,默认不启用

Nagios主配置文件

对象配置文件模块:

  1. 定义主机、主机组、联系人、联系人组、服务等
  2. cfg_file指明配置文件分开定义
  3. Nagios将会读取并处理所有这些配置文件

对象配置文件

  • #cfg_dir=/usr/local/nagios/etc/servers
  • #cfg_dir=/usr/local/nagios/etc/printers
  • #cfg_dir=/usr/local/nagios/etc/switches
  • #cfg_dir=/usr/local/nagios/etc/routers

对象缓存文件

这些选项将决定当Nagios启动或重启时,对象定义将被缓存在什么地方。CGI将从这个对象文件中读取对象的定义,而不是在之前的对象配置文件路径中去找。这样做是为了避免修改Nagios配置文件后引起的不一致问题

状态文件

这个文件保存着目前检测到的服务和主机数据信息。这个文件当中的内容是被CGI读取并处理的,而它也是每次Nagios重新启动的时候被删除。

status_file=/var/log/nagios/stauts.dat

Nagios进程运行用户和用户组

  • nagios_user = nagios
  • nagios_nagios = nagios

外部命令行

  • check_external_commands = 1 , 这个选项允许用户指定是否Nagios应对外部的命令进行检查
  • command_check_interval = 15s , 外部命令检查时间间隔
  • command_file=/var/log/nagios/rw/nagios.cmd , 这事Nagios用力啊检查外部命令请求的文件。这个文件同样也是用户操作提交于CGI命令写入的地。
  • external_command_buffer_slot = 4096 , 外部命令缓冲

运行文件

  • downtime_file=/var/log/nagios/downtime.dat, 这是Nagios用来记录主机和服务故障停机时间数据的文件
  • lock_file=/var/run/nagios.pid , 设定Nagios的PID文件
  • temp_file=/var/log/nagios/nagios.tmp , 设定临时文件的路径

日志

  • log_file : 设定Nagios的主日志文件的路径(需修改,负责会出现权限问题)
  • log_rotation_method : 写主日志记录是的循环记录方式
  • log_archive_path : 设定日志归档路径
  • use_syslog : 默认设定Nagios信息加入系统日志
  • log_notifications : 默认设定Nagios的通知是记录的
  • log_service_retries: 默认设定记录服务重启信息
  • log_host_retries : 默认设定记录主机重启信息
  • log_event_handlers : 默认启用记录事件处理程序信息
  • log_initial_states : 默认不记录初始化状态信息(最好开启)
  • log_external_commands : 默认设定记录外部命令信息
  • log_passive_checks : 默认设定记录被动检查信息

主服务间内部检查之间延时的方式

  • service_inter_check_delay_method : 默认设定服务间检查间隔采用smart算法
    • 值n表示none,不做任何延迟
    • 值d表示dump, 表示在两个相邻的检查之间做1s的延迟
    • 值s表示smart, 表示默认精简方式安排延迟
    • 值x.xx表示动手定制每相邻的检查之间固定的x.xx秒延迟