不得不说,我在监控redis 这里卡了有一天半的时间,zabbix_get也可以获取到数据,就是没有自动生成监控项和监控图像,后来干脆把别人的模板抛弃,自己重新建立模板和监控项,就都出来了。真是无语的很。大概因为是zabbix的版本号不一样导致的吧
这里参考的文章:
http://dl528888.blog.51cto.com/2382721/1366309
http://www.cnblogs.com/mushroom/p/4738170.html
一:客户端配置
1.自动发现redis端口的脚本,脚本要给755权限,属主是zabbix
chmod 755 /etc/zabbix/alertscripts/zabbix_discovery_redis.sh
chown zabbix.zabbix /etc/zabbix/alertscripts/zabbix_discovery_redis.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
#!/bin/bash
#Fucation:mysql low-level discovery
#Script_name zabbix_discovery_redis.sh
redis() {
port=($(
sudo
netstat
-tpln |
awk
-F
"[ :]+"
'/redis/ && /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
socket=`
ps
aux|
grep
${port[${key}]}|
grep
-
v
grep
|
awk
-F
'='
'{print $10}'
|
cut
-d
' '
-f 1`
printf
'\t {\n'
printf
"\t\t\t\"{#REDISPORT}\":\"${port[${key}]}\"},\n"
else
[[
"${key}"
-
eq
"((${#port[@]}-1))"
]]
socket=`
ps
aux|
grep
${port[${key}]}|
grep
-
v
grep
|
awk
-F
'='
'{print $10}'
|
cut
-d
' '
-f 1`
printf
'\t {\n'
printf
"\t\t\t\"{#REDISPORT}\":\"${port[${key}]}\"}\n"
fi
done
printf
'\t ]\n'
printf
'}\n'
}
$1
|
因为要在模板里面套用redis端口。所以脚本检测出来的端口格式必须是json
其他问题:
zabbix_agentd是zabbix用户启动的,默认不能执行netstat -p等命令,因此可以配置sudo解决,也可以使用chmod +s /bin/netstat进行解决。
这里我使用了sudo
1
2
3
4
|
vim
/etc/sudoers
#Defaults requiretty
Defaults:zabbix !requiretty
zabbix ALL=(root) NOPASSWD:
/bin/netstat
|
2.添加zabbix_agent配置文件
1
2
3
|
[root@
test
zabbix_agentd.conf.d]
# cat /etc/zabbix/zabbix_agentd.conf.d/check_redis.conf
UserParameter=redis.discovery[*],
/etc/zabbix/alertscripts/zabbix_discovery_redis
.sh $1
UserParameter=redis_stats[*],(
echo
info;
sleep
1) | telnet 127.0.0.1 $1 2>&1 |
grep
$2|
cut
-d : -f2
|
测试zabbix_get是否能获取到redis数据
1
2
|
[root@
test
alertscripts]
# /usr/local/zabbix/bin/zabbix_get -s 127.0.0.1 -k redis_stats[6379,connected_clients]
1
|
3.重启zabbix_agent
service zabbix_agentd restart
二.服务器端配置
1、创建模板
模板名称: Template_Redis_Monitor,创建应用check_redis
2、创建自动发现规则
给已创建好的模板Template_Redis_Monitor添加自动发现规则。
创建自动发现监控项
3.配置正则
4、添加监控项原型
5.再来看看主机关联模板后的监控项:
6.查看监控数据图