Zabbix 内置的模板及其包括的监控项已经很丰富,但是内置的监控项可能不一定适合当前环境,或者有些不需要的监控项,或者需要的监控项并不有提供,因此实际生产中仍可能需要通过自定义监控项来满足当前环境的监控需求。
自定义模板和监控项实现过程
- 在Zabbix 被监控主机上编写自定义监控项的取值的脚本,并加执行权限
- 在Zabbix 被监控主机上的配置文件中添加自定义监控项,指定 key 和 对 key 赋值的脚本及参数
- 在Zabbix Server 上使用 zabbix_get 工具测试是否能取到自定义监控项信息
- 在Zabbix Web 创建模板,在模板中添加自定义监控项
- 在Zabbix Web 将模板关联至被监控的主机
- 导出自定义模板可以在其它 Zabbix Server 复用
除了自定义模板,也可以从zabbix网站查找适合自已的模板
https://share.zabbix.com/
![图片[1]-zabbix 自定义模板 Templates 和监控项 Items-李佳程的个人主页](http://www.lijiach.com/wp-content/uploads/2023/01/image-271.png)
1、自定义监控项
系统内置的监控项如下
https://www.zabbix.com/documentation/5.0/zh/manual/config/items/itemtypes/zabbix
_agent
内置的监控项无法满足要求,可以自定义监控项
1.1、自定义监控项配置
监控项键值的格式
https://www.zabbix.com/documentation/5.0/zh/manual/config/items/item/key
![图片[2]-zabbix 自定义模板 Templates 和监控项 Items-李佳程的个人主页](http://www.lijiach.com/wp-content/uploads/2023/01/image-272.png)
客户端可以自定义监控项,在Zabbix Agent 配置文件添加内容,格式如下
root@zabbix-server:~# vim /etc/zabbix/zabbix_agent2.conf
UserParameter=<key>,<shell command>
Include=/etc/zabbix/zabbix_agentd.d/*.conf
# 或者创建独立的自定义文件
root@zabbix-server:~# vim /etc/zabbix/zabbix_agentd.d/*.conf
UserParameter=<key>,<shell command>
- key 必须整个系统唯一。注意大小写是敏感的,Key名允许的字符如下
0-9a-zA-Z_-.
key使用 [*] 用于定义该key接受括号内的参数。参数需在配置监控项时给出;参数禁止使用下列字符:\ ’ ” ` * ? [ ] { } ~ $ ! & ; ( ) <>
- Command:命令用于生成key对应的值。可以在命令中使用位置引用$1 … $9来引用监控项Key中的相应参数。Zabbix解析监控项Key的[]中包含的参数,并相应地替换$1,…,$9。$0会替换为完整的原始命令(在对$0,…,$9执行替换之前的命令)运行。不管位置参数($0,…,$9)是用双引号(“ )还是单引号( ’ )括起来,都会解析位置引用。
测试监控项
在Zabbix Agent 上执行测试
zabbix_agent -t "在客户端定义的key名"
在Zabbix Server上可以使用zabbix_get工具获取自定义监控项
zabbix_get -s 客户端IP -p 10050 -k "在客户端定义的key名"
1.2、宏Macros
Zabbix 支持用户自定义宏,即支持变量定义
自定义宏格式为:{$macrosz_name}
https://www.zabbix.com/documentation/5.0/zh/manual/appendix/macros
1.3、自定义监控项配置案例
范例:取根文件系统的空间利用率
[root@zabbix-agent ~]# vim /apps/zabbix_agent/conf/zabbix_agentd.conf.d/test.conf
UserParameter=root_filesystem_use,df|awk -F' +|%' '$7 == "/" {print $5 }'
[root@zabbix-agent ~]# zabbix_agentd -t root_filesystem_use
root@zabbix-server:~# zabbix_get -s 192.168.1.122 -p 10050 -k "root_filesystem_use"
范例:自定义监控项实现连接数
[root@zabbix-agent ~]# cat /apps/zabbix_agent/conf/zabbix_agentd.conf.d/test.conf
UserParameter=test[*],echo $1
[root@zabbix-agent ~]# systemctl restart zabbix-agent.service
root@zabbix-server:~# zabbix_get -s 192.168.1.122 -p 10050 -k "test[This is a test]"
This is a test
2、自定义模板
所谓模板,就是一些相关的监控项的集合,还可以在模板中包括图形,触发器等
可以使用模板的方式,来解决一些问题
- 为每个主机单独添加相的一组监控项比较麻烦,例如:100台主机增加一个tcp80的监控项
- 修改监控项比较麻烦,例如:100台服务器的监控项将80改成8080
- 删除每个主机的同一组监控项,例如:100台服务器的监控项删除
- 删除主机会连同主机的监控项一起被删除;不可复用监控项
自定义模板使用流程
- 创建模板,模板必须属于某个主机组(一般属于主机组Templates)
- 在模板中创建监控项、图形、触发器
- 创建需要监控的主机,然后关联对应的模板
- 更改模板的监控项目,所以使用模板的都会自动更改
- 导出模板,后期可以至其他系统继续使用
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END