nagios的分布式是通过在主服务端开启nsca接口进行内容的接收,客户端通过调用send_nsca程序,进行内容的传输,服务端在接收到约定格式的内容后,进行告警。以下内容省略了,nagios的主服务端与分布式服务端的安装步骤。
图-nagios
nagios分布式装备详细进程如下:
一、NSCA插件装置与装备
http://nchc.dl.sourceforge.net/sourceforge/nagios/nsca-2.7.2.tar.gz
编译装置nsca:
检查源代码
打印协助0./configure && make all
nagios主服务端:
1.复制nsca相关文件至nagios目录
检查源代码
打印协助0cp sample-config/nsca.cfg /usr/local/nagios/etc/
1cp src/nsca /usr/local/nagios/bin/
2chown nagios.nagios /usr/local/nagios/etc/nsca.cfg
3chown nagios.nagios /usr/local/nagios/bin/nsca
2.装备nsca.cfg文件中password
检查源代码
打印协助0vi /usr/local/nagios/etc/nsca.cfg #去掉password前面的#,设置暗码
1password=xxx
3.敞开nsca程序
检查源代码
打印协助0/usr/local/nagios/bin/nsca -c /usr/local/nagios/etc/nsca.cfg
4.敞开防火墙5667端口
检查源代码
打印协助0iptables -I RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 5667 -j ACCEPT
nagios分布式服务端:
1.复制send_nsca相关文件至nagios目录
检查源代码
打印协助0cp sample-config/send_nsca.cfg /usr/local/nagios/etc/
1cp src/send_nsca /usr/local/nagios/bin/
2chown nagios.nagios /usr/local/nagios/etc/send_nsca.cfg
3chown nagios.nagios /usr/local/nagios/bin/send_nsca
2.装备nsca.cfg文件中password
检查源代码
打印协助0vi /usr/local/nagios/etc/send_nsca.cfg #去掉password前面的#,装备与主服务端相同的暗码
1password=xxx
#p#
二、Nagios主服务端与分布式服务端装备
nagios主服务端:
1.修正nagios.cfg文件
检查源代码
打印协助0vi /usr/local/nagios/etc/nagios.cfg
1#修正以下参数值
2check_external_commands=1
3accept_passive_service_checks=1
4accept_passive_host_checks=1
2.修正服务与主机的监控,以下为装备示例,该示例界说的服务与主机应该与分布式服务端相同
检查源代码
打印协助00define host{
01name test
02use generic-host
03address 192.168.0.8 #分布式服务端内监控的主机地址
04check_freshness 1 #敞开强制改写
05freshness_threshold 480 #主服务端强制改写的时刻,详细意义请参考手册
06passive_checks_enabled 1 #敞开被迫检测形式
07active_checks_enabled 0 #封闭主服务端对该服务的自动检测
08
09}
10define service{
11use generic-service #依据实际情况修正
12host_name test
13service_description CPU Load
14check_command check_nrpe!check_load
15
16check_freshness 1 #敞开强制改写
17freshness_threshold 480 #主服务端强制改写的时刻,详细意义请参考手册
18passive_checks_enabled 1 #敞开被迫检测形式
19active_checks_enabled 0 #封闭主服务端对该服务的自动检测
20}
#p#
nagios分布式服务端:
1.修正nagios.cfg文件
检查源代码
打印协助0vi /usr/local/nagios/etc/nagios.cfg
1#修正以下参数值
2enable_notifications=0
3obsess_over_services=1
4ocsp_command=submit_service_check_result
5obsess_over_hosts=1
6ochp_command=submit_host_check_result
2.创立submit_service_check_result脚本
检查源代码
打印协助00vi /usr/local/nagios/libexec/submit_service_check_result
01#!/bin/sh
02# Arguments:
03# = host_name (Short name of host that the service is
04# associated with)
05# = svc_description (Description of the service)
06# = state_string (A string representing the status of
07# the given service - "OK", "WARNING", "CRITICAL"
08# or "UNKNOWN")
09# = plugin_output (A text string that should be used
10# as the plugin output for the service checks)
11#
12# Convert the state string to the corresponding return code
13return_code=-1
14case "$3" in
15OK)
16return_code=0
17;;
18WARNING)
19return_code=1
20;;
21CRITICAL)
22return_code=2
23;;
24UNKNOWN)
25return_code=-1
26;;
27esac
28# pipe the service check info into the send_nsca program, which
29# in turn transmits the data to the nsca daemon on the central
30# monitoring server
31/usr/bin/printf "%s\t%s\t%s\t%s\n" "$1" "$2" "$return_code" "$4" | /usr/local/nagios/bin/send_nsca -H 1.1.1.1(修正为主服务端的ip) -c /usr/local/nagios/etc/send_nsca.cfg
检查源代码
打印协助0chmod +x /usr/local/nagios/libexec/submit_service_check_result
1chown nagios.nagios submit_service_check_result
3.创立submit_host_check_result脚本
检查源代码
打印协助00vi /usr/local/nagios/libexec/submit_host_check_result
01#!/bin/sh
02# Arguments:
03# = host_name (Short name of host that the service is
04# associated with)
05# = svc_description (Description of the service)
06# = state_string (A string representing the status of
07# the given service - "OK", "WARNING", "CRITICAL"
08# or "UNKNOWN")
09# = plugin_output (A text string that should be used
10# as the plugin output for the service checks)
11#
12# Convert the state string to the corresponding return code
13return_code=-1
14case "$2" in
15UP)
16return_code=0
17;;
18DOWN)
19return_code=1
20;;
21UNREACHABLE)
22return_code=2
23;;
24esac
25# pipe the service check info into the send_nsca program, which
26# in turn transmits the data to the nsca daemon on the central
27# monitoring server
28/usr/bin/printf "%s\t%s\t%s\n" "$1" "$return_code" "$3" | /usr/local/nagios/bin/send_nsca -H 1.1.1.1(修正为主服务端的ip) -c /usr/local/nagios/etc/send_nsca.cfg
#p#
检查源代码
打印协助0chmod +x /usr/local/nagios/libexec/submit_host_check_result
1chown nagios.nagios submit_host_check_result
3.在command.cfg文件中界说submit_service_check_result,submit_host_check_result指令
检查源代码
打印协助0vi /usr/local/nagios/etc/objects/command.cfg #参加以下内容
1define command{
2command_name submit_service_check_result
3command_line /usr/local/nagios/libexec/submit_service_check_result $HOSTNAME$ '$SERVICEDESC$' $SERVICESTATE$ '$SERVICEOUTPUT$'
4}
5define command{
6command_name submit_host_check_result
7command_line /usr/local/nagios/libexec/submit_host_check_result $HOSTNAME$ $HOSTSTATE$ '$HOSTOUTPUT$'
8}
4.装备示例
检查源代码
打印协助00define host{
01name test
02use generic-host
03address 192.168.0.8 #分布式服务端内监控的主机地址
04}
05define service{
06use generic-service #依据实际情况修正
07host_name test
08service_description CPU Load
09check_command check_nrpe!check_load
10}
BTW:请注意分布式服务端与主服务端界说主机与服务装备的差异,当分布式服务端界说了主机与服务时,相同需求在主服务端界说一次。以下几个参数无需在分布式服务端特别界说。
check_freshness,freshness_threshold,passive_checks_enabled,active_checks_enabled
freshness_threshold 强制改写时刻,首要的作用是当分布式服务端未提交新的数据时,服务端能够强制进行状况改写,进行及时的预警。
如安在不装置分布式nagios的情况下,监控另一防火墙后的内网主机呢?其实办法许多,比方check_ssh,这儿同享一个办法,该办法是搭档nonamexz想到的。
经过nagios的自界说变量,在nrpe的指令行添加一个端口的参数,自界说端口,经过防火墙进行映射至内网不同的服务器
检查源代码
打印协助00define command{
01command_name check_NRPE #界说一个新的指令
02command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -p $_HOSTPORT$ -t 60
03}
04define host{
05name test
06use generic-host
07address 2.2.2.2 #需求监控的服务器的外网地址,比方防火墙地址
08_PORT 5668 #自界说的外网端口,改端口是经过防火墙进行内的需求监控的服务器的nrpe的端口映射
09}
10define service{
11use generic-service
12host_name test
13service_description CPU Load
14check_command check_NRPE!check_load #这儿界说的时分,运用自界说的nrpe
经过文章的介绍,咱们清楚的知道了nagios分布式装备全进程!
【修改引荐】
- RHEL装置nagios
- Nagios :扩展提示信息发送方法(smtp, msn, fetion)
- nagios 装置进程
- 发动nagios服务
- 怎么编写 Nagios 插件
- 装备 新的Nagios
知优网 » nagios分布式装备(nagios部署)