最近在研究zabbix的騰訊云監控,這是客戶的需求之一,也是我們公司產品拓展,以及zabbix功能強大的一次體現,意義還是比較大的。所以本人要全力去搞好這一塊云平臺方面的東西。本次寫兩篇文章關于這個騰訊云監控的實現,因為平時工作下班后研究的,所以花費的時間比較多,寫這篇軟文前,其實已經把騰訊云API接口怎么用,還有全部接口數據都測試了一遍的。下面簡要寫下以騰訊云服務器cvm為例:
- 準備好環境:
支持Python 2.7,3.6至3.9版本。更高python版本運行時,會有個SSL證書報錯,那時自己百度解決就好。本人是linux系統centos7.5版本運行的。A,先安裝好環境:yum -y install python-setuptools,這是個python包管理工具。B,安裝API接口的python sdk,推薦使用下載包安裝的方法,鏈接如下: https://github.com/TencentCloud/tencentcloud-sdk-python.git
下載后,解壓
tencentcloud-sdk-python-master.zip,進入包的目錄,執行python setup.py install
看到安裝成功的時候,環境就準備好了。
閱讀API接口文檔
收集重要參數信息,私鑰ID,私鑰,地域等等
Python的API接口文檔鏈接:
https://cloud.tencent.com/document/api
為了研究所有指標,我就收集了如下的信息:
其中方框是重要的參數,一定要找出來的,這里不細說,但是SecretKey創建的時候一定要注意權限
然后云服務器API接口文檔是:
https://cloud.tencent.com/document/api/213/15689
這里選擇了DescribeInstances(實例列表)參數。
調用接口的腳本
腳本如下:
#!/usr/bin/env python
coding: utf-8
import json
from tencentcloud.common import credential
from tencentcloud.common.profile.client_profile import ClientProfile
from tencentcloud.common.profile.http_profile import HttpProfile
from tencentcloud.common.exception.tencent_cloud_sdk_exception import TencentCloudSDKException
from tencentcloud.cvm.v20170312 import cvm_client, models
try:
cred = credential.Credential(“SecretId”, “SecretKey”)
httpProfile = HttpProfile()
httpProfile.endpoint = “cvm.tencentcloudapi.com”
clientProfile = ClientProfile()
clientProfile.httpProfile = httpProfile
client = cvm_client.CvmClient(cred, “ap-guangzhou”, clientProfile)
req = models.DescribeInstancesRequest()
params = {
}
req.from_json_string(json.dumps(params))
resp = client.DescribeInstances(req)
res = resp.to_json_string()
res = json.loads(res)
print(res)
except TencentCloudSDKException as err:
print(err)
簡單的說就是:
運行后得出來的數據就是實例列表json數據了:
所以這里想要把指標放到zabbix上,推薦使用zabbix sender方式。最苦惱的就是騰訊云沒有像阿里云那樣的的獨立數據端口啊,就是輸入單獨一個指標(如UUID)就可以讓阿里云單獨或者單類型的輸出一個值了,這是很方便取數據的。而騰訊云則需要對json數據做處理,把指標一個個拿出來,這就不是很方便了。所以我也是做了個初步實現的效果給大家看。
4. 效果的初步實現
A,采用了zabbix sender的方式:
采集下面幾個數據測試一下:
B, Zabbix web上創建監控項:
C, 運行命令及結果:
/itops/zabbix/bin/zabbix_sender -z 172.16.1.125 -p 10050 -s ‘zabbix-server’ -k ‘KeyIds’ -o ‘skey-oa700dq3’
/itops/zabbix/bin/zabbix_sender -z 172.16.1.125 -p 10051 -s ‘zabbix-server’ -k ‘UUID’ -o ‘c1c29e0f-388a-429e-af28-35d836495e38’
結果:
已取到數據,獲得了初步成功了!
后面要實現所有實例的指標,自動發現那些就需要多琢磨了,優化腳本,后面再寫一篇完整的指標實現軟文出來了。