您的位置:首页 > 移动开发 > IOS开发

Nagios中官方iptables监控脚本调整

2017-08-10 19:45 302 查看
在Nagios的官方网站上有提供一个用于监控iptables的状态的脚本,但是官方提供的脚本直接是不能使用的需要修改才能使用,在这里就大致说一下,因为Nagios的中命令机制是使用Nagios用户运行的,所以在官网上提供的脚本没有做出调整前是无法正常使用的,官网提供的iptables监控脚本很简单,是使用iptables的指令统计出INPUT上实时的条数的有多少,如果条数-1等于0就告警。但是在普通用户是无法正常使用iptables的命令,如果没有做出调整在Nagios中会出现NRPE:Unable to read output的错误,所以就需要在系统中调整一下,需要给Nagios添加一条使用iptables命令的sudo免密的sudo权限:
[root@localhost ~]# 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
echo "ERROR $CHAIN $CNT rules!"
exit $STATE_CRITICALL
else
echo "OK $CHAIN $CNT rules"
exit $STATE_OK
fi
fi
done
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Nagios iptables nrpe