zabbix自动发现redis端口并监控redis性能

本文涉及的产品
云数据库 Redis 版,社区版 2GB
推荐场景:
搭建游戏排行榜
简介:

    不得不说,我在监控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

wKioL1gZpyuyttEPAAAR6gws7xI000.png

其他问题:

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

wKiom1gZp8yQNL-bAABx2u1pCZE867.png


2、创建自动发现规则

给已创建好的模板Template_Redis_Monitor添加自动发现规则。


wKioL1gZqJqyuPipAABhpmB3N3M828.png


创建自动发现监控项


wKiom1gZqCajQJq6AACbFfHvhew318.png


3.配置正则


wKioL1gZqMDSRNxtAABDwoyI5YY995.png

wKioL1gZqNWC5qCHAABNkuFkQ1k613.png


 4、添加监控项原型


wKiom1gZqQLhGHbWAACRPfUQeM4791.png


 5.再来看看主机关联模板后的监控项:


wKiom1gZqR7hraXFAACWt4xrgmg479.png


 6.查看监控数据图


wKioL1gZqTXiWopXAAC4yH9f4nc357.png





本文转自 shouhou2581314 51CTO博客,原文链接:http://blog.51cto.com/thedream/1868574,如需转载请自行联系原作者
相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
相关文章
|
27天前
|
缓存 监控 NoSQL
Redis 的监控指标
Redis 的监控指标
22 0
|
2月前
|
监控 NoSQL Redis
HeartBeat监控Redis状态
HeartBeat监控Redis状态
|
2月前
|
监控 NoSQL Redis
MetricBeat监控Redis
MetricBeat监控Redis
|
3月前
|
存储 SQL 监控
修改Zabbix源码实现监控数据双写,满足业务需求!
虽然对接Elasticsearch后有诸多好处,但是它不往数据库写历史数据了,同时还不再计算趋势数据了。有这么一个场景...
修改Zabbix源码实现监控数据双写,满足业务需求!
|
4月前
|
数据采集 监控 数据库
OceanBase社区版可以通过Zabbix监控
OceanBase社区版可以通过Zabbix监控
77 4
|
4月前
|
监控 网络协议 Unix
Linux命令-nc(端口监控、文件传输、反弹shell等)
Linux命令-nc(端口监控、文件传输、反弹shell等)
105 0
|
25天前
|
NoSQL 数据处理 调度
【Redis深度专题】「踩坑技术提升」探索Redis 6.0为何必须启用多线程以提升性能与效率
【Redis深度专题】「踩坑技术提升」探索Redis 6.0为何必须启用多线程以提升性能与效率
58 0
|
1月前
|
存储 缓存 Dragonfly
微软开抢年收入上亿美元的 Redis 饭碗?开源性能遥遥领先的 Garnet:无需修改,Redis 客户端可直接接入
微软开源了高性能缓存系统Garnet,旨在挑战 Redis 和 Dragonfly。Garnet 基于 .NET8,提供高吞吐量、低延迟和跨平台支持。它支持 RESP 协议,允许大部分 Redis 客户端无缝迁移。Garnet 的特性包括多连接批量处理以提升扩展性和吞吐量,以及更好的延迟稳定性。适合于需要高性能缓存层来降低成本和提高应用性能的场景。Garnet 的集群模式允许动态键迁移和分片管理,且支持 TLS 和自定义扩展。其网络层设计减少了线程切换开销,存储层则具备丰富的 API 和事务支持。在基准测试中,Garnet 在吞吐量和延迟上优于 Redis 和 KeyDB,展现出优秀的扩展性。
283 0
微软开抢年收入上亿美元的 Redis 饭碗?开源性能遥遥领先的 Garnet:无需修改,Redis 客户端可直接接入
|
1月前
|
存储 NoSQL 测试技术
JMeter Redis 数据集 vs CSV 数据集性能对比
【2月更文挑战第27天】JMeter Redis 数据集 vs CSV 数据集性能对比
89 1
JMeter Redis 数据集 vs CSV 数据集性能对比
|
1月前
|
数据采集 监控 数据库
请问OceanBase社区版能否通过zabbix监控,然后将报错信息展现到grafana?
【2月更文挑战第25天】请问OceanBase社区版能否通过zabbix监控,然后将报错信息展现到grafana?
25 2

推荐镜像

更多