Nagios中官方iptables監控腳本調整
阿新 • • 發佈:2017-08-11
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監控腳本調整