文档详情

利用Zabbix的lowleveldiscovery监控Redis服务..docx

发布:2017-01-07约4.8千字共11页下载文档
文本预览下载声明
利用Zabbix的low level discovery监控Redis服务背景之前,在使用zabbix完成redis的基本监控一文中,描述了如何使用zabbix监控单独的redis服务,但是在实际的redis生产环境中,往往是部署多个redis端口,并随时的调整。如果每个redis的运行实例都做手工的配置,会出现大量的重复性的工作,导致维护上工作量的增加。zabbix 2.0之后提供了low level discovery的功能,支持服务的自我发现和监控,本文将描述使用该技术对redis服务的监控配置过程,并附带描述基于zabbix源码包的安装配置过程。本文基于:ubuntu 12.04zabbix 2.2.1源代码概述基本想法是在zabbix_agent通过redis.discovery参数通报需要自动监控的端口,然后在服务器端以提供的端口为附加参数,来查询redis_server的状态。配置zabbix_server的自动发现创建template_redis_discovery模版填充template的namegroup保存之后,点击discovery链接:创建discovery rule:填充保存:回到discovery rule的管理界面,填充item prototypes:创建item prototypes:编辑保存item prototypes:依次创建其它item prototypes。配置zabbix_agent的redis的数据获取注:这部分主要借助于自己制作的脚本工具来完成,在这里只是简单的陈述一下,描述一下how to。在zabbix_agent这边,返回2类数据:是描述支持redis_discovery的redis的端口的JSON数据是获取每个redis server状态数据的脚本这部分大致思路如下:使用zabbix_discovery.sh gen产生需要监控的端口列表,并存储于/tmp/redis.discovery文件之中在crontab中,定期获取指定端口的状态数据,并存储于redis_port.stat文件之中在zabbix_agent.conf中,定义redis.discovery和redis.stat用户参数这样,按以下步骤执行:使用zabbix_discovery.sh gen /tmp/redis.discovery生成端口列表文件内容:6379 6380 6381 6382通过crontab–e添加命令,定期获取redis的状态数据命令如下:*/1 * * * * /var/redis_util/zabbix_2.2.1/zabbix_discovery.sh state $(cat /tmp/redis.discovery)编辑zabbix_agentd.conf文件位于/usr/local/etc/zabbix_agentd.conf,添加下面的内容:UnsafeUserParameters=1UserParameter=redis.discovery, /var/redis_util/zabbix_2.2.1/zabbix_discovery.sh data `cat /tmp/redis.discovery`UserParameter=redis[*],cat /tmp/redis_$2.stat | grep $1: | cut -d: -f2验证zabbix_agent的数据采集和访问运行命令:zabbix_agentd -t redis.discovery应该得到结果:redis.discovery [t|{ data:[{ {#PORT}:6379 }, { {#PORT}:6380 }, { {#PORT}:6381 }, { {#PORT}:6382 } ]}]运行命令:zabbix_agentd -t redis[hits,6379]应该得到结果:redis[hits,6379] [t|3635]验证zabbix_server的数据访问使用命令:zabbix_get -s -k redis.discovery得到数据:{ data:[{ {#PORT}:6379 }, { {#PORT}:6380 }, { {#PORT}:6381 }, { {#PORT}:6382 } ]}使用命令:zabbix_get -s -k redis[hits,6379]会得到数据:3635OK,zabbix_agent验证完毕。添加redis的low level discovery监控创建一个host,并引入上面的template_r
显示全部
相似文档