[技术干货] Zabbix获取并监控linux系统的进程名

[复制链接]
乐维 发表于 2021-1-5 15:00:59 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题
       最近需要监控运行在业务系统上的进程,要求是看到具体的进程名。
通常监控进程一般可以使用内置的键值,也就是 proc.num[进程名,root,,]这个键值,但只能返回的是进程的数量,虽然效果上也能实现,但和预期的结果有些区别,而且也不直观,尤其在同一个进程数多的时候。下面说下获取具体进程名的方法!
1.png
1、 agent端开启远程命令
需要注意5.0版本及最新的agent和旧版本的配置是有写区别的。
5.0版本的zabbix_agentd.conf以下的参数是: EnabledRemoteCommand=1
5.0版本zabbix_agentd.conf的参数是: AllowKey=system.run
  •    保存后,重启agent。
    2、获取进程名
    总的来说,获取进程名还是用命令,这里介绍一下我的方法:
    一、先在agent端上面用ps -ef| grep 看下进程,然后调整一下,只输出进程名;
    调整前
    2.png
    调整后
    3.png
    但还会有一个 grep XXX 的存在,也需要去掉,方法就是反向过滤即可,参考命令:
    ps -ef|grep 进程名 | grep -v grep | awk ‘{print $10}’
    二、创建进程模板,先创建宏,把输出进程名的命令复制过来,然后创建监控项,使用 system.run[宏]键值,最后关联主机
    4.png
    5.png
    效果
    6.png
    三、触发器
    5分钟没有找到字符触发。
    7.png
    因为进程比较多,这里是采用创建模板的方式;另外也可以在agent的配置文件自定义键值,例如 UserParameter=agent, ps-ef|grep zabbix_agentd | grep -v grep | awk ‘{print $NF}’,然后就创建监控项,键值写 agent就行。还有一种写脚本方式,也是执行ps -ef|grep 命令。

    技术交流欢迎加入Q群:177428068





    上一篇:处理zabbix与mysql连接丢失问题
    下一篇:Zabbix“专家坐诊”第92期问答汇总
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    关注0

    粉丝0

    帖子327

    发布主题
    最新发布

    乐维社区

    微信公众号

    版权所有 © 2016-2021 九一乐维丨粤ICP备17007026号