ZABBIX自动发现Redis端口并监控
转载来源 :ZABBIX自动发现Redis端口并监控 : https://mp.weixin.qq.com/s/UDeRYn6376MBzNyRt48aAw
ZABBIX自动发现Redis端口并监控
由于一台服务器开启许多Redis实例,如果一台一台的监控太耗费时间,也非常容器出错。这种费力不讨好的事情我们是坚决杜绝的,幸好ZABBIX有自动发现功能,今天我们就来用该功能来监控我们的Redis实例。
监控项
Redis的监控信息主要通过info命令来获取,下面列举几个我们的监控项。
uptime_in_days ##redis启动的天数
connected_clients ##redis连接的客户端数
blocked_clients: ##正在等待阻塞命令(BLPOP、BRPOP、BRPOPLPUSH)的客户端的数量
used_memory_peak_human: ##reids所用内存的高峰期
used_memory: ##redis运行起来使用的内存数
expired_keys: ##过期的key数量
evicted_keys: ##删除过期的key数量
keyspace_misses: ##没命中的key数量
keyspace_hits: ##命中的key数量
connected_slaves: ##已连接的从服务器数
rejected_connections: ##因为超过最大连接数被拒接的请求数量
上面只是列举了几个,如果需要更多的监控项可以通过info命令获取。如下:
开发自动发现脚本
注:可以使用shell开发,也可以使用python开发。我这里附这两种语言脚本
Shell脚本
#!/bin/bash
# 自动发现Redis端口脚本
port=(`sudo netstat -tpln | awk -F "[ :]+" '/redis/ && /0.0.0.0/ {print $5}'`)
printf '{\n'
printf '\t"data":[\n'for key in ${!port[@]}doif [[ "${#port[@]}" -gt 1 && "${key}" -ne "$((${#port[@]}-1))" ]];thensocket=`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"fidoneprintf '\t ]\n'printf '}\n'
Python脚本
#!/usr/bin/env python
import os
import json
t=os.popen("""sudo netstat -tlpn |grep redis-server|grep 0.0.0.0|awk '{print $4}'|awk -F: '{print $2}' """)
ports = []
for port in t.readlines():r = os.path.basename(port.strip())ports += [{'{#REDISPORT}':r}]
print json.dumps({'data':ports},sort_keys=True,indent=4,separators=(',',':'))
注:我这里直接监控的是Redis,所以上方两个脚本获取的直接是Redis的端口,你也可以将脚本内容改一下,比如服务名通过参数形式传递,那么该脚本就可以发现你想发现的服务端口了。
在被监控主机上配置
(1)、将上方的脚本其一拷贝到被监控主机上,比如我这里的10.2.42.16主机,主要命令如下 :
#创建脚本存放路径
mkdir /etc/zabbix/scripts
# 在脚本存放路径下存放我们上面开发的脚本任一,我这里取名为discovery_redis.py
# 给脚本加执行权限
chmod +x discovery_redis.py
(2)、创建zabbix的key。在/etc/zabbix/zabbix_agentd.d/目录下创建配置文件,如下:
vim userparameter_disvocery_redis.conf
UserParameter=redis.discovery,/etc/zabbix/scripts/discovery_redis.py
UserParameter=redis.stats[*],/usr/local/redis-3.2.9/src/redis-cli -h 127.0.0.1 -p $1 info | grep -w $2 | cat -d : -f2
参数说明:其中的格式为UserParameter=,:就是在web端添加监控脚本时的key值:就是该key值对应的执行脚本,也就是脚本执行路径
(3)、修改zabbix_agentd.conf配置文件
# 添加配置目录
Include=/etc/zabbix/zabbix_agentd.conf.d/*.conf
# 允许自定义脚本
UnsafeUserParameters=1
(4)、增加sudo权限
之所以要增加sudo权限,是因为zabbix_agentd是zabbix用户启动的,默认不能执行netstat -p等命令,因此可以配置sudo解决,也可以使用chmod +s /bin/netstat进行解决。
# visudo
#Defaults requiretty # 注释掉
Defaults:zabbix !requiretty
zabbix ALL=(root) NOPASSWD:/bin/netstat
(5)、重启zabbix-agent,并在server端用zabbix_get测试
# 重启zabbix-agent
service zabbix-agent restart
# 在服务端用zabbix_get测试
zabbix_get -s 10.2.42.16 -p 10050 -k redis.discovery
zabbix_get -s 10.2.42.16 -p 10050 -k redis.stats[6383,expired_keys]
如果没有zabbix_get命令需要自己安装,由于我这里都是用的yum安装的,如果你也和我一样就用下面命令安装即可yum install zabbix_get -y
到目前为止zabbix-agent端已经配置完毕,下面进行服务端配置。
服务端配置
服务端配置直接在WEB界面操作。
创建模板
创建应用集
配置>模板>选择刚才创建的模板
创建自动发现规则
配置>模板>选择刚才创建的模板
配置过滤器(可选),我这里配置的主要原因是还有其他我不需要监控的集群
配置正则表达式
创建监控项
注意:这里要在模板中的自动发现规则处去添加监控项原型
点击监控项原型,创建监控项原型
上面是我添加的一些监控项原型,我只拿一个举例,其他配置相似。
其中键值处配置如下:
redis_stats[{#REDISPORT},evicted_keys]
说明:
- redis_stats:是我们在zabbix-agent端配置的key;
- {#REDISPORT}:是我们自动发现脚本中定义的key,不要和上面的key混淆了。
- evicted_keys:是我们需要获取的监控项,这个参数是我们主要需要改的参数
创建图形原型
图形原型也需要在模板自动发现规则中配置,如下:
我这里只配置了三个图形,我这里只列举一个,如下:
注意,这里添加监控项的时候要添加原型,也就是我上面箭头指的地方
创建触发器
这里依旧在模板自动发现规则中配置。
我这里仅仅配置了两个,根据需要自行配置,那一个举例,如下:
到此服务端已经配置完成,下面将模板添加到我们的主机。
为主机添加模板
被添加模板的主机需要添加自动发现脚本和配置zabbix-agent端
然后观察最新数据和图形。
参考链接 :
zabbix监控redis : https://www.cnblogs.com/lovelinux199075/p/9016248.html
ZABBIX自动发现Redis端口并监控 : https://mp.weixin.qq.com/s/UDeRYn6376MBzNyRt48aAw
ZABBIX自动发现Redis端口并监控相关推荐
- zabbix自动发现redis端口并监控redis性能
不得不说,我在监控redis 这里卡了有一天半的时间,zabbix_get也可以获取到数据,就是没有自动生成监控项和监控图像,后来干脆把别人的模板抛弃,自己重新建立模板和监控项,就都出来了.真是无语的 ...
- zabbix自动发现,端口 url检测
一,自动发现 1,开启自动发现 配置自动发现 修改自动发现的网段 启用自动发现 2.配置自动发现的动作 配置自动发现的动作 添加动作的IP地址 添加自动发现的操作 启用动作 3,检验 二,自动注册 1 ...
- zabbix自动发现规则实现批量监控主机的TCP监听端口
检查服务器所有监听端口和其对应的服务名称的脚本可以参考https://blog.zzyyxx.top/blog/post/gordy/acf57f04f9e1 现在准备加入zabbix自动发现规则并 ...
- 利用zabbix自动发现监控mongo数据库
但如果公司使用mongo的端口如果不一致的话,那建议使用zabbix的自动发现的功能,自动发现mongo监听的端口,并对它进行相关数据的收集. 先看一下效果图, 教你如何利用zabbix自动发现监控m ...
- zabbix自动发现端口
目的: 通过批量实现自动发现端口,避免傻傻的一个一个添加 解决方案: 使用zabbix的discovery功能来实现监控. 注意:自动发现端口,需要在sysctl.conf中修改下系统自动打开端口的范 ...
- 5 zabbix 添加host_运维监控实战篇,zabbix自动发现和自动注册图文详解
一.介绍 自动发现 Zabbix自动发现就是为了解决批量监控而设计的功能之一,什么是自动发现呢,简单来说就是Zabbix Server端可以基于设定的规则,自动批量的去发现局域网若干服务器,并自动把服 ...
- zabbix自动发现oracle表空间并监控其使用率
监控需求 Oracle表空间使用率实时监控,当表空间使用率达到95%时触发告警机制.Oracle表空间分为系统默认表空间和用户创建的表空间,而表空间又有自动扩展和非自动扩展两种类型,用户(DBA)在创 ...
- zabbix自动发现监控磁盘(iops和读写量)
2019独角兽企业重金招聘Python工程师标准>>> 对于磁盘有个iops的概念比较奇怪,想监控起来看下,利用zabbix的自动发现把每个磁盘的iops监控起来,思路:自动发现所有 ...
- zabbix 监控使用宏自动发现网卡并进行监控
一.自动发现网卡并进行监控 首先新建一个模板 1.探索规则名称为Network interface discovery 键值为net.if.discovery 2.filter处要把宏给添加上{#IF ...
最新文章
- 孙正义:互联网流量将转化为智能AI流量,我的时代终于来了
- 还是两个数的交换问题
- java dataset flatmap_Flink 系例 之 FlatMap
- 无线网络:家庭 WiFi 的安全隐患及实用的防范建议
- 美国硅谷预测10年后的世界,再不懂你就落伍了
- Delphi用指针读取数组某个元素
- java常量映射_java-基础 - 常量与变量
- 小程序开发之旅(持续更新中..)
- 3.2 LSTM、GRU RNN概述
- java编程思想txt下载_《JAVA编程思想》之第5章-初始化和清理
- DBMS_SQLTUNE + SQL Performance Analyzer 实战小记
- 鹏业软件CAD云服务转图纸没反应的说明
- mbedtls入门和使用
- vue请求接口报错500,进行拦截提示服务器错误
- win7不用破解工具,最简单的去黑屏办法
- java tld_java – 根据标签文件中的TLD或属性指令,属性项不接受任何表达式
- poj 2152 Fire - 经典树形dp
- 量子信息技术(QIT)
- springboot界面上传文件和在页面上显示文件
- android 获取摄像头像素
热门文章
- 安装mysql总结_安装mysql总结
- 服务器串口协议,基于TCPIP协议串口通信服务器设计说明.docx
- 大学计算机vfp最新考试题库,大学计算机vfp考试选择题题库.doc
- mysql 二进制 查询_MySql如何插入和查询二进制数据_MySQL
- PHP以指定字段为索引返回数组数据
- android listview 分页
- java 模糊查询 分页(自定义标签)
- rollback 最后判断成功_最后4天!这些你知道吗?
- Django框架第一篇基础
- BZOJ1259:[CQOI2007]矩形rect(DFS)