zabbix监控iptables时遇到的问题

背景:由于外包人员或者自己有时候关闭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 是能够正常获得结果的,在zabbix客户端用测试取值也是能取到的,但在zabbix服务端那边还是只能得到0。
Zabbix服务端测试命令
/usr/local/zabbix/bin/zabbix_get -s zabbix客户端ip地址 -k iptables.lines
Zabbix客户端测试命令
/usr/local/zabbix/sbin/zabbix_agentd -t iptables.lines

之后查找资料发现了两个方法,其实是一个意思,因为默认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

转载于:https://blog.51cto.com/12107094/2314267

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值