zabbix agent 默认注册的是主机名,很多情况下都没有改主机名,不好分清楚,之前一直想实现此功能,研究过改代码,建数据库触发器,最终都放弃,现找到较完美的解决办法

先放最终实现效果:

之前发过一篇改代码实现hostname+ip的,可以弃用了《zabbix4.0修改仪表盘中的问题列表(加入IP、群组显示)》,但这篇文章上还有其他内容,可以参考一下

实现方式:shell

gethostname.sh 记得加执行权限
#!/bin/bash# -------------------------------------------------------------------------------# FileName:    gethostname.sh# Revision:    1.0# Date:        2019-5-9# Author:      soft_xiang# Email:       soft_xiang@qq.com# Description: 获取ip-hostname形式主机名# Notes:       ~shell 菜鸟,获取ip的可能有bug,求优化修正# -------------------------------------------------------------------------------# Copyright:   2019 (c) soft_xiang# License:     GPLecho `ip a | grep -w "inet"|grep -v "127.0.0.1"|awk "NR==1"|awk -F" " '{print $2}'|awk -F"/" '{print $1}'`-`hostname`
vim /etc/zabbix/zabbix_agentd.conf

HostnameItem=system.run["sh /etc/zabbix/scripts/gethostname.sh",wait]

可能需要开启远程命令脚本,没测试,我一般都开启了