歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux綜合 >> 學習Linux >> redis監控,redis監控工具

redis監控,redis監控工具

日期:2017/3/3 18:08:53   编辑:學習Linux

redis監控,redis監控工具

redis監控,redis監控工具


  公司的redis業務很多,redis監控自然也是DB監控的一大模塊,包括采集、展示、監控告警。本文主要介紹redis監控的主要指標和采集方法。

  一、Redis監控系統邏輯

  1、DBA通過前台頁面添加redis監控,填寫ip和端口,配置阈值、負責人等信息

  2、前台調用自動調度平台接口將redis監控采集Agent發送到目標機器上的固定文件夾,並添加crond,每分鐘運行(采集Agent包含采集程序和ip端口信息文件)

  3、redis監控Agent采集相關指標通過http接口上報到mysql服務器(目標機器無法直接連接mysql)

  4、前台讀取mysql數據進行展示

  5、解析程序每分鐘通過讀取配置信息和Agent上報的數據進行解析並發送告警(Rtx/Wechat/Sms)給指定負責人

  二、采集指標和命令

  1、redis服務進程 ip-port

約定所有redis服務都必須以ip1(內網ip)來綁定,每個機器只有一個ip1,可以有多個端口,即多個redis實例。采集程序讀取ip端口信息文件來判斷有多少個實例

ps aux | grep -E "redis-server.*$port"

約定所有redis客戶端安裝標准路徑是

REDISPATH_CLI="/usr/local/redis/bin/redis-cli"

如果發現不是標准路徑會有 No such file or directory 的提示,則采集程序會在每天早上10點發送Rtx彈窗給DBA(DBA也可以根據前台頁面圖表展示來判斷該采集器有無上報數據,無上報數據則可以上機查看采集器日志)

采集器使用下面的命令來采集redis實例的所有信息,然後根據信息篩選出需要的指標上報到mysql

$REDISPATH_CLI -h ${agentIp} -p ${port} info > ${tmpFile} 2>&1 

如果redis實例沒有綁定在ip1或者127.0.0.1上面則會提示 Connection refused

  2、連接客戶數

grep "connected_clients:" ${tmpFile} | awk -F ":" '{print $2}'

  3、阻塞連接數

grep "blocked_clients:" ${tmpFile} | awk -F ":" '{print $2}'

  4、redis占用內存,單位Byte轉成MB

grep "used_memory:" ${tmpFile} | awk -F ":" '{print $2}' | awk '{printf "%.2f",$1/1024/1024}'

  5、內存峰值,單位Byte轉成MB

grep "used_memory_peak:" ${tmpFile} | awk -F ":" '{print $2}' | awk '{printf "%.2f",$1/1024/1024}'

  6、主從角色

grep "role:" ${tmpFile} | awk -F ":" '{print $2}'   #  master(主),slave(從)

  7、master_link_status

grep "master_link_status:" ${tmpFile} | awk -F ":" '{print $2}'   # up down

down:Master已經不可訪問了,Slave依然運行良好,並且保留有AOF與RDB文件

  8、執行命令總數和qps

grep "total_commands_processed:" ${tmpFile} | awk -F ":" '{print $2}'

計算qps需要計算兩次 total_commands_processed,然後除以時間差。邏輯是第一分鐘將total_commands_processed的值和當時采集該值的時間保存到last.cache中,第二分鐘采集的時候獲取值和時間,和上次相減得到兩個差值相除即可。

  9、上報時間

reportTime=`date +'%Y-%m-%d %H:%M:00'`

時間的秒數是0,方便前台畫圖展示

  三、解析告警

分析上報的指標是否異常,根據reportTime判斷Agent心跳情況,將狀態和異常信息存入mysql,發送告警給相關負責人。數據庫分表如下:

  redisMonitor庫:配置表redisConf、當前狀態redisCurrentStatus、異常信息表redisDisplay

  歷史庫按月分庫,按照ip分表,保存redis采集器上報數據,Ex: redisStatus167872716

  四、前台展示

  1、異常頁面

  2、狀態頁面

原創文章,轉載請備注原文地址 http://www.cnblogs.com/lxmhhy/p/6034549.html

知識交流討論請加qq:1130010617。謝謝合作。

http://xxxxxx/Linuxjc/1170745.html TechArticle

Copyright © Linux教程網 All Rights Reserved