Zabbix监控(九):自动监控windows服务

一、监控服务状态的Key:


service_state[service]


State of service. 0 - running, 1 - paused, 2 - start pending, 3 - pause pending,

4 - continue pending, 5 - stop pending, 6 - stopped, 7 - unknown, 255 - no such service

返回0表示运行,返回6表示关闭,返回7表示未知,返回255表示没有。

二、手动监控客户端Agent服务

1、查看客户端服务名称


2、给监控主机添加Items

监控客户端agent服务状态,这里故意多输了个2

3、创建触发器

由于返回0表示运行,因此设置不为0时报警

4、查看监控图像(在Last Data中找)

可以看到因为没有Zabbix Agent2这个服务,返回255,将2去掉后再观察可以看到返回值为0

三、自动监控windows服务状态

1、创建脚本

在客户端新建discoverservice.bat文件,放在c:\zabbix\目录中,内容如下:

@echo off
echo {
echo         "data":[
for /F "skip=1 eol=命 tokens=*" %%i IN (‘net start‘) DO echo                 {"{#SERVICE_NAME}":"%%i"},
echo                 {"{#SERVICE_NAME}":"Zabbix Agent"}
echo         ]
echo }

脚本说明:

net start命令输出所有已启动的服务,但是有第一行"已经启动以下 Windows 服务: "和最后一行"命令成功完成。",需要去掉,因此skip=1 eol=命 tokens=*就好理解了,跳过第一行和命字开头的行;最后再插入一条{"{#SERVICE_NAME}":"Zabbix Agent"}来确保最后没后行没有逗号,满足JSON格式。

2、修改客户端配置

在zabbix_agentd.conf中添加以下内容

UnsafeUserParameters=1
UserParameter=servicestate,c:\zabbix\discoverservice.bat

重新启动zabbix agentd服务

提示:客户端的脚本和配置可在安装时就提前做好,参考我的安装文档:

http://ywzhou.blog.51cto.com/2785388/1579165

3、客户端测试

以管理员身份运行CMD,cd到c:\zabbix目录,输入脚本文件名,回车:

4、服务端测试

[[email protected] ~]# /usr/local/zabbix/bin/zabbix_get -s 10.188.1.46 -k servicestate

注意:图中Visual Studio Team Foundation后的中文会显示乱码,后面会说明。

5、在Windows模板中创建自动监控规则

6、创建Items原型

7、创建触发器原型

8、查看监控主机的自动发现规则

说明:Agent服务重复了一次,不用管,zabbix不添加重复的ITEM。

9、查看服务自动监控结果

10、查看最近返回的值

结论:自动发现端口和服务会添加大量的ITEMS,因此不建议在模板中添加GRAPH,并且最好创建模板时新建端口组和服务组,方便查看时过滤;将一些不重要的服务的触发器禁用,否则会频烦收到邮件报警。

另外中文乱码问题参考:

时间: 2024-12-11 02:05:10

Zabbix监控(九):自动监控windows服务的相关文章

使用Jenkins自动发布Windows服务项目

不同于发布Web项目,自动发布Windows服务项目需要解决以下几个问题: 如何远程停止和开启服务?需要在发布前停止服务,在发布完成后开启服务. 如何上传编译文件到目标服务器? 问题1:如何远程停止和开启服务 在msbuild之前添加一个execute windows batch command,执行cmd命令,cmd命令如下: echo **********stop remote server windows service********** "C:\Program Files\IIS\Mi

安装winform程序时自动安装windows服务

项目中遇到一个需求:安装winform程序时自动安装windows服务,且windows服务运行时反过来检测winform程序是否启动.如果没有则启动. 经过一番查阅已在win10下实现并运行正常.在此记录便于以后查看 实现思路:利用打包插件VS installer 有一个自定义操作,可以指定安装完成后运行的程序集,并在程序集中默认启动一个windows服务安装类 实现步骤:1.在winform程序所在解决方案中,添加一个vs installer打包项目, vs installer的使用不再累述

