nagios分布式配置
圖-nagios
nagios分布式配置具體過(guò)程如下:
一、NSCA插件安裝與配置
http://nchc.dl.sourceforge.net/sourceforge/nagios/nsca-2.7.2.tar.gz
編譯安裝nsca:
查看源代碼
打印幫助0./configure && make all
nagios主服務(wù)端:
1.拷貝nsca相關(guān)文件至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前面的#,設(shè)置密碼
1password=xxx
3.開(kāi)啟nsca程序
查看源代碼
打印幫助0/usr/local/nagios/bin/nsca -c /usr/local/nagios/etc/nsca.cfg
4.開(kāi)啟防火墻5667端口
查看源代碼
打印幫助0iptables -I RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 5667 -j ACCEPT
nagios分布式服務(wù)端:
1.拷貝send_nsca相關(guān)文件至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前面的#,配置與主服務(wù)端相同的密碼
1password=xxx
#p#
二、Nagios主服務(wù)端與分布式服務(wù)端配置
nagios主服務(wù)端:
1.修改nagios.cfg文件
查看源代碼
打印幫助0vi /usr/local/nagios/etc/nagios.cfg
1#修改以下參數(shù)值
2check_external_commands=1
3accept_passive_service_checks=1
4accept_passive_host_checks=1
2.修改服務(wù)與主機(jī)的監(jiān)控,以下為配置示例,該示例定義的服務(wù)與主機(jī)應(yīng)該與分布式服務(wù)端相同
查看源代碼
打印幫助00define host{
01name test
02use generic-host
03address 192.168.0.8 #分布式服務(wù)端內(nèi)監(jiān)控的主機(jī)地址
04check_freshness 1 #開(kāi)啟強(qiáng)制刷新
05freshness_threshold 480 #主服務(wù)端強(qiáng)制刷新的時(shí)間,具體含義請(qǐng)參考手冊(cè)
06passive_checks_enabled 1 #開(kāi)啟被動(dòng)檢測(cè)模式
07active_checks_enabled 0 #關(guān)閉主服務(wù)端對(duì)該服務(wù)的主動(dòng)檢測(cè)
08
09}
10define service{
11use generic-service #根據(jù)實(shí)際情況修改
12host_name test
13service_description CPU Load
14check_command check_nrpe!check_load
15
16check_freshness 1 #開(kāi)啟強(qiáng)制刷新
17freshness_threshold 480 #主服務(wù)端強(qiáng)制刷新的時(shí)間,具體含義請(qǐng)參考手冊(cè)
18passive_checks_enabled 1 #開(kāi)啟被動(dòng)檢測(cè)模式
19active_checks_enabled 0 #關(guān)閉主服務(wù)端對(duì)該服務(wù)的主動(dòng)檢測(cè)
20}
#p#
nagios分布式服務(wù)端:
1.修改nagios.cfg文件
查看源代碼
打印幫助0vi /usr/local/nagios/etc/nagios.cfg
1#修改以下參數(shù)值
2enable_notifications=0
3obsess_over_services=1
4ocsp_command=submit_service_check_result
5obsess_over_hosts=1
6ochp_command=submit_host_check_result
2.創(chuàng)建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(修改為主服務(wù)端的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.創(chuàng)建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(修改為主服務(wù)端的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 #加入以下內(nèi)容
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 #分布式服務(wù)端內(nèi)監(jiān)控的主機(jī)地址
04}
05define service{
06use generic-service #根據(jù)實(shí)際情況修改
07host_name test
08service_description CPU Load
09check_command check_nrpe!check_load
10}
BTW:請(qǐng)注意分布式服務(wù)端與主服務(wù)端定義主機(jī)與服務(wù)配置的區(qū)別,當(dāng)分布式服務(wù)端定義了主機(jī)與服務(wù)時(shí),同樣需要在主服務(wù)端定義一次。以下幾個(gè)參數(shù)無(wú)需在分布式服務(wù)端特殊定義。
check_freshness,freshness_threshold,passive_checks_enabled,active_checks_enabled
freshness_threshold 強(qiáng)制刷新時(shí)間,主要的作用是當(dāng)分布式服務(wù)端未提交新的數(shù)據(jù)時(shí),服務(wù)端可以強(qiáng)制進(jìn)行狀態(tài)刷新,進(jìn)行及時(shí)的預(yù)警。
如何在不安裝分布式nagios的情況下,監(jiān)控另一防火墻后的內(nèi)網(wǎng)主機(jī)呢?其實(shí)方法很多,比如check_ssh,這里共享一個(gè)方法,該方法是同事nonamexz想到的。
通過(guò)nagios的自定義變量,在nrpe的命令行增加一個(gè)端口的參數(shù),自定義端口,通過(guò)防火墻進(jìn)行映射至內(nèi)網(wǎng)不同的服務(wù)器
查看源代碼
打印幫助00define command{
01command_name check_NRPE #定義一個(gè)新的命令
02command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -p $_HOSTPORT$ -t 60
03}
04define host{
05name test
06use generic-host
07address 2.2.2.2 #需要監(jiān)控的服務(wù)器的外網(wǎng)地址,比如防火墻地址
08_PORT 5668 #自定義的外網(wǎng)端口,改端口是通過(guò)防火墻進(jìn)行內(nèi)的需要監(jiān)控的服務(wù)器的nrpe的端口映射
09}
10define service{
11use generic-service
12host_name test
13service_description CPU Load
14check_command check_NRPE!check_load #這里定義的時(shí)候,使用自定義的nrpe
通過(guò)文章的介紹,我們清楚的知道了nagios分布式配置全過(guò)程!
【編輯推薦】