Zabbix監控redis配置及宏的使用

來源:互聯網
上載者:User

標籤:監控   zabbix   redis   

本文主要介紹zabbix宏的簡單使用,通過自訂指令碼監控redis相關指標。

zabbix監控redis需要自訂指令碼去監控,網路上的指令碼對於在一台機器上有多個redis執行個體不是很實用。於是修改了下監控指令碼,使其可以接受傳入連接埠參數。

原理:通過redis用戶端串連命令,過濾出info輸出的資訊

 

一、zabbix宏介紹及定義

1.宏介紹

(1)宏是一種抽象,他根據一系列預定義的規則替換一定的文字模式,而解譯器或編譯器在遇到宏時會自動進行這一模式替換,可以理解為變數。

(2)zabbix有許多內建的宏,如{HOST.NAME}、{HOST.IP}、{TRIGGER.DESCRIPTION}、{TRIGGER.NAME}、{TRIGGER.EVENTS.ACK}等

(3)為了更強的靈活性,zabbix支援全域、模版或主機分級自訂宏,使用者自訂宏要使用"{$MACRO}"這種特殊的文法格式,宏的名稱只能使用大寫字母、數字及底線

(4)宏可以應用在item keys和descriptions、trigger名稱和表達 式、主機介面IP/DNS及連接埠、discovery機制的SNMP協議 的相關資訊中等

(5)當在多個監控項中重複引用同樣的值時,此時使用宏方便後續修改

2.宏的優先順序

優先使用主機宏,其次模板宏,最後使用全域宏

3.主機宏的定義

這裡定義redis執行個體連接埠

選擇配置---->主機---->選擇相應的主機

650) this.width=650;" src="http://s1.51cto.com/wyfs02/M01/87/3C/wKioL1fYxhzwue7HAABqETj0dqA995.png-wh_500x0-wm_3-wmp_4-s_1659060767.png" title="01.png" alt="wKioL1fYxhzwue7HAABqETj0dqA995.png-wh_50" />

4.模板宏的定義

選擇配置---->模板---->選擇相應的模板

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M01/87/3F/wKiom1fYxi6zL3SbAABELKMEI1g306.png-wh_500x0-wm_3-wmp_4-s_3290969120.png" title="02.png" alt="wKiom1fYxi6zL3SbAABELKMEI1g306.png-wh_50" />

5.全域宏的定義

選擇管理---->一般---->選擇宏

650) this.width=650;" src="http://s2.51cto.com/wyfs02/M00/87/3C/wKioL1fYxjmT8hWWAAAni8ZyVP4456.png-wh_500x0-wm_3-wmp_4-s_225051867.png" title="03.png" alt="wKioL1fYxjmT8hWWAAAni8ZyVP4456.png-wh_50" />

二、建立監控採集指令碼

1.指令碼內容:

#catcheck_redis.sh

#!/bin/bash

REDISPATH="/usr/local/redis3379_6_test/bin/redis-cli"

HOST="127.0.0.1"

PORT="$1"

REDIS_PA="$REDISPATH-h $HOST -p $PORT info"

REDIS_PI="$REDISPATH-h $HOST -p $PORT ping"

if [[ $# == 2]];then

  case $2 in

# memory

    used_memory)

      result=`$REDIS_PA|/bin/grepused_memory|awk -F":" ‘{print $NF}‘|awk ‘NR==1‘`

      echo $result

      ;;

    used_memory_human)

      result=`$REDIS_PA|/bin/grepused_memory_human | awk -F":" ‘{print $NF}‘|awk -F‘K‘ ‘{print $1}‘`

      echo $result

      ;;

    used_memory_peak_human)

      result=`$REDIS_PA|/bin/grepused_memory_peak_human | awk -F":" ‘{print $NF}‘|awk -F‘K‘ ‘{print$1}‘`

      echo $result

      ;;

    used_memory_peak)

      result=`$REDIS_PA|/bin/grepused_memory_peak|awk -F":" ‘{print $NF}‘|awk ‘NR==1‘`

      echo $result

      ;;

# status

    instantaneous_ops_per_sec)

      result=`$REDIS_PA|/bin/grep -w"instantaneous_ops_per_sec" | awk -F‘:‘ ‘{print $2}‘`

      echo $result

      ;;

    connected_clients)

      result=`$REDIS_PA|/bin/grepconnected_clients|awk -F":" ‘{print $NF}‘`

      echo $result

      ;;

