您的位置:首页 > 运维架构

zabbix监控iptables时遇到的问题

2018-11-07 23:23 483 查看

背景:由于外包人员或者自己有时候关闭iptables,就忘记启用,会造成系统的安全问题,如果被***攻入一台主机,它就能登陆你的其它主机,一般除了跳板机,iptables是不让内网机直接互相登陆;iptables里面的内容,默认一般只开用到的端口。因此监控iptables的启停就很重要。

原理:我用的监控方法是根据网络上借鉴的简单的方法,通过iptables -nL命令来判断命令的行数,iptables关闭时候行数为8,来设置zabbix的触发器报警,zabbix项目和触发器怎么设置在这就不多说了。当然我认为还是有很多别的方法的。

我想说的问题,是在我用脚本执行iptables -nL命令的时候,在客户端取值都没有问题,但服务端取值总是不正确,在这个问题困扰了我许久之后,终于查找网络资料,学习到了,在这记录下来,主要是问题是zabbix用户没有权限执行iptables这个命令,导致我最后一步总是出错。用visudo命令,为zabbix用户执行iptables命令提权,在这不要给太大权限,只给需要的。
visudo
zabbix ALL=NOPASSWD: /sbin/iptables -L -n
然而手工 su 到 zabbix 的用户,执行 sudo iptables -L -n 是能够正常获得结果的,但在监控那边还是只能得到0。之后查找资料发现了两个方法,其实是一个意思,因为默认sudo远程不让执行
visudo后注释掉这个
#Defaults requiretty #这行注释就可以了
或者加上这一行
Defaults:zabbix !requiretty

感谢前人的资料
首先,在 zabbix 中新建一个 item,比如命名为 iptables.lines,类型选择 zabbix agent,其他保持默认就好了
然后,在被监控的主机上,填写自定义配置,vi zabbix_agentd.conf,在最后添加一行:
UserParameter=iptables.lines, sudo /sbin/iptables -L -n | wc -l
最后重启zabbix_agentd

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  zabbix