Nagios监控配置文件及监控流程
Posted legenidongma
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Nagios监控配置文件及监控流程相关的知识,希望对你有一定的参考价值。
1、安装路径/usr/local/nagios/下存在etc、bin、sbin、share、var 这五个目录。Nagios 各个目录用途说明如下:
bin Nagios 可执行程序所在目录 etc Nagios 配置文件所在目录 sbin Nagios CGI 文件所在目录,也就是执行外部命令所需文件所在的目录 share Nagios网页文件所在的目录 libexec Nagios 外部插件所在目录 var Nagios 日志文件、lock 等文件所在的目录 var/archives Nagios 日志自动归档目录 var/rw 用来存放外部命令文件的目录
ls /usr/local/nagios/etc/objects/ commands.cfg contacts.cfg localhost.cfg printer.cfg switch.cfg templates.cfg timeperiods.cfg windows.cfg 每个文件或目录含义如下表所示: 文件名或目录名 用途 cgi.cfg 控制CGI访问的配置文件 nagios.cfg Nagios 主配置文件 resource.cfg 变量定义文件,又称为资源文件,在些文件中定义变量,以便由其他配置文件引用,如$USER1$ objects objects 是一个目录,在此目录下有很多配置文件模板,用于定义Nagios 对象 objects/commands.cfg 命令定义配置文件,其中定义的命令可以被其他配置文件引用 objects/contacts.cfg 定义联系人和联系人组的配置文件 objects/localhost.cfg 定义监控本地主机的配置文件 objects/printer.cfg 定义监控打印机的一个配置文件模板,默认没有启用此文件 objects/switch.cfg 定义监控路由器的一个配置文件模板,默认没有启用此文件 objects/templates.cfg 定义主机和服务的一个模板配置文件,可以在其他配置文件中引用 objects/timeperiods.cfg 定义Nagios 监控时间段的配置文件 objects/windows.cfg 监控Windows 主机的一个配置文件模板,默认没有启用此文件。
第一:定义监控哪些主机、主机组、服务和服务组;
第二:定义这个监控要用什么命令实现;
第三:定义监控的时间段;
第四:定义主机或服务出现问题时要通知的联系人和联系人组。
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 # 该变量用于设置是否允许nagios在web监控界面运行cgi命令; # 也就是是否允许nagios在web界面下执行重启nagios、停止主机/服务检查等操作; # “1”为运行,“0”为不允许。 command_check_interval=10s # 该变量用于设置nagios对外部命令检测的时间间隔,如果指定了一个数字加一个"s"(如10s); # 那么外部检测命令的间隔是这个数值以秒为单位的时间间隔; # 如果没有用"s",那么外部检测命令的间隔是以这个数值的“时间单位”的时间间隔。 interval_length=60 # 该变量指定了nagios的时间单位,默认值是60秒,也就是1分钟; # 即在nagios配置中所有的时间单位都是分钟。
timeperiods.cfg文件详解:
define contact{ name generic-contact ; 联系人名称 service_notification_period 24x7 ; 当服务出现异常时,发送通知的时间段,这个时间段"24x7"在timeperiods.cfg文件中定义 host_notification_period 24x7 ; 当主机出现异常时,发送通知的时间段,这个时间段"24x7"在timeperiods.cfg文件中定义 service_notification_options w,u,c,r ; 这个定义的是“通知可以被发出的情况”。w即warn,表示警告状态,u即unknown,表示不明状态; ; c即criticle,表示紧急状态,r即recover,表示恢复状态; ; 也就是在服务出现警告状态、未知状态、紧急状态和重新恢复状态时都发送通知给使用者。 host_notification_options d,u,r ; 定义主机在什么状态下需要发送通知给使用者,d即down,表示宕机状态; ; u即unreachable,表示不可到达状态,r即recovery,表示重新恢复状态。 service_notification_commands notify-service-by-email ; 服务故障时,发送通知的方式,可以是邮件和短信,这里发送的方式是邮件; ; 其中“notify-service-by-email”在commands.cfg文件中定义。 host_notification_commands notify-host-by-email ; 主机故障时,发送通知的方式,可以是邮件和短信,这里发送的方式是邮件; ; 其中“notify-host-by-email”在commands.cfg文件中定义。 register 0 ; DONT REGISTER THIS DEFINITION - ITS NOT A REAL CONTACT, JUST A TEMPLATE! } define host{ name generic-host ; 主机名称,这里的主机名,并不是直接对应到真正机器的主机名; ; 乃是对应到在主机配置文件里所设定的主机名。 notifications_enabled 1 ; Host notifications are enabled event_handler_enabled 1 ; Host event handler is enabled flap_detection_enabled 1 ; Flap detection is enabled failure_prediction_enabled 1 ; Failure prediction is enabled process_perf_data 1 ; 其值可以为0或1,其作用为是否启用Nagios的数据输出功能; ; 如果将此项赋值为1,那么Nagios就会将收集的数据写入某个文件中,以备提取。 retain_status_information 1 ; Retain status information across program restarts retain_nonstatus_information 1 ; Retain non-status information across program restarts notification_period 24x7 ; 指定“发送通知”的时间段,也就是可以在什么时候发送通知给使用者。 register 0 ; DONT REGISTER THIS DEFINITION - ITS NOT A REAL HOST, JUST A TEMPLATE! }
2、Nagios监控客户端流程及步骤
1)Nagios客户端安装需要安装两个软件,nagios-plugins-1.4.14.tar.gz和nrpe-2.14.tar.gz,安装方法如下:
wget http://nchc.dl.sourceforge.net/project/nagios/nrpe-2.x/nrpe-2.14/nrpe-2.14.tar.gz;useradd nagios ;tar -xzf nagios-plugins-1.4.14.tar.gz &&cd nagios-plugins-1.4.14 &&./configure --prefix=/usr/local/nagios &&make &&make install tar -xzf nrpe-2.14.tar.gz && cd nrpe-2.14 &&./configure --enable-ssl --with-ssl-lib &&make all && make install-plugin && make install-daemon && make install-daemon-config chown -R nagios:nagios /usr/local/nagios/ ;cd .. ;cp nrpe.cfg /usr/local/nagios/etc/nrpe.cfg 启动nrpe客户端命令:/usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d
2) Nrpe客户端配置
修改vi /usr/local/nagios/etc/nrpe.cfg 修改默认配置段的内容如下,去掉#号,做相应修改。 command[check_users]=/usr/local/nagios/libexec/check_users -w 5 -c 10 command[check_load]=/usr/local/nagios/libexec/check_load -w 15,10,5 -c 30,25,20 command[check_disk]=/usr/local/nagios/libexec/check_disk -w 20 -c 10 -p /dev/sda2 command[check_procs]=/usr/local/nagios/libexec/check_procs -w 50 -c 100 command[check_swap]=/usr/local/nagios/libexec/check_swap -w 20 -c 10
3)Nagios服务器Nrpe配置
Nagios 服务器端也需要安装nrpe,同时需要定义Nrpe监控命令,写command.cfg末尾即可: define command{ command_name check_nrpe command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$ }
4) Nagios监控端客户机配置
在192.168.0.112.cfg加入如下配置段,引用客户端nrpe.cfg里面配置的check_load命令,命令一般格式为:check_nrpe!command
define service{ use local-service host_name 192.168.0.112 service_description Current Load check_command check_nrpe!check_load }
以上是关于Nagios监控配置文件及监控流程的主要内容,如果未能解决你的问题,请参考以下文章
Security基础:OpenSSL及证书服务常用系统监控命令搭建nagios监控服务器配置文件及插件使用监控远程主机的公有数据监控远程主机的私有数据