zabbix利用lld监控memcached
1. 编写端口发现脚本
#!/bin/bash
#Function: memcache low-level discovery
#Script_name: memport.sh
memcache() {
port=(`sudo /bin/netstat -tlnp|awk -F "[ :]+" '/memcached/ && /0.0.0.0/ {print $5}'`)
max_index=$[${#port[@]}-1]
printf '{\n'
printf '\t"data":['
for key in ${!port[@]}
do
printf '\n\t\t{'
printf "\"{#MEMPORT}\":\"${port[${key}]}\"}"
if [ $key -ne $max_index ];then
printf ","
fi
done
printf '\n\t]\n'
printf '}\n'
}
$1
2. 编写memcache状态发现脚本
#!/bin/bash
port="$1"
item="$2"
value=`(echo "stats";sleep 0.1) | telnet 127.0.0.1 $port 2>/dev/null| grep "STAT $item\b" | awk '{print $3}'`
echo "$value"
3. 编写自定义配置文件
UserParameter=memport[*],/opt/zabbix_agent/script/memport.sh $1
UserParameter=memcache[*],/opt/zabbix_agent/script/memcache.sh $1 $2
4. 修改zabbix配置文件
# grep "^Timeout" zabbix_agentd.conf
Timeout=30
# grep "^Include" zabbix_agentd.conf
Include=/opt/zabbix_agent/etc/zabbix_agentd.conf.d/
# grep "^UnsafeUserParameters" zabbix_agentd.conf
UnsafeUserParameters=1
5. 修改系统配置文件
# grep "^Defaults" /etc/sudoers
Defaults requiretty
Defaults:zabbix !requiretty
# grep "^zabbix" /etc/sudoers
zabbix ALL=(root) NOPASSWD:/bin/netstat
6. 重启zabbix客户端
# service zabbix_agentd restart
Shutting down zabbix_agentd: [ OK ]
Starting zabbix_agentd: [ OK ]
7. 链接相关模板