在agent端


创建配置文件并编写脚本:脚本可以带参数,也可以不带参数

vim /etc/zabbix/zabbix_agentd.d/mem.conf

UserParameter=mem.available,sh /tmp/memavailable.sh  # mem.available 这部分是key,后面的是脚本位置
UserParameter=mem.check[*],sh /tmp/mem.sh $1 # 括号[]里面是用来传参用的

memavailable.sh

#!/bin/bash
free -m | grep Mem: | awk '{print $NF}'

mem.sh

#!/bin/bash
case "$1" in
"available")
	free -m | grep Mem: | awk '{print $NF}';;
"total")
	free -m | grep Mem: | awk '{print $2}';;
"used")
	free -m | grep Mem: | awk '{print $3}';;
*) echo "not supported";;
esac

测试脚本能用后重启zabbix_agent:

systemctl restart zabbix-agent.service

在zabbix server端使用zabbix_get测试:

]# zabbix_get -s 192.168.1.107 -k mem.check[available]
1562
]# zabbix_get -s 192.168.1.107 -k mem.check[used]
105
]# zabbix_get -s 192.168.1.107 -k mem.check[total]
1839
]# zabbix_get -s 192.168.1.107 -k mem.available
1562


在zabbix的web端:


创建模板 --> 创建item:

image.png

image.png

这样就可以自定义key添加监控了,可以使用同样的方法监控其他程序,如mysql等。