熱門搜索 Zabbix技術資料 Zabbix常見問、答討論 成功案例 Zabbix交流區 Prometheus交流區
json模塊是python內置的庫,其主要功能是將序列化數據從文件里讀取出來或者存入文件。該模塊有四個方法:dump()、load()、dumps()、loads(),其中dump()是將數據存入文件中,load()是用于讀取文件;而dumps()和loads()是對python對象進行操作。dumps()是將python對象編碼成json字符串,loads()是將json字符串解碼成python對象。
json模塊的操作使用相對較為簡單,在使用的時候直接導入就可以。在zabbix運維中,常見的自動發現場景,使用python的json模塊,處理起數據,會非常的簡單。
以下結果,為調用阿里云的接口數據作為演示,相關敏感數據已做脫敏處理。
#!/usr/bin/env python
#coding=utf-8
from aliyunsdkcore.client import AcsClient
from aliyunsdkcore.acs_exception.exceptions import ClientException
from aliyunsdkcore.acs_exception.exceptions import ServerException
from aliyunsdkcore.auth.credentials import AccessKeyCredential
from aliyunsdkcore.auth.credentials import StsTokenCredential
from aliyunsdkslb.request.v20140515.DescribeLoadBalancersRequest import DescribeLoadBalancersRequest
import json
# 這里填 ACCESS_KEY 和SECRET_KEY
credentials = AccessKeyCredential('', '')
# use STS Token
# credentials = StsTokenCredential('
u'LoadBalancers': {u'LoadBalancer': [{u'BusinessStatus': u'Normal', u'CreateTimeStamp': 1665537209000, u'LoadBalancerStatus': u'active', u'PayType': u'PayOnDemand', u'InternetChargeType': u'4', u'VpcId': u'', u'RegionIdAlias': u'cn-hangzhou', u'Tags': {u'Tag': [{u'TagKey': u'ack.aliyun.com', u'TagValue': u'cc5bc5d2683a44ae9b1a8eb816'}, {u'TagKey': u'kubernetes.do.not.delete', u'TagValue': u'a2d1f65d7fb1d468197ad23ba183fc45'}]}, u'RegionId': u'cn-hangzhou', u'ResourceGroupId': u'rg-acfmxrtftvdl', u'InstanceChargeType': u'PayBySpec', u'VSwitchId': u'', u'InternetChargeTypeAlias': u'paybytraffic', u'Address': u'120.26.67.000', u'AddressIPVersion': u'ipv4', u'LoadBalancerSpec': u'slb.s1.small', u'LoadBalancerId': u'lb-bp1py79ytly0dl', u'AddressType': u'internet', u'MasterZoneId': u'cn-hangzhou-b', u'DeleteProtection': u'on', u'ModificationProtectionReason': u'managed.by.ack', u'SlaveZoneId': u'cn-hangzhou-g', u'Bandwidth': 5120, u'SpecBpsFlag': False, u'ModificationProtectionStatus': u'ConsoleProtection', u'NetworkType': u'classic', u'LoadBalancerName': u'a2d1f65d7fb1d468197ad23ba1', u'CreateTime': u'2022-10-12T09:13Z'}, {u'BusinessStatus': u'Normal', u'CreateTimeStamp': 1665480995000, u'LoadBalancerStatus': u'active', u'InternetChargeType': u'4', u'VpcId': u'vpc-bp1y7ysljuhh0mgz', u'RegionIdAlias': u'cn-hangzhou', u'Tags': {u'Tag': [{u'TagKey': u'ack.aliyun.com', u'TagValue': u'cc5bc5d2683a44ae9b1a8eb816'}]}, u'RegionId': u'cn-hangzhou', u'ResourceGroupId': u'rg-acfmxrtftvdlxuq', u'InstanceChargeType': u'PayBySpec', u'VSwitchId': u'vsw-bp19iupfrliiqgwjnnxoc', u'InternetChargeTypeAlias': u'paybytraffic', u'Address': u'192.168.33.000', u'AddressIPVersion': u'ipv4', u'LoadBalancerSpec': u'slb.s2.small', u'LoadBalancerId': u'lb-bp1wjgyg379yn', u'AddressType': u'intranet', u'MasterZoneId': u'cn-hangzhou-k', u'DeleteProtection': u'on', u'PayType': u'PayOnDemand', u'SlaveZoneId': u'cn-hangzhou-j', u'Bandwidth': 5120, u'SpecBpsFlag': False, u'ModificationProtectionStatus': u'ConsoleProtection', u'NetworkType': u'vpc', u'LoadBalancerName': u'ManagedK8SSlbIntranet-cc5bc5d2683a44ae9b1a8eb80', u'CreateTime': u'2022-10-11T17:36Z'}]}, u'TotalCount': 2, u'PageNumber': 1, u'RequestId': u'034B0F9E-87DE-59F4-9406-456B.', u'PageSize': 2}
{“data”: [{“{#PROJECT}”: “acs_slb_dashboard”, “{#INSTANCE_NANME}”: “a2d1f65d7fb1d468197ad23b”, “{#INSTANCE}”: “lb-bp1py79ytly0dlt”}, {“{#PROJECT}”: “acs_slb_dashboard”, “{#INSTANCE_NANME}”: “ManagedK8SSlbIntranet-cc5bc5d2683a44ae9b1a8eb”, “{#INSTANCE}”: “lb-bp1wjgyg379ynw61”}]}
對比shell,Python的json模塊在數據處理方面,其腳本的可讀性、簡潔性都會有所提升,并且處理過程也無需花費過多的事件寫處理過程的代碼,能有效提升運維人員的工作效率。
本期的分享內容到這就結束了。大家好,我是樂樂,專注IT運維技術研究與分享,關注我,學習更多zabbix使用技巧。同時歡迎小伙伴們到尊龍時凱社區留言提問或者加入我們zabbix技術答疑QQ群617295020,共同探討zabbix技術問題。
Zabbix與尊龍時凱監控對比分析專題系列文章的第六篇——圖形圖表篇,包括二者在模板圖形及模板表格等功能的對比分析。
View detailsZabbix和Prometheus都是非常流行的監控系統。它們有許多相似之處,但也有一些不同之處。以下是Zabbix和Prometheus監控對比的一些關鍵點:
View detailsZabbix7.0 alpha版本、beta版本已經陸續發布,Zabbix7.0 LTS版本發布時間也越來越近。據了解,新的版本在性能提升、架構優化等新功能方面有非常亮眼的表現,...
View details尊龍時凱及時發現問題,真正意義上實現了集約化管理。通過運營平臺實現運維業務指標數據收集,并總結相關運維經驗,實現基礎監控與各功能模塊相互融合,為自動化運維...
View details