Zabbix自动发现监控redis

1: 在zabbix_agentd端编写自动发现的脚本,主要是自动发现redis的监控端口,脚本如下:

vim /usr/local/zabbix/zabbix_discover_redis.sh
#!/bin/sh
#zhuangweihong 20160419 zabbix discover redis

res=`sudo ss -tulnp|grep redis|awk '{print $(NF-2)}'|awk -F':' '{print $(NF)}'|sort -u`
if [[ -z "$res" ]];then
    echo "redis has not find"
    exit 2
fi
count=`echo "$res"|wc -l`
if [ $count -eq 0 ];then
    echo "redis has not find"
    exit 2
fi
printf '{\n'
printf '\t"data":[\n'
mycount=1
echo "$res"|while read line;do
    if [ $count -eq $mycount ];then
        printf "\t\t\t{\"{#REDISPORT}\":\"$line\"}\n"
    else
        printf "\t\t\t{\"{#REDISPORT}\":\"$line\"},\n"
        let "mycount++"
    fi
done


printf '\t]\n'
printf '}\n'
exit 0

自动发现脚本需要注意的地方:
    1: visudo zabbix用户需要ss的运行权限,配置如下,visudo:

        zabbix ALL= NOPASSWD: /usr/sbin/ss
        Defaults:zabbix  !requiretty

2: 在zabbix_agentd端配置如下:
UserParameter=zabbix.discovery.redis,/usr/local/zabbix/zabbix_discover_redis.sh
UserParameter=redis.status[*],redis-cli -p $1 info|grep "$2:"|cut -d: -f2


配置需要注意的地方:
    1:zabbix_discover_redis.sh zabbix需要有执行权限
    2:redis server没设置密码的情况,不然一般得再加个验证的。

    3:配置完后重启zabbix_agentd

3: 在zabbix server的网页配置建一个模板,名称如:Template Redis Discovery Service

4: 创建一条发现规则:名称为:Redis Discovery,键值配置:zabbix.discovery.redis。

5: 创建项目原型,名称和对应的键值如下:
{#REDISPORT}:Redis Connected Clients  redis.status[{#REDISPORT},connected_clients]
{#REDISPORT}:Redis mem_fragmentation_ratio  redis.status[{#REDISPORT},mem_fragmentation_ratio]
{#REDISPORT}:Redis Port Check    net.tcp.service[tcp,,{#REDISPORT}]
{#REDISPORT}:Redis used_memory    .redis.status[{#REDISPORT},used_memory]
{#REDISPORT}:Redis used_memory_rss  .redis.status[{#REDISPORT},used_memory_rss]
分别监控redis的客户端连接数、内存碎片、redis端口存活检测。

6: 创建触发器:
    1: 针对端口检查

    2: 针对连接的client数量,依赖于端口检查
    3: 针对碎片化,依赖于端口检查

7: 创建图形原型:
    1: 连接的client数量

    2: redis使用的内存和实际上实用的内存。

一些Zabbix相关教程集合

ZABBIX 的详细介绍:请点这里
ZABBIX 的下载地址:请点这里

相关推荐