问题是个小问题,但是折腾了我大半天啊,网上什么乱七八糟的东西,每一个说到重点的,谷歌百度都翻烂了,结果全是没法用的,吐槽一波,接下来进入正题。

老大让测试某款hids,功能测试都搞完了,接下来到了性能测试,对接到了zabbix的环境,运维都给搭建好了,但是他监控的是整个服务器的cpu使用率,没有对单独进程进行监控,然后的然后,他们说没搞过,没资源研究,应该是他们太忙了,肯定是的,所以我自己动手搞吧。

 

啰里八嗦网上找半天,基本都是一个解决方法,让写个脚本,然后再加个啥UserParameter在配置文件里,再到平台配置一个key,可能是我的问题搞来搞去都不对,不得已去翻zabbix的官方文档。

那么有意思的就来了。

zabbix监控linux某进程的cpu使用率_zabbix

proc.cpu.util[<name>,<user>,<type>,<cmdline>,<mode>,<zone>]

 

进程CPU利用率百分比。

浮点型

name - 进程名 (默认为 all processes)

user - 用户名 (默认为 all users)

type - CPU利用率类型:

total (默认), usersystem

cmdline - 可按命令行过滤(支持正则表达式)

mode - 数据收集模式: avg1 (默认), avg5avg15

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,并可在多个平台上使用 (请查看 平台支持的监控项).

这个不就是解决方案么,真是一个简简单单的问题,只要百度没有解决方案就能活生生把人累死。

zabbix监控linux某进程的cpu使用率_zabbix_02

zabbix监控linux某进程的cpu使用率_zabbix监控某进程cpu_03

是的,就是那么简单,添加一个key就完事,想监控哪个监控哪个,我监控了七个,顺便用top命令对比了一波,是的没错,就是这个效果。

zabbix监控linux某进程的cpu使用率_zabbix监控某进程cpu_04

打完收工,回家过节。