ngios的配置文件位于/etc/nagios目录下
# ll /etc/nagios 总用量 68 -rw-rw-r-- 1 nagios nagios 11659 3月 21 14:48 cgi.cfg -rw-r--r-- 1 root root 26 3月 21 14:52 htpasswd.users -rw-rw-r-- 1 nagios nagios 44580 3月 21 14:48 nagios.cfg drwxrwxr-x 2 nagios nagios 4096 3月 21 14:48 objects -rw-rw---- 1 nagios nagios 1340 3月 21 14:48 resource.cfg
要成功配置出一台nagios监控系统,必须要理解每个配置文件之间彼此的依赖关系,最重要的有四点:
第一、定义监控哪些主机、主机组、服务、服务组
第二、定义实现这个监控要使用什么命令
第三、定义监控的时间段
第四、定义主机或服务出现问题是要通知的联系人和联系人组
1. nagios.cfg 主配置文件
语法非常简洁,格式为 <参数>=<值>, 常用的参数设置如下:
log_file : 设定nagios的日志文件
Format: log_file=<file_name>
Example: log_file=/usr/local/nagios/var/nagios.log
cfg_file: nagios对象定义的相关文件,此参数可重复使用多次以定义多个对象
Format: cfg_file=<file_name>
Example: cfg_file=/usr/local/nagios/etc/hosts.cfg
cfg_file=/usr/local/nagios/etc/services.cfg
cfg_dir: 设定nagios对象定义的相关文件所在的目录,此目录中的所有文件都会被作为对象定义的文件
Format: cfg_dir=<directory_name>
Example: cfg_dir=/usr/local/nagios/etc/commands
cfg_dir=/usr/local/nagios/etc/services
resource_file: 设定nagios的宏定义的相关文件
Format: resource_file=<file_name>
Example: resource_file=/usr/local/nagios/etc/resource.cfg
status_file: 设定nagios存储所有主机和服务当前状态信息的文件
Format: status_file=<file_name>
Example: status_file=/usr/local/nagios/var/status.dat
status_update_interval: 设定status_file指定的文件中状态信息的更新频率
Format: status_update_interval=<seconds>
Example: status_update_interval=15 最小是1秒
services_check_timeout: 设定服务检测的超时时间,默认为60s
host_check_timeout: 设定主机检测的超时时间,默认为30秒
notification_timeout: 设定通知信息发送尝试的超时时间,默认为30秒
2. resource_file和宏定义
在主配置文件中,resource_file用于定义所有用户变量(即宏)的存储文件,它用于存储对象定义中的可访问的额外信息,如访问某服务的密码,因此这些信息都是敏感的,一般不允许通过web接口来访问。此文件中可以定义的宏可达32个,这些宏一般在check命令中引用。通常情况下$USER1$用于引用nagios插件所在目录,因此, 一般不建议修改这个值。
nagios事先定义了这么多宏,它们的值通常依赖于其上下文,如下:
HOSTNAME : 用于引用host_name指定所定义的主机的主机名:每个主机的主机名都是唯一的。
HOSTADRESS: 用于引用host对象中的adress指令的值,它可以是IP地址或主机名。
HOSTISPLAYNAME: 用于引用host对象中的address指令的值,用于描述当前主机,即主机的显示名称
HOSTSTATE: 某主机的当前状态,为UP, DOWN, UNREACHABLE 三者之一。
HOSTGROUPNAMES: 用于引用某主机所属的所有主机组的简名,主机组名称之间用逗号分隔
LASTHOSTCHECK: 用于引用某主机上次检测的时间和日期, unix时间戳
SERVICEDESC: 用于引用对应service对象中的description指令的值
SERVICESTATE: 用于引用某服务的当前状态,为ok, warning, unknown, critical 之一
$CONTACTNAME$: 表示联系人,在联系人文件中定义
通知宏: $NOTIFICATIONTYPE$
日期时间宏: $LONGDATETIME$ 当前日期/时间戳
文件宏: $LOGFILE$ 日志文件保存位置
$MAINCONFIGFILE$ : 主配置文件的保存位置
其它宏:
$ADMINEMAIL$ : 全局的管理员Email地址
$ARGN$: 指向第n个命令传递参数(通知,事件处理,服务检测等). 支持最多32个参数宏
object: 包含各种对象(对象定义文件目录)
3. resouce.cfg
定义宏的配置文件(nagios的环境变量) ,资源配置文件,内容可能会包含敏感信息。
宏:变量, nagios默认支持32个宏 【$USER1$-$USER32$】
$USER1$=/usr/local/nagios/libexec ,插件所在目录,切记不要随意修改