zabbix 监控redis sentinel
2016-04-01 00:00
656 查看
通过externalscripts监控redis sentinel的状态,但是只支持监控一个redis集群的sentinel,因为只监控master0,要支持多集群的sentinel的话自己写个返回各个master0-xxx的json格式的脚本,配合自动探索去做吧。
导出的zabbix模板
externalscripts 脚本
#cat check_sentinel.sh #放在externalscripts路径下,zabbix用户可执行#!/bin/bash ip=$1 port=$2 check=$3 #(echo -en "INFO\r\n";sleep 1)|nc $ip $port if [ $check == "uptime" ] || [ $check == "redisclustername" ] || [ $check == "redisclusterstatus" ] || [ $check == "slavenum" ] || [ $check == "sentinelnum" ] || [ $check == "redismaster" ] then case $check in uptime) (echo -en "INFO\r\n";sleep 1)|nc $ip $port |grep ^uptime_in_seconds:|awk -F: '{print $2}' ;; redisclustername) (echo -en "INFO\r\n";sleep 1)|nc $ip $port |grep ^master0:name|sed 's/^.*:name=//'|sed 's/,status=.*$//' ;; redisclusterstatus) (echo -en "INFO\r\n";sleep 1)|nc $ip $port |grep ^master0:name|sed 's/^.*,status=//'|sed 's/,address=.*$//' ;; slavenum) (echo -en "INFO\r\n";sleep 1)|nc $ip $port |grep ^master0:name|sed 's/^.*slaves=//'|sed 's/,sentinels=.*$//' ;; sentinelnum) (echo -en "INFO\r\n";sleep 1)|nc $ip $port |grep ^master0:name|sed 's/^.*sentinels=//' ;; redismaster) (echo -en "INFO\r\n";sleep 1)|nc $ip $port |grep ^master0:name|sed 's/^.*,address=//'|sed 's/,slaves.*$//' ;; esac else echo "not support $3."&&exit 1 fi
监控模板如下
导出的zabbix模板
<?xml version="1.0" encoding="UTF-8"?> <zabbix_export> <version>2.0</version> <date>2016-04-01T07:17:19Z</date> <groups> <group> <name>Templates</name> </group> </groups> <templates> <template> <template>template redis sentinel</template> <name>template redis sentinel</name> <description/> <groups> <group> <name>Templates</name> </group> </groups> <applications> <application> <name>sentinel</name> </application> </applications> <items> <item> <name>check redis sentinel $2 port 26379</name> <type>3</type> <snmp_community/> <multiplier>0</multiplier> <snmp_oid/> <key>net.tcp.service[tcp,{IPADDRESS},26379]</key> <delay>60</delay> <history>90</history> <trends>365</trends> <status>0</status> <value_type>3</value_type> <allowed_hosts/> <units/> <delta>0</delta> <snmpv3_contextname/> <snmpv3_securityname/> <snmpv3_securitylevel>0</snmpv3_securitylevel> <snmpv3_authprotocol>0</snmpv3_authprotocol> <snmpv3_authpassphrase/> <snmpv3_privprotocol>0</snmpv3_privprotocol> <snmpv3_privpassphrase/> <formula>1</formula> <delay_flex/> <params/> <ipmi_sensor/> <data_type>0</data_type> <authtype>0</authtype> <username/> <password/> <publickey/> <privatekey/> <port/> <description/> <inventory_link>0</inventory_link> <applications> <application> <name>sentinel</name> </application> </applications> <valuemap/> <logtimefmt/> </item> <item> <name>redis sentinel $1 redis cluster name</name> <type>10</type> <snmp_community/> <multiplier>0</multiplier> <snmp_oid/> <key>check_sentinel.sh[{IPADDRESS},26379,redisclustername]</key> <delay>60</delay> <history>90</history> <trends>365</trends> <status>0</status> <value_type>4</value_type> <allowed_hosts/> <units/> <delta>0</delta> <snmpv3_contextname/> <snmpv3_securityname/> <snmpv3_securitylevel>0</snmpv3_securitylevel> <snmpv3_authprotocol>0</snmpv3_authprotocol> <snmpv3_authpassphrase/> <snmpv3_privprotocol>0</snmpv3_privprotocol> <snmpv3_privpassphrase/> <formula>1</formula> <delay_flex/> <params/> <ipmi_sensor/> <data_type>0</data_type> <authtype>0</authtype> <username/> <password/> <publickey/> <privatekey/> <port/> <description/> <inventory_link>0</inventory_link> <applications> <application> <name>sentinel</name> </application> </applications> <valuemap/> <logtimefmt/> </item> <item> <name>redis sentinel $1 redis cluster status</name> <type>10</type> <snmp_community/> <multiplier>0</multiplier> <snmp_oid/> <key>check_sentinel.sh[{IPADDRESS},26379,redisclusterstatus]</key> <delay>60</delay> <history>90</history> <trends>365</trends> <status>0</status> <value_type>4</value_type> <allowed_hosts/> <units/> <delta>0</delta> <snmpv3_contextname/> <snmpv3_securityname/> <snmpv3_securitylevel>0</snmpv3_securitylevel> <snmpv3_authprotocol>0</snmpv3_authprotocol> <snmpv3_authpassphrase/> <snmpv3_privprotocol>0</snmpv3_privprotocol> <snmpv3_privpassphrase/> <formula>1</formula> <delay_flex/> <params/> <ipmi_sensor/> <data_type>0</data_type> <authtype>0</authtype> <username/> <password/> <publickey/> <privatekey/> <port/> <description/> <inventory_link>0</inventory_link> <applications> <application> <name>sentinel</name> </application> </applications> <valuemap/> <logtimefmt/> </item> <item> <name>redis sentinel $1 redis master</name> <type>10</type> <snmp_community/> <multiplier>0</multiplier> <snmp_oid/> <key>check_sentinel.sh[{IPADDRESS},26379,redismaster]</key> <delay>60</delay> <history>90</history> <trends>365</trends> <status>0</status> <value_type>4</value_type> <allowed_hosts/> <units/> <delta>0</delta> <snmpv3_contextname/> <snmpv3_securityname/> <snmpv3_securitylevel>0</snmpv3_securitylevel> <snmpv3_authprotocol>0</snmpv3_authprotocol> <snmpv3_authpassphrase/> <snmpv3_privprotocol>0</snmpv3_privprotocol> <snmpv3_privpassphrase/> <formula>1</formula> <delay_flex/> <params/> <ipmi_sensor/> <data_type>0</data_type> <authtype>0</authtype> <username/> <password/> <publickey/> <privatekey/> <port/> <description/> <inventory_link>0</inventory_link> <applications> <application> <name>sentinel</name> </application> </applications> <valuemap/> <logtimefmt/> </item> <item> <name>redis sentinel $1 sentinel num</name> <type>10</type> <snmp_community/> <multiplier>0</multiplier> <snmp_oid/> <key>check_sentinel.sh[{IPADDRESS},26379,sentinelnum]</key> <delay>60</delay> <history>90</history> <trends>365</trends> <status>0</status> <value_type>3</value_type> <allowed_hosts/> <units>s</units> <delta>0</delta> <snmpv3_contextname/> <snmpv3_securityname/> <snmpv3_securitylevel>0</snmpv3_securitylevel> <snmpv3_authprotocol>0</snmpv3_authprotocol> <snmpv3_authpassphrase/> <snmpv3_privprotocol>0</snmpv3_privprotocol> <snmpv3_privpassphrase/> <formula>1</formula> <delay_flex/> <params/> <ipmi_sensor/> <data_type>0</data_type> <authtype>0</authtype> <username/> <password/> <publickey/> <privatekey/> <port/> <description/> <inventory_link>0</inventory_link> <applications> <application> <name>sentinel</name> </application> </applications> <valuemap/> <logtimefmt/> </item> <item> <name>redis sentinel $1 slave num</name> <type>10</type> <snmp_community/> <multiplier>0</multiplier> <snmp_oid/> <key>check_sentinel.sh[{IPADDRESS},26379,slavenum]</key> <delay>60</delay> <history>90</history> <trends>365</trends> <status>0</status> <value_type>3</value_type> <allowed_hosts/> <units/> <delta>0</delta> <snmpv3_contextname/> <snmpv3_securityname/> <snmpv3_securitylevel>0</snmpv3_securitylevel> <snmpv3_authprotocol>0</snmpv3_authprotocol> <snmpv3_authpassphrase/> <snmpv3_privprotocol>0</snmpv3_privprotocol> <snmpv3_privpassphrase/> <formula>1</formula> <delay_flex/> <params/> <ipmi_sensor/> <data_type>0</data_type> <authtype>0</authtype> <username/> <password/> <publickey/> <privatekey/> <port/> <description/> <inventory_link>0</inventory_link> <applications> <application> <name>sentinel</name> </application> </applications> <valuemap/> <logtimefmt/> </item> <item> <name>redis sentinel $1 uptime</name> <type>10</type> <snmp_community/> <multiplier>0</multiplier> <snmp_oid/> <key>check_sentinel.sh[{IPADDRESS},26379,uptime]</key> <delay>60</delay> <history>90</history> <trends>365</trends> <status>0</status> <value_type>3</value_type> <allowed_hosts/> <units>s</units> <delta>0</delta> <snmpv3_contextname/> <snmpv3_securityname/> <snmpv3_securitylevel>0</snmpv3_securitylevel> <snmpv3_authprotocol>0</snmpv3_authprotocol> <snmpv3_authpassphrase/> <snmpv3_privprotocol>0</snmpv3_privprotocol> <snmpv3_privpassphrase/> <formula>1</formula> <delay_flex/> <params/> <ipmi_sensor/> <data_type>0</data_type> <authtype>0</authtype> <username/> <password/> <publickey/> <privatekey/> <port/> <description/> <inventory_link>0</inventory_link> <applications> <application> <name>sentinel</name> </application> </applications> <valuemap/> <logtimefmt/> </item> </items> <discovery_rules/> <macros/> <templates/> <screens/> </template> </templates> <triggers> <trigger> <expression>{template redis sentinel:check_sentinel.sh[{IPADDRESS},26379,redisclusterstatus].str(ok,#2)}=0</expression> <name>check redis cluster monited by sentinel {IPADDRESS} not ok</name> <url/> <status>0</status> <priority>4</priority> <description/> <type>0</type> <dependencies/> </trigger> <trigger> <expression>{template redis sentinel:net.tcp.service[tcp,{IPADDRESS},26379].last(#1)}<>1</expression> <name>check sentinel {IPADDRESS} port 26379 failed.</name> <url/> <status>0</status> <priority>4</priority> <description/> <type>0</type> <dependencies/> </trigger> </triggers> </zabbix_export>
相关文章推荐
- zabbix 监控redis server
- Java中使用Jedis操作Redis
- Redis内存使用优化与存储
- Redis 服务器的安装与启动
- 基于zookeeper管理redis集群,实现消息路由(一)
- 分布式锁-redis实现(1)
- redis简单了解 二 (集群)
- redis简单了解一:(部署/主从复制)
- Windows下玩转Redis入门(一)
- Redis的冗余方案(keepalived, HAProxy, Redis Sentinel)
- Spring Data Redis 学习(一)
- 解决方法:配置群集时# gem install redis 报错:Unable to require openssl, install OpenSSL and rebuild ruby (prefer
- Redis学习:如何跳出SQL这个坑
- redis与mysql数据同步
- NoSQL——Redis初相见
- Python之异步IO&RabbitMQ&Redis
- 在window server服务器配置redis
- redis sort命令用法
- ubuntu安装redis
- Redis主从复制配置