场景介绍:
小Z同学最近遇到个项目需求,需求是用zabbix监控运行在windows的进程。然鹅,当小Z同学在网上搜了一大堆,发现基本上都是使用官方的proc.num(***.exe)键值拿到进程数量,很显然,这并不符合客户实际的需求,如果是只运行1个的还好,若是运行了3到6个,例如java,就特别的dan疼,在任务管理器发现全是java.exe的。也许,你可以找到有些文章的说可以使用任务管理器可以看到命令行(图一),tasklist /V查看进程详情(图二)等等,然鹅,对于java来说还是看不到的。
当然了拿到java.exe和pid也可以,但作为运维人员最关注的是要知道是谁停了,而不是PID,况且人家也不知道PID对应的进程是啥。所以,本着上进负责的精神,在查阅了几天的资料后,终于实现了!!!在这里记录下来,为热爱zabbix的小伙伴做个参考,也可以自行拓展结合脚本等其他技术实现。教程不复杂,多做几次就上手了。

方法:
1. 对于非java的进程,确实使用tasklist可以监控到具体的进程名,例如监控邮箱服务器程序,方法是打开cmd,输入 tasklist | findstr “mailServer.exe” 这里只输出具体的进程名 或者 tasklist | find “mailServer.exe” 这里会输出进程,使用的资源,PID等等。然后再zabbix_agentd.conf后面加上 UserParameter=mailServer, tasklist | findstr “mailServer.exe” 保存重启agent;在zabbix做监控时,信息类型选择字符或者文本即可。
2. 重点来了,对于java进程亦或者是在任务管理器只看到运行了一堆相同的进程名,但看不到具体的实例名可以利用windows自带的 WMIC命令来获取!打开cmd,输入 wmic process 回车,会输出目前在运行的所有进程,比tasklist还详细,输出的结果包含命令行、执行路径、PID、使用的资源、所有者等等。有兴趣的小伙伴可以到官网多多了解,拓展一下其他的WMIC参数。
当然了,对于封装好的jar包程序,常规的执行命令也就是java –jar ****.jar,是可以用wmic拿到的,命令是 wmic process where name=”java.exe” 就可以输出当前正在运行的所有java进程,但结果不太美观,所以可以指定一下要找的jar包名,例如: wimc process where name=”java.exe” | find “jar包名” ,这样出来的结果就是客户想要的了。

以下是agent配置示例:
UserParameter=java_jar, WMIC.exe process where name=”java.exe” | find “jar包名”
这里保险一点,写上完整的WMIC.exe就不会报命令找不到的错。监控项照上一步。
3. 触发器
在给非数值的监控配置触发器时,要注意类型要选择红框的 str()

因为返回的结果是字符串,所以在V这里填上jar包进程名即可。可以只写包名+版本,不用整行都写。

问题和恢复的表达式:监控项是每60s检测一次,触发器这里也是每60s检测一次,发现和取值不符则发送告警信息。如果发现乱报警,那就多注意调整下。

完成后,可以停止程序检测下是否符合需求。
教程结束!!!本文是针对不带参数启动的java进程的监控,带参数启动的后面有空会出一篇,当然了,其实也比较简单。技术交流欢迎加入Q群:177428068

