问题是个小问题,但是折腾了我大半天啊,网上什么乱七八糟的东西,每一个说到重点的,谷歌百度都翻烂了,结果全是没法用的,吐槽一波,接下来进入正题。
老大让测试某款hids,功能测试都搞完了,接下来到了性能测试,对接到了zabbix的环境,运维都给搭建好了,但是他监控的是整个服务器的cpu使用率,没有对单独进程进行监控,然后的然后,他们说没搞过,没资源研究,应该是他们太忙了,肯定是的,所以我自己动手搞吧。
啰里八嗦网上找半天,基本都是一个解决方法,让写个脚本,然后再加个啥UserParameter在配置文件里,再到平台配置一个key,可能是我的问题搞来搞去都不对,不得已去翻zabbix的官方文档。
那么有意思的就来了。
proc.cpu.util[<name>,<user>,<type>,<cmdline>,<mode>,<zone>] | ||||
| 进程CPU利用率百分比。 | 浮点型 | name - 进程名 (默认为 all processes) user - 用户名 (默认为 all users) type - CPU利用率类型: total (默认), user, system cmdline - 可按命令行过滤(支持正则表达式) mode - 数据收集模式: avg1 (默认), avg5, avg15 zone - 目标区域: current (默认), all. 此参数仅在Solaris平台上受支持。从Zabbix 3.0.3开始,如果代理程序已在Solaris上编译且没有区域支持,而是在支持区域的较新Solaris上运行,并且<zone>参数为缺省值或当前值,则代理程序将返回NOTSUPPORTED(该代理程序不能将结果限制为仅当前区)。但是,在这种情况下,支持<zone>参数值all。 | 示例: ⇒ proc.cpu.util[,root] → 在“root”用户下运行的所有进程的CPU利用率。 ⇒ proc.cpu.util[zabbix_server,zabbix] → 在zabbix用户下运行的所有zabbix_server进程的CPU利用率。 返回值基于单CPU核的利用率。例如,使用两个内核的进程的CPU利用率为200%。 进程CPU利用率数据由收集器收集,该收集器最多支持1024个唯一(按名称,用户和命令行)查询。 过去24小时内未被访问的查询将从收集器中删除。 自Zabbix 3.0.0起支持此Key,并可在多个平台上使用 (请查看 平台支持的监控项). |
这个不就是解决方案么,真是一个简简单单的问题,只要百度没有解决方案就能活生生把人累死。
是的,就是那么简单,添加一个key就完事,想监控哪个监控哪个,我监控了七个,顺便用top命令对比了一波,是的没错,就是这个效果。
打完收工,回家过节。