器量大者,福泽必厚
全部博文(587)
分类: LINUX
2015-03-08 10:41:48
Zabbix动态监控memcached
##很多的小公司,经常1台机器上开几个memcached实例!
我先在自己的机器上开4个memcached端口,分别运行在11211、21211、31211、41211端口!
1:memcache_low_discovery.sh内容如下:
[root@zabbixclient3 bin]# cat memcache_low_discovery.sh
#!/bin/bash
#Fucation:zabbix low-level discovery
memcache() {
port=($(sudo netstat -tpln | awk -F "[ :]+" '/[m]emcached/ && /0.0.0.0/ {print $5}'))
printf '{\n'
printf '\t"data":[\n'
for key in ${!port[@]}
do
if [[ "${#port[@]}" -gt 1 && "${key}" -ne "$((${#port[@]}-1))" ]];then
printf '\t {\n'
printf "\t\t\t\"{#MEMPORT}\":\"${port[${key}]}\"},\n"
else [[ "${key}" -eq "((${#port[@]}-1))" ]]
printf '\t {\n'
printf "\t\t\t\"{#MEMPORT}\":\"${port[${key}]}\"}\n"
fi
done
printf '\t ]\n'
printf '}\n'
}
memcache $1
这里还需要如下:
把此文件存放到/usr/local/zabbix/bin里,然后给与755权限,并修改用户与组为zabbix,同时允许zabbix用户无密码运行netstat
echo "zabbix ALL=(root) NOPASSWD:/bin/netstat">>/etc/sudoers
#Disable requiretty
sed -i 's/^Defaults.*.requiretty/#Defaults requiretty/'/etc/sudoers
2:memcached.conf内容如下:
[root@zabbixclient3 zabbix_agentd.conf.d]# pwd
/usr/local/zabbix/etc/zabbix_agentd.conf.d
[root@zabbixclient3 zabbix_agentd.conf.d]# ll
total 8
-rw-r--r-- 1 root root 224 Feb 5 19:07 memcached.conf
-rw-r--r-- 1 root root 221 Feb 1 00:32 redis.conf
[root@zabbixclient3 zabbix_agentd.conf.d]# cat memcached.conf
UserParameter=memcached_stats[*],(echo stats; sleep 0.1) | telnet 127.0.0.1 $1 2>&1 | awk '/STAT $2 / {print $NF}'
UserParameter=zabbix_low_discovery_memcached[*],/bin/bash /usr/local/zabbix/bin/memcache_low_discovery.sh $1
3:在zabbix_agentd.conf 中Include 那个目录即可,即会Include该目录下的所有conf文件
4:导入zabbix memcached模板,并作如下的修改:
我把时间间隔由3600修改为60
并创建一个正规表达式,附件如下:
图形显示如下: