1. 程式人生 > >【zabbix】利用LLD自動發現功能監控多Redis例項

【zabbix】利用LLD自動發現功能監控多Redis例項

使用方法:
1)使用netstat來捕獲redis-server啟用的埠,但zabbix-agent執行在zabbix賬號下,故須給zabbix賬號授權執行netstat -nltp的許可權,在root使用者下執行如下命令:
echo "zabbix ALL=(root) NOPASSWD:/bin/netstat" > /etc/sudoers.d/zabbix
echo 'Defaults:zabbix   !requiretty'  >>  /etc/sudoers.d/zabbix
chmod 600  /etc/sudoers.d/zabbix

2)將qiueer目錄、redis.py複製到 /usr/local/zabbix/lib/redis目錄,供參考:


mkdir -p /usr/local/zabbix/lib/redis
cp qiueer redis.py  /usr/local/zabbix/lib/redis -R

3)zabbix_agent.conf配置檔案中需包含如下配置,注意指令碼的位置:
## qiueer redis-stat for discovery
UserParameter=custom.redis.discovery, python /usr/local/zabbix/lib/redis/redis.py --list
UserParameter=custom.redis.item[*],python /usr/local/zabbix/lib/redis/redis.py -p $1  -k $2


4)配置完成後,重啟zabbix agent,例如:
service  zabbix-agent restart

5)在zabbix前端匯入模板:
Qiueer-Template Business-Redis-Discovery.xml

6)如果連線Redis需要賬號密碼,則需要配置埠、密碼的對應關係,配置檔案路徑如下:
/usr/local/public-ops/conf/.redis.passwd (注意需給zabbix使用者賦予只讀許可權)
內容類似如下,格式是: 埠  密碼
6379 42s#qdd

PS:
2)、3)步驟中的路徑/usr/local/zabbix/lib/redis/根據實際情況修改


使用示例:
1)獲取redis埠列表:

$ python redis.py -l
{
       "data":[
              {
                     "{#REDIS_PORT}":6379
              }
       ]
}
2)採集資料
$ python redis.py -p 6379 -k used_memory_rss
9035776


其他:
## 使用如下命令解析其輸出來獲取memcached的埠
sudo netstat  -nlpt | grep 'redis-server' | awk '{print $4}'|awk -F: '{print $2}'

效果圖:


(latest data)


(graphic)