statu)

  result=`$REDIS_PI|/bin/grep -c PONG`

  echo $result

  ;;

# Replication

    role)

      result=`$REDIS_PA|/bin/grep role | awk-F‘:‘ ‘{print $NF}‘`

      echo $result

      ;;

    connected_slaves)

      result=`$REDIS_PA|/bin/grep -w"connected_slaves" | awk -F‘:‘ ‘{print $2}‘`

      echo $result

      ;;

master_link_status)

      result=`$REDIS_PA|/bin/grep -w"master_link_status"|awk -F‘:‘ ‘{print $2}‘|/bin/grep -c up`

      echo $result

      ;;

  esac

# db0:key

elif [[ $# == 3]];then

  case $3 in

    keys)

      result=`$REDIS_PA| /bin/grep -w"db0"| /bin/grep -w "$2" | /bin/grep -w "keys" |awk -F‘=|,‘ ‘{print $2}‘`

      echo $result

      ;;

    expires)

      result=`$REDIS_PA| /bin/grep -w"db0"| /bin/grep -w "$2" | /bin/grep -w "expires"| awk -F‘=|,‘ ‘{print $4}‘`

      echo $result

      ;;

    avg_ttl)

      result=`$REDIS_PA|/bin/grep -w"db0"| /bin/grep -w "$2" | /bin/grep -w "avg_ttl"| awk -F‘=|,‘ ‘{print $6}‘`

      echo $result

      ;;

    *)

      echo "Usage:$0{db0 keys|db0expires|db0 avg_ttl}"

      ;;

  esac

fi

2.指令碼使用

存放位置:/usr/local/zabbix/etc/scripts

功能:指令碼能接受三個參數傳入,監控redis執行個體是否線上、記憶體使用量情況、用戶端串連數、主從同步狀態等

三、修改agent設定檔

1.修改zabbix_agentd.conf

Include=/usr/local/zabbix/etc/zabbix_agentd.conf.d/

2.在zabbix_agentd.conf.d下定義監控redis的key

#cat redis_info.confUserParameter=redis_info[*],/usr/local/zabbix/etc/scripts/check_redis.sh $1 $2 $3

3.重啟agent服務

四、在web介面建立監控項

1.建立redis狀態items

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M02/87/3C/wKioL1fYxlOi8qCiAACaSwDKbKs064.png-wh_500x0-wm_3-wmp_4-s_1563212007.png" title="04.png" alt="wKioL1fYxlOi8qCiAACaSwDKbKs064.png-wh_50" />

2.建立redis記憶體使用量情況items

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/87/3F/wKiom1fYxmDw148pAACbtPHeEjk971.png-wh_500x0-wm_3-wmp_4-s_1958356238.png" title="05.png" alt="wKiom1fYxmDw148pAACbtPHeEjk971.png-wh_50" />

3.建立db0平均命中率items

650) this.width=650;" src="http://s2.51cto.com/wyfs02/M01/87/3C/wKioL1fYxnHQGnBgAACgcgqXOxI007.png-wh_500x0-wm_3-wmp_4-s_1503304657.png" title="06.png" alt="wKioL1fYxnHQGnBgAACgcgqXOxI007.png-wh_50" />

 

說明:

1.第一個參數為主機宏中定義的執行個體連接埠,第二個參數為監控的資訊,這些參數將會傳遞到監控指令碼中,監控指令碼根據傳入的參數擷取相關監控資訊。

2.第一個參數為主機宏中定義的執行個體連接埠,第二個參數為db名稱,第三個參數為監控的資訊,這些參數將會傳遞到監控指令碼中,監控指令碼根據傳入的參數擷取相關監控資訊。

五、查看監控資料

選擇監測中---->最新資料---->選擇相應過濾條件

650) this.width=650;" src="http://s1.51cto.com/wyfs02/M00/87/3F/wKiom1fYxoOCp5fJAADXp0l_9NE908.png-wh_500x0-wm_3-wmp_4-s_3409102524.png" title="07.png" alt="wKiom1fYxoOCp5fJAADXp0l_9NE908.png-wh_50" />


本文出自 “linux之路” 部落格,請務必保留此出處http://hnr520.blog.51cto.com/4484939/1852655

Zabbix監控redis配置及宏的使用

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.