注册 登录
  • 欢迎访问"运维那点事",推荐使用Google浏览器访问,可以扫码关注本站的"微信公众号"。
  • 如果您觉得本站对你有帮助,那么可以扫码捐助以帮助本站更好地发展。

Zabbix自动监控Redis多实例配置

Redis 彭东稳 8330次浏览 已收录 2个评论

本人在工作中一般喜欢把MySQL、Redis、Memcached、MongoDB等数据库按照实例的方式对外提供服务。一般都是一台高配的服务器上开启多个实例给每个业务使用。而监控是重中之重,我自己也尝试了多种监控方式,但对我来说感觉最简单最快的就是使用zabbix了,灵活定义key。

由于我是多实例,所以就需要用到zabbix的自动发现功能(LLD)。基本处理方式就是:

1、写自动发现脚本。

2、写状态取值脚本。

3、添加配置文件。

4、添加权限。

5、配置zabbix web。

一、写自动发现脚本

执行脚本看输出结果(最好使用zabbix用户执行,才能看出效果):

我这个脚本中使用了sudo权限,zabbix用户在执行netstat时需要sudo权限。

对于Redis也可以使用ps命令,因为如果你一台机器上有Redis、也有sentinel使用netstat命令就比较恶心了,没办法区分。但是可以使用ps命令,因为也会带端口号信息,所以跟netstat效果一样,如下:

通过ps信息就可以很好地把sentinel过滤掉了,并且ps命令对于zabbix用户不需要sudo权限。

二、写状态取值脚本

脚本很简单,需要传给脚本两个参数,一个是端口号,另一个是监控值。

有几个特别需要说明的就是:

1)这个脚本不支持redis加密。

2)需要指定redis-cli的绝对路径。

3)需要安装dos2unix工具(yum install dos2unix)。

三、添加配置文件

这里定义三个key,第一个key是用于自动发现的。第二个key是用于取不同实例的状态值的,传了两个参数,$1是端口号(从自动发现中获取的),第二个是传的参数。端口号和参数我会在zabbix页面配置传给redis[*]这个key。

都配置完后就可以添加重启一下zabbix-agent了。

四、添加权限

需要给zabbix用户添加sudo权限。

另外需要注意的是,普通用户zabbix默认环境变量有如下这些:

所以你要确认你所有的执行程序都在这些路径下,不然zabbix是获取不到值的。

使用zabbix用户执行看是否正常。

五、配置zabbix web

前期工作都做完了,下面就可以配置zabbix web了。

首先创建一个模板(Template Linux Redis Discovery),然后在模板中创建一个自动发现规则(Linux Redis Discovery)。

Zabbix自动监控Redis多实例配置

在这个自动发现规则内创建一个item。

Zabbix自动监控Redis多实例配置

然后可以创建trigger等,下面是我提供的一个模板。

Github:https://github.com/dongwenpeng/zabbix


如果您觉得本站对你有帮助,那么可以支付宝扫码捐助以帮助本站更好地发展,在此谢过。
喜欢 (3)or分享 (0)
关于作者:

您必须 登录 才能发表评论!

(2)个小伙伴在吐槽
  1. 你好,我问下,您下面给的链接里的模板导入时报错ERROR: Import failed Unknown import version. 该如何解决
    wangyf2017-05-17 17:40 Windows 7 | 搜狗浏览器 2.X
    • 我这是zabbix 3.0,你是什么版本。
      彭东稳2017-05-18 23:15 未知操作系统 | Chrome 51.0.2704.103