我们已经设置了 zabbix 来监控我们的基础设施,但我们的安全团队拒绝我们通过 zabbix 运行自定义脚本。这让我们很难找到不需要自定义脚本的解决方案。
我已经研究了一段时间如何监控子进程的产生率,但到目前为止还没有成功。
据我所知,zabbix 检查不包括生成率检查,您能建议我们如何实现这一点吗?
答案1
你需要一些叉子 - 你可以通过使用虚拟机状态监测(自启动以来的分叉数):
vmstat -f
但是你不能运行任何命令,因为安全问题(我知道,他们的默认答案总是:不,这是不可能的 :-D)。但是你可以创建 Zabbix 模块,它将执行你的命令 => 这不是个聪明的主意。更好的选择是直接从内核计数器读取分叉数。你可以在 cmd 中测试它(它相当于vmstat -f
):
cat /proc/stat | grep ^processes
您的 Zabbix 模块应该读取/proc/stat
,解析以 开头的行中的数字,processes
然后 Zabbix 代理将其用作度量值。对于 C 开发人员来说,这很简单。请参阅虚拟 Zabbix 模块并对其进行扩展。
您需要一个速率,然后在 Zabbix UI 中配置项目并将其存储为Delta (speed per second)
,因此最终它将是 forks/second。Zabbix 可能还会处理溢出。性能将非常出色,因为 /proc/stat 不是真实文件,因此没有 IOps。没有 forks,只需要 CPU 和内存。您还可以更改项目的更新间隔,结果速率仍然是正确的。