Zabbix(三) : 通過Zabbix官方模板監控微軟雲Azure上多台Redis執行個體,zabbixredis
1. 運行環境:
OS:CentOS 7.3 / Python: 2.7.3/ Pip: 9.0.1 / Zabbix:3.2.8 / Redis:微軟雲Redis 3.2.7
Zabbix官方提供的監控模板。
項目地址:https://github.com/blacked/zbx_redis_template
官方提供Python和Nodejs兩種版本的監控指令碼,本文使用Python指令碼。
Zabbix所有官方模板:http://www.zabbix.org/wiki/Zabbix_Templates
2. 部署
官方提供的監控指令碼支援兩種部署方式:zabbix agent部署以及trap-messages部署。
zabbix agent方式:zabbix每隔一段時間向agent請求redis的參數,agent去redis擷取並交給zabbix。
trap-messages方式:指令碼自動擷取redis的參數,並且彙集成一條訊息主動發送給zabbix。
如果要經常擷取大量redis資料,官方建議使用trap-messages方式,並且trap-messages方式只支援python指令碼。
我們這裡就使用trap-messages方式來部署。
1> 安裝Python依賴
# yum -y install python-pip# pip install argparse# pip install redis
2> 將zbx_redis_stats.py放到zabbix伺服器上某路徑下,如/etc/zabbix/script/redis/。
3> 修改指令碼中zabbix參數:
zabbix_host = '127.0.0.1' # Zabbix Server IPzabbix_port = 10051 # Zabbix Server Port
4> 由於我這裡微軟雲上的redis只開放了SSL串連,因此指令碼添加redis SSL串連參數:
client = redis.StrictRedis(host=redis_hostname, port=args.redis_port, password=args.redis_pass, ssl=True)
5> 測試指令碼是否可以正常串連到微軟雲上redis並擷取參數:
/etc/zabbix/script/redis/zbx_redis_stats.py -a redispassword -p 6380 test.redis.cache.chinacloudapi.cn list_key_space_db
6> 添加crontab,定期執行指令碼發送資料給zabbix,注意若密碼中含有%需要用 \ 進行轉義 (\%)。
若要監控多台redis,則添加多個crontab:
*/1 * * * * /etc/zabbix/script/redis/zbx_redis_stats.py -a redispassword -p 6380 test.redis.cache.chinacloudapi.cn
7> 將zbx_redis_trapper_template.xml匯入zabbix模板。
8> 使用redis hostname建立zabbix主機,連結模板,即可實現監控。