Zabbix 監控阿裡雲RDS數據庫、主要通過阿裡雲提供的API來進行監控。
需要在阿裡雲獲取「使用者AccessKey」指定ID,進行RDS監控。
zabbix-agent 端操作
1、通過pip2.7安裝阿裡雲RDS監控模組
pip2.7 install aliyun-python-sdk-core==2.3.5 aliyun-python-sdk-rds datetime
pip2 list | grep aliyun
aliyun-python-sdk-core 2.3.5
aliyun-python-sdk-rds 2.3.10
2、建立存放RDS組態檔的目錄、並進入到該目錄下
mkdir /etc/zabbix/zabbix_agentd.conf.d/scripts/
cd /etc/zabbix/zabbix_agentd.conf.d/scripts/
3、通過git下載官方提供的RDS檔案
git clone https://github.com/XWJR-Ops/zabbix-RDS-monitor
檢視下載檔案
4、將兩個RDS指令碼移動到scripts目錄下
mv check_rds.py ../
mv discovery_rds.py ../
5、登陸阿裡雲
從阿裡雲控制檯獲取 AccessKey
注:總共有 不同的兩個 ID 與 Secret的值,在建立過程中會顯示。
6、修改兩個RDS指令碼中的 ID 與 Secret 值、地區按照範例地區爲主。
vim check_rds.py
vim discovery_rds.py
#coding=utf-8
#Auther:xwjr.com
from aliyunsdkcore import client
....
ID = 'LTAI4FuxxxxxxxwD4e775Bci'
Secret = 'nPinBRO1xxxxxxx6KIiTcpO0vk'
RegionId = 'cn-shenzhen'
....
7、將指令碼新增到組態檔當中
vim /etc/zabbix/zabbix_agentd.conf
UnsafeUserParameters=1
UserParameter=rds.discovery,/usr/bin/python2.7 /etc/zabbix/zabbix_agentd.conf.d/scripts/discovery_rds.py
UserParameter=check.rds[*],/usr/bin/python2.7 /etc/zabbix/zabbix_agentd.conf.d/scripts/check_rds.py $1 $2 $3
8、重新啓動zabbix-agent服務
systemctl restart zabbix-agentd
9、將zabbix-RDS-monitor目錄下的zbx_AliyunRds_templates.xml模板匯入到zabbix系統中
10、檢視監控項
------------------------------------------------------------------------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------------------------------------------------------------------------
另:
Aliyun RDS-mysql status monitor with zabbix
zabbix通過阿裡雲api 自動發現、監控阿裡雲RDS-Mysql數據庫
本版本數據的圖表展示,是以監控項進行分組,後期會再發布以rds範例分組的版本。
阿裡雲的RDS自帶的監控系統獲取數據不怎麼直觀,想要通過API獲取數據通過zabbix顯示,因爲網上資料缺乏和其他一些原因,獲取API簽名很困難,但使用阿裡雲的SDK可以完美避開獲取簽名的步驟。
阿裡雲SDK是什麼?
SDK是阿裡雲爲使用者提供的開發工具,支援JAVA、PHP、C#等幾種不同的語言,這裏是用Python寫的。在Python SDK裡提供了一些模組,我們通過呼叫這些模組、傳入一些必要的參數可以簡單的實現數據的獲取。
阿裡雲的sdk就是很多的庫檔案,這裏我們只需要兩個庫檔案,一個核心庫sdk-core和rds庫sdk-rds。
下載地址:https://github.com/aliyun/aliyun-openapi-python-sdk
python = 2.7
/usr/bin/pip2.7 install aliyun-python-sdk-core==2.3.5 aliyun-python-sdk-rds datetime
呼叫阿裡雲的sdk分爲三個步驟:
舉個例子:
我想檢視rds範例的資源使用情況。檢視阿裡雲文件得知,其請求參數有兩個:Action :DescribeResourceUsage和DBInstanceId:範例名。
我們進入aliyun-python-sdk-rds/aliyunsdkrds/request/v20140815下的DescribeResourceUsageRequest.py庫檢視DBInstanceId的設定方法爲set_DBInstanceId。
#rds
UserParameter=rds.discovery,/usr/local/python2.7/bin/python2.7 /etc/zabbix/script/discovery_rds.py
UserParameter=check.rds[*],/usr/local/python2.7/bin/python2.7 /etc/zabbix/script/check_rds.py $1 $2 $3