博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
zabbix监控iptables时遇到的问题
阅读量:6075 次
发布时间:2019-06-20

本文共 1169 字,大约阅读时间需要 3 分钟。

背景:由于外包人员或者自己有时候关闭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

你可能感兴趣的文章
Android 中 ListView 分页加载数据
查看>>
oracle启动报错:ORA-00845: MEMORY_TARGET not supported on this system
查看>>
Go方法
查看>>
Dapper丶DapperExtention,以及AbpDapper之间的关系,
查看>>
搞IT的同学们,你们在哪个等级__那些年发过的帖子
查看>>
且谈语音搜索
查看>>
MySQL数据库导入导出常用命令
查看>>
低版本Samba无法挂载
查看>>
Telegraf+Influxdb+Grafana构建监控平台
查看>>
使用excel 展现数据库内容
查看>>
C#方法拓展
查看>>
MySql.Data.dll的版本
查看>>
Linux系统磁盘管理
查看>>
hdu 2191 (多重背包+二进制优化)
查看>>
home.php
查看>>
neo4j---删除关系和节点
查看>>
redis分布式锁redisson
查看>>
什么样的企业可以称之为初创企业?
查看>>
Python爬虫之BeautifulSoup
查看>>
《HTML 5与CSS 3权威指南(第3版·下册)》——第20章 使用选择器在页面中插入内容...
查看>>