zabbix监控windows进程

来源:互联网 发布:vscode 支持xp吗 编辑:程序博客网 时间:2024/05/21 08:59

一、目的:实现zabbix 3.0监控windows Server系统中特定进程(包括运行时间)

从网上查了很多资料,有人说用监控模版中的proc.mem或者proc.num或者proc_info,我们先看看这几个监控项:

1、proc.mem[<name>,<user>,<mode>,<cmdline>]

解释:用户进程消耗的内存 

单位:字节

说明:name - 进程名 (默认值 “all processes”) 

    user - 用户名 (默认值“all users”) 

    mode - 可选值: avg, max, min, sum (默认) 

    cmdline - 命令行过滤(正则表达时)

示例keys:

proc.mem[,root] - root的进程消耗了多少内存 

proc.mem[zabbix_server,zabbix] - zabbix用户运行的zabbix_server使用了多少内存 

proc.mem[,oracle,max,oracleZABBIX] - memory used by the most memory-hungry process running under oracle having oracleZABBIX in its command line

此监控项不支持windows!

2、proc.num[<name>,<user>,<state>,<cmdline>]    -------

--网上一些人用这个监控项实现监控,我试过没成功,大家可以尝试下。

proc.num[]只是监控系统所有进程个数,不能监控到具体的某个进程运行状态。

解释:某用户某些状态的进程的数量

单位:进程数量

说明:name - 进程名称 (默认“all processes”) 

    user - 用户名 (默认 “all users”) 

    state - 可用值: all (默认), run,sleep, zomb 

    cmdline - 命令行过滤(正则表达时)

示例keys:

proc.num[,mysql] - MySQL用户运行的进程数量 

proc.num[apache2,www-data] - www-data运行了多少个apache2进程

proc.num[,oracle,sleep,oracleZABBIX] - number of processes in sleep state running under oracle having oracleZABBIX in its command line

备注:Windows系统只支持name和user两个参数

这里的进程状态默认是ALL,不是RUN,windows不支持状态参数。

二、利用监控windows性能中计数器的方法实现监控进程状态

比如想监控任务管理器中的cmd进程:

1、先添加计数器:用于查看计数器监控项



2、在zabbix的配置文件zabbix_agentd.conf中最后添加计数器:

PerfCounter=cmd_mem,"\Process(cmd)\Working Set",3

同理添加rman.exe和ftp.exe进程监控项

PerfCounter=rman_mem,"\Process(rman)\Working Set",3
PerfCounter=ftp_mem,"\Process(ftp)\Working Set",3

以上为固定格式。

一般有两个参数 perf_counter 和 PerfCounter 用来设置,当前使用的是PerfCounter 。


cmd_mem:自定义别名,监控项中的键值就是这个名字

"\Process(cmd)\Working Set":性能计数器对象

3:间隔3秒发送数据


当然,还有其他写法,计数器用数字来表示,可查看注册表 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib\009


客户端添加完成这些参数后,重启客户端代理!


现在回到zabbix服务器,进入zabbix 的bin目录:/usr/local/zabbix/bin

执行以下命令(-s 指定客户端地址,-k 指定性能计数器),若返回数值,则表示成功!

 ./zabbix_get -s 192.168.X.X  -k cmd_mem


三、在zabbix的web画面添加监控项




最终效果图:






原创粉丝点击