zabbix4.0学习七:自动发现和发现原型(监控原型,触发器原型)
文章目录
前言
zabbix的自动发现包括发现主机和发现监控项/触发器/图形功能。
- 主机自动发现和主机自动注册是放在一起的概念,主要是发现主机,可参考Zabbix自动发现和自动注册学习发现主机
- low_level-discovery自动发现主要是发现监控项/触发器/图形。与主机或模板绑定。
下面主要讲low_level-discovery低级别自动发现。
底层发现执行需要在特定的主机之上才可以执行,工作原理: - 通过采集主机的特定指标,获得一个JSON对象
- 解析JSON对象,匹配原型,获得需要执行的添加项的具体内容
- 检查该模型是否已经添加,有则结束
- 添加具体的内容,如果有多项,则添加多项(监控项,触发器,图,其他主机)
low_level-discovery
以自动发现windows服务为便讲监控项原型/触发器原型/图形原型。
自定义监控项
在zabbix-agent目录下创建discoverservice.bat,脚本实现自动获取windows服务
@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 }
关键语句是:for /F “skip=1 eol=命 tokens=*” %%i IN (‘net start’) DO echo {"{#SERVICE_NAME}":"%%i"}
意思是,去掉第一行和以命开头的行,返回json格式数据,%%i是每行的变量值。
想进一步学习可搜索for /F命令
zabbix-agent配置自定义监控项
打开D:\zabbix_agents\conf\zabbix_agentd.win.conf文件(每个人的安装目录可能不一样)添加如下
EnableRemoteCommands=1
UnsafeUserParameters=1
UserParameter=servicestate,D:\zabbix_agents\discoverservice.bat
添加low_level-discovery自动发现规则
有2种,1.与主机绑定,2.与模板绑定。下面介绍与主机绑定的,与模板绑定的也一样配置,只是入口位置不一样。在模板里创建的话,只要赋模板就会与主机绑定。
选中主机,点击后面的自动发现
创建发现规则
名称:Service State Discovery
类型:zabbix 客户端
键值:填写上面在agent端定义的自定义监控项,servicestate
其它默认即可,完整配置如下
创建自动发现的监控项原型
在自动发现规则列表里,点击监控项原型去创建监控项,你要知道监控项原型是与自动发现规则在一起的,所以在哪找创建监控项原型入口知道了吗?
名称:Service {#SERVICE_NAME},{#SERVICE_NAME}是返回的服务名
类型:zabbix客户端
键值:service.info[{#SERVICE_NAME},state],监控服务运行状态
其它默认,完整配置效果如下:
查看监控数据
监测中->最新数据
创建触发器原型
如果有需要创建服务没运行报警的需求,可以创建触发器原型,位置也在主机的自动发现里。
和普通创建触发器过程一样,唯一不同的时监控项选择上面创建的监控项原型<kbd>
完整效果图如下