1. 程式人生 > >Nagios中官方iptables監控腳本調整

Nagios中官方iptables監控腳本調整

nagios iptables nrpe

在Nagios的官方網站上有提供一個用於監控iptables的狀態的腳本,但是官方提供的腳本直接是不能使用的需要修改才能使用,在這裏就大致所以下,因為Nagios的中命令機制是使用Nagios用戶運行的,所以在官網上提供的腳本沒有做出調整前是無法正常使用的,官網提供的iptables監控腳本很簡單,是使用iptables的指令統計出INPUT上實時的條數的有多少,如果條數-1小於0就告警。但是在普通用戶是無法正常使用iptables的命令,如果沒有做出調整在Nagios中會出現NRPE:Unable to read output的錯誤,所以就需要在系統中調整一下,需要給Nagios添加一條使用iptables命令的sudo免密的sudo權限:

[[email protected] ~]# visudo
…略…
nagios          ALL=(ALL)       NOPASSWD:/sbin/iptables
…略…

在這裏要註意一下,在之前部署安裝Nagios的時候一定要註意創建Nagios的用戶為不可登錄的useradd -s的參數,這樣添加完sudo權限就不會有安全風險,最後在修改下官方的腳本就可以了:

#!/bin/bash
#You must add Nagios permission to iptables in / etc / sudoers
STATE_OK=0
STATE_WARNING=1
STATE_CRITICALLL=2
STATE_UNKNOWN=3

CHAINS=$(sudo iptables -nvL | grep ‘Chain‘ | awk ‘{ print $2 }‘)

for CHAIN in $CHAINS ; do
    if [ "$CHAIN" != ‘FORWARD‘ ] && [ "$CHAIN" != ‘OUTPUT‘ ] && [ $(expr substr $CHAIN 1 4) != "LOG_" ] ; then
        CNT=$(expr $(sudo iptables -S $CHAIN | wc -l) ‘-‘ 1)
        if [ $CNT -eq 0 ] ; then
            OUTPUT="${OUTPUT}ERROR $CHAIN $CNT rules!"
            echo $OUTPUT
            exit $STATE_CRITICALL
        else
            OUTPUT="${OUTPUT}OK $CHAIN $CNT rules"
            echo $OUTPUT
            exit $STATE_OK
        fi
    fi
done


本文出自 “技術隨筆” 博客,謝絕轉載!

Nagios中官方iptables監控腳本調整