centos7 nagios 配置被動模式監控

Amos_x發表於2017-11-09
在前面,分別介紹了nagios 的server端和client端的配置,但是nagios預設是主動模式進行監控,也就是由server端主機對每臺client機發起輪詢,利用nrpe在client端檢測,然後將檢測的資料發回給server端主機。然後主機接收這些資料展示出來,這在client端機器不多時,還是可以正常的,一旦機器開始多起來,每臺機的檢測命令躲起來,對於server端的CPU資源消耗就會非常大,在集中輪詢的時候,常會遇到cpu會帶不動,資料丟失,延遲過大等等。
為此,需要向主動模式改為被動模式,讓client端客戶機自己定時檢測,然後發資料給server端。server端只負責對接受到的資料的處理和展示即可。大大降低了server 端的壓力。讓壓力均攤到各個client端了。在面對大量client客戶端時,也能正常的進行監控工作。
這裡,記錄一下nagios被動模式配置。基於前面兩篇nagios,server端和client端安裝與配置的基礎。
這裡使用 nsca 來實現被動模式。


一。server服務端配置
1.首先,下載安裝nsca
$ yum install libmcrypt (安裝需要的依賴包)
$ wget http://prdownloads.sourceforge.net/sourceforge/nagios/nsca-2.7.2.tar.gz
$ tar -zxvf nsca-2.7.2.tar.gz
$ cd nsca-2.7.2
$ ./configure
$ make all
$ cp src/nsca /usr/local/nagios/bin/ (將可執行檔案複製到nagios內)
$ cp sample-config/nsca.cfg /usr/local/nagios/etc/ (將配置檔案放到nagios內)
$ chmod 755 /usr/local/nagios/bin/nsca (服務執行檔案許可權)
$ chown nagios.nagios /usr/local/nagios/bin/nsca (改變檔案的所屬權)
$ chown nagios.nagios /usr/local/nagios/etc/nsca.cfg (改變檔案的所屬權)


2.配置nsca
$ vim /usr/local/nagios/etc/nsca.cfg
$ server_address=192.168.1.1 (這個為server端地址,寫上本機IP即可)
$ debug=1 (開啟日誌記錄) 
$ aggregate_writes=1 (合計寫入,開啟可支援更大監控亮量)
$ max_packet_age=60 (資料包過期時間,單位秒)
$ nsca_user=nagios
$ nsca_group=nagios
$ password=nagios_nsca (nsca密碼,用於客戶端連線時的認證)


3.配置xinetd守護啟動
$ vim /etc/services (編輯services)
---------------------------------------------------------------------------------
nsca 5667/tcp # nsca (新增這一行在最下面)


-----------------------------------------------------------------------------------
$ cp sample-config/nsca.xinetd /etc/xinetd.d/nsca (將nsca的啟動檔案拷貝到xinetd)
$ vim /etc/xinetd.d/nsca
-----------------------------------------------------------------------
service nsca
{
        flags           = REUSE
        socket_type     = stream     
        wait            = no
        user            = nagios
        group           = nagios
        server          = /usr/local/nagios/bin/nsca
        server_args     = -c /usr/local/nagios/etc/nsca.cfg --inetd
        log_on_failure  += USERID
        disable         = no
        only_from       = 127.0.0.1 192.168.1.2 (多個監控端在這裡新增,中間用空格隔開)
}
--------------------------------------------------------------------------------------------------
$  systemctl restart xinetd (重新啟動載入nsca)


3.配置nagios的配置檔案,設定被動模式的service模板和命令等
$ vim /usr/local/nagios/etc/nagios.cfg
----------------------------------------------------------
check_external_commands = 1  (確保這個選項開啟)
----------------------------------------------------------
$ vim /usr/local/nagios/objects/templates.cfg (配置被動模式模板)
---------------------------------------------------------------------------------------
## 其他配置,根據使用情況自己自定義
define service{
        name                            passive_service
        use                             generic-service
        max_check_attempts              3   
        normal_check_interval           5
        active_checks_enabled           0  (關閉主動模式)
        passive_checks_enabled          1    (開啟被動模式)
        retry_check_interval            1   
        register                        0   
    } 
------------------------------------------------------------


$ vim /usr/local/nagios/objects/commands.cfg (新增命令)
-----------------------------------------------------------------------------------------------
## 這個是用來對接受的資料,狀態判斷的命令
define command{
    command_name    check_dummy
    command_line    /usr/local/nagios/libexec/check_dummy $ARG1$
-----------------------------------------------------------------------------------------------


$ vim vim /usr/local/nagios/objects/services.cfg ( 新增服務 ,之前自定義的配置檔案,詳見前兩篇 nagios安裝教程)
define service{
        use                             passive_service
        host_name                       nagios-client
        service_description             CheckDummy
        check_command                   check_dummy!0
        notifications_enabled           1   
    }


$ killall nagios
$ /usr/local/nagios/bin/nagios -d /usr/local/nagios/etc/nagios.cfg (重啟nagios) 




二。nagios客戶端配置
1.安裝配置send_nsca ,與服務端安裝類似
$ yum install libmcrypt
$ wget http://prdownloads.sourceforge.net/sourceforge/nagios/nsca-2.7.2.tar.gz
$ tar -zxvf nsca-2.7.2.tar.gz
$ ./configure
$ make all
$ cp src/send_nsca /usr/local/nagios/bin/
$ cp sample-config/send_nsca.cfg /usr/local/nagios/etc/
$ chmod 755 /usr/local/nagios/bin/send_nsca
$ chown nagios.nagios /usr/local/nagios/bin/send_nsca
$ chown nagios.nagios /usr/local/nagios/etc/send_nsca.cfg 


2.配置send_nsca
$ vim /usr/local/nagios/etc/send_nsca.cfg
$ password=nagios_nsca (連線服務端的認證密碼)


3.測試client端傳送資料。
$echo "192.168.1.2;CheckDummy;0;hello passive service"|/usr/local/nagios/bin/send_nsca -H 192.168.1.1 -d ";" -c /usr/local/nagios/etc/send_nsca.cfg


1 data packet(s) sent to host successfully. (成功傳送會有這個提示)
然後在nagios管理介面,就可以看到這個service的資訊了。


OK,到此就算是配置完了被動模式的監控,至於如何使用被動模式,配置定時檢測,傳送警報和郵件,編寫被動模式的檢測指令碼,則在後面再新開一篇進行專項記錄。

相關文章