《C#高级编程》读书笔记(十九):Windows服务

1,Windows 服务 Windows 服务是可以在系统启动时自动打开的程序.如果需要在没有用户交互操作情况下运行程序,或者在权限比交互式用户更大的用户下运行程序,就可以创建 Windows 服务. 2,Windows 服务的体系架构 操作 Windows 服务需要3种程序: • 服务程序 • 服务控制程序 • 服务配置程序 服务程序本身用于提供需要的实际功能. 服务控制程序可以把控制请求发送给服务,如开始.停止.暂停和继续. 使用服务配置程序可以安装服务,也可以在以后改变服务的配置. 3,服

windows服务 - C# U盘升级

1.左侧工具栏里有Timer控件,但是如果调用的是系统时间,就需要添加System.timer.timer空间下的控件.   2.服务编写之后,还不能由SCM(服务控制管理器)进行管理,需要给该服务添加装载器.在Service1.cs的设计视图,点击右键,选择"添加装载器",系统默认就会添加ProjectInstaller.cs这个类 添加该类后,在该类的设计视图上可看到serviceInstaller1和serviceProcessInstaller1,分别设置其属性.     设置

c# windows服务如何获取自己的安装路径

由于windows服务安装时,系统会自动将windows服务的程序文件复制到系统目录下,通常是System32目录下,windows服务的运行目录就是系统目录,有时候,windows服务在运行时需要知道自己的安装目录,比如,windows服务运行时所需要的一些资源文件,通常可能是一些声音或图像文件,这些资源文件是位于安装目录下的,只有windows服务知道了安装目录,才能对这些资源文件进行访问,那么windows服务如何知道自己的安装目录的信息呢,一种比较简单的做法是通过访问注册表. windo

Zabbix监控(八):自动监控windows端口

说明:Zabbix本身自带两个自动发现模板,分别是磁盘发现Mounted filesystem discovery和网卡发现Network interface discovery:本人参考这两个模板制做了自动端口发现模板和自动服务发现模板. 1.关于自定义KEY (1)参考官方文档: https://www.zabbix.com/documentation/2.4/manual/config/items/userparameters (2)Key自定义的语法格式 UserParameter=<k

[转]监控windows服务,当服务停止后自动重启服务

近期花时间研究了一下windows和linux下某服务停了后自动重启的功能,在网上收集了些资料,并经过测试,在此整理一下.这里介绍的是windows服务的监控,是通过批处理来实现的.本例是监控windows的Computer Browser为例,每60秒检测一次(可根据实际需要调整间隔),当发现服务停止后自动重启.AutostartService.bat批处理文件内容如下 @echo off rem 定义循环间隔时间和监测的服务: set secs=60 set srvname="Compute

使用Zabbix监控windows服务

要监控的Windows服务如下: Zabbix中的主机配置(原主机己添加到了Zabbix中):先在这台host下添加一个 Items: 确认添加完成后,如果有多个服务需要添加,可以将当前Items进行Clone. 添加完成后,再将添加的服务状态的阈值监控起来,如果出现异常能及时报警提醒: 点击:Create trigger:配置Trigger的内容:内容中Expreesion可以通过Add进行添加,这里启用监控这个服务的状态(Running(0).Stopped(6) 服务状态码可以到zabbi

实战网络监控Zabbix(1)—— 远程监控主机服务

1. Zabbix 简介 Zabbix 是一个高度集成的网络监控解决方案,可以提供企业级的开源分布式监控解决方案,由一个国外的团队持续维护更新,软件可以自由下载使用,运作团队靠提供收费的技术支持赢利. 官方网站:http://www.zabbix.com    1.1 zabbix模式 Zabbix 通过 C/S 模式采集数据,通过 B/S 模式在 web 端展示和配置.      被监控端:主机通过安装 agent 方式采集数据,网络设备通过 SNMP 方式采集数据       Server