redis多实例监控

在ageng端创建脚本

 

mdkir -p /etc/zabbix/scripts

 

vim redis_low_discovery.sh

 

#/bin/bash

#Script_name redis_low_discovery.sh

redis() {

            port=($(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

 

修改属主

chown -R zabbix.zabbix /etc/zabbix/scripts/

 

给权限

chmod 755 scripts/redis_low_discovery.sh

添加UserParameter

 

vim /etc/zabbix/zabbix_agentd.conf

 

 

UserParameter=zabbix_low_discovery[*],/bin/bash /etc/zabbix/scripts/redis_low_discovery.sh $1

UserParameter=redis_stats[*],(echo info; sleep 1) | telnet 127.0.0.1 $1 2>&1 |grep $2|cut -d : -f2

 

如果不让用telnet协议,还可以

 

UserParameter=redis_stats[*],/usr/local/bin/redis-cli -h 127.0.0.1 -p $1 info|grep $2|cut -d : -f2

需要开启telnet服务,没有的需要安装一个telnet

 

yum install telnet -y

添加完重启agent端

 

service zabbix-agent restart

关闭requiretty

sed -i 's/^Defaults.*.requiretty/#Defaults    requiretty/' /etc/sudoers

 

或者 vim /etc/sudoers  #56行

 

 

server端

 

使用zabbix_get获取redis键值

 

cd /usr/bin

 

./zabbix_get -s 192.168.0.11 -k "zabbix_low_discovery[redis]"

 

 

如果运行报错

 

 

那就chmod +s /bin/netstat

 

chmod +s 是什么意思

为了方便普通用户执行一些特权命令,SUID/SGID程序允许普通用户以root身份暂时执行该程序,并在执行结束后再恢复身份。

 

 

 

 

 

zabbix-server web界面导入模板以及主机连接模板,还需要设置正则等

 

 

 

 

 

 

 

 

 

在“管理”—> “一般”—>“正则表达式”里,选择“新的正则表达式”

设置如下:

 

 

设置正则

Redis regex

 

Result TRUE  = ^(6380|17761|17762|18005|23581)$

 

 

 

 

 

 

最后把模板添加到主机里面去

 

 

有的可能自动发现没有开启

 

 

 

 

 

 

检测 是否取到redis数据的值:

配置---模板---

 

 

 

 

在终端里面

 

cd  /usr/bin

 

./zabbix_get -s 192.168.0.11 -k "redis_stats[6381,uptime_in_seconds]"

 

 

./zabbix_get -s 192.168.0.11 -k "redis_stats[6380,uptime_in_seconds]"

 

 

 

然后 看数据图

 

转载于:https://www.cnblogs.com/chenshengqun/p/8287038.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值