进程 zabbix_Zabbix监控在windows的进程(非进程数)相关推荐

  1. win python 怎么打开建立一个孤立的进程_python实现在windows服务中新建进程的方法...

    本文实例讲述了python实现在windows服务中新建进程的方法.分享给大家供大家参考.具体实现方法如下: 需要安装的软件:python和pywin32,我这里装的分别是python-2.6.amd ...

  2. 15分钟读懂进程线程、同步异步、阻塞非阻塞、并发并行,太实用了!

    作者:Martin cnblogs.com/mhq-martin/p/9035640.html 基本概念 1 进程和线程 进程(Process): 是Windows系统中的一个基本概念,它包含着一个运 ...

  3. 15分钟读懂进程线程、同步异步、阻塞非阻塞、并发并行

    基本概念 1 进程和线程 进程(Process): 是Windows系统中的一个基本概念,它包含着一个运行程序所需要的资源.一个正在运行的应用程序在操作系统中被视为一个进程,进程可以包括一个或多个线程 ...

  4. 进程线程、同步异步、阻塞非阻塞、并发并行

    一.进程和线程 1️⃣[进程Process]是Windows系统中的一个基本概念,它包含着一个运行程序所需要的资源.一个正在运行的应用程序在操作系统中被视为一个进程,进程可以包括一个或多个线程. 进程 ...

  5. 进程线程、同步异步、阻塞非阻塞、并发并行、多线程

    一: 进程和线程 1: 进程(Process) 是Windows系统中的一个基本概念,它包含着一个运行程序所需要的资源.一个正在运行的应用程序在操作系统中被视为一个进程,进程可以包括一个或多个线程.线 ...

  6. windows下 解决PHP-CGI 进程崩溃502

    PHP是世界上最好的语言,但需要PHP解析器:Apache+php,需要通过mod_php.so和php相连:nginx+php 需要转发给 cgi程序 关于FastCGI: 全称 FastCGI P ...

  7. windows .bat批处理实现进程监控确保程序运行

    windows .bat批处理实现进程监控确保程序运行 转载于:https://www.cnblogs.com/liuys635/p/11258603.html

  8. 深入探究Windows平台客户端安全问题-进程地址空间入侵和白加黑高阶利用

    标 题: 深入探究Windows平台客户端安全问题-进程地址空间入侵和白加黑高阶利用 时 间: 2014-09-08,00:03:51 前言 为了避免被读者骂"标题党",笔者在文章 ...

  9. Windows 根据进程名杀死进程 kill

    文件描述:用于强制结束指定进程的工具软件 编译环境:win7 x64 VC2005 sp1 编译 下载地址:http://files.cnblogs.com/vk83/kill.rar 程序说明: 由 ...

最新文章

  1. AAAI 2020 | 时间可以是二维的吗?基于二维时间图的视频内容片段检测
  2. Linux系统安全工具tcpdump用法
  3. 3.定义一个有10个元素的数组,用其代表10个学生的考试成绩,从键盘输入10个成绩,统计平均成绩。
  4. LINQ之路 2:C# 3.0的语言功能(上)
  5. 使用miniSIPServer搭建pjsip服务器
  6. MyBatis-Plus EntityWrapper的使用 wrapper le ge
  7. MySQL作为Kubernetes服务,可从WildFly Pod访问
  8. dexpler的使用方法
  9. 随心所欲学Java,起步-心理安慰
  10. 【SQL】字符型函数
  11. 了解为什么要使用微服务!
  12. Atitit 提升开发效率法 fx t35 Atitit 提升开发效率法---开发方法架构简化法.docx 目录 1. 主要几个层次上简化开发 1 1.1. ,开发体系方法使用简单方法 1 1.2.
  13. 如何在Cell里画出虚线?
  14. UI设计中的原型图用什么工具?怎么做?给谁看?
  15. 进销存mysql数据库_进销存管理系统数据库设计
  16. Endnote x7.5 破解 注册 激活
  17. 《东周列国志》第五十五回 华元登床劫子反 老人结草亢杜回
  18. 多线程基础讲解五: synchronized使用
  19. 机器学习实战(基于scikit-learn和TensorFlow)学习心得(5)--stratified sampling
  20. 主观意义上第一个基于DEFI的DAM平台DIPPER,年关崛起的黑马究竟是否能在新年创造区块链新纪元?而DIPPER的意义和价值又是什么?

热门文章

  1. java not a jpeg file_javax.imageio.IIOException: Not a JPEG file: starts with 0x47 0x49
  2. 冻结和只读取当前对象的属性,不读取对象原型的属性
  3. Spring Boot Cache之缓存
  4. telephone 为空 唯一索引_记一次线上唯一索引失效没有起效的场景
  5. python继承和多态_Python 简明教程 --- 21,Python 继承与多态
  6. android存到手机内存,android保存文件到手机内存
  7. 九宫怎么排列和使用_什么是九宫飞星,九宫飞星在生活中的应用
  8. matlab 绘制符号函数,DAY8 MATLAB学习笔记—simulink入门、MATLAB符号函数的图形绘制...
  9. java什么时候需要同步_JAVA中线程在什么时候需要同步和互斥
  10. python 反射机制