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_te ...
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 IP zabbix_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主機,鏈接模板,即可實現監控。