亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在 Python 和 Zabbix API 中獲取問題描述

在 Python 和 Zabbix API 中獲取問題描述

Smart貓小萌 2023-04-25 16:39:38
我使用 trigger.get 方法來獲取我的 Zabbix 監控中的所有問題:trigger = zapi.trigger.get (triggerids=problem['objectid'], selectHosts='extend')它工作正常。但是我得到了回應,例如:'description': '{HOST.NAME} ( {ITEM.VALUE1} ) Lack of free swap space'或者'description': 'DBM {HOST.NAME} ORA_ERR_DETAILS: {ITEM.VALUE1}'現在我想獲得價值“ ITEM.VALUE1 ”他應該使用什么方法以及如何使用?以更具描述性的方式:我的程序返回值:'{HOST.NAME} ( {ITEM.VALUE1} ) Lack of free swap space'我可以獲取“{HOST.NAME}”,但無法獲取“{ITEM.VALUE1}”。我想擁有:Host005.domain.com ( 42.52 % ) Lack of free swap space
查看完整描述

2 回答

?
揚帆大魚

TA貢獻1799條經驗 獲得超9個贊

一個運行良好的代碼:


#!/usr/bin/env python

# -*- coding: utf-8 -*-


"""

Get history values for specific items in a time range:


# ./getItemHistoryByName.py -H some-host  -I "ICMP response time" -f "26/6/2018 16:00" -t "27/6/2018 23:59"

ItemID: 77013 - Item: ICMP response time - Key: icmppingsec

1530021641 26/06/2018 16:00:41 Value: 0.1042

1530021701 26/06/2018 16:01:41 Value: 0.0993

1530021762 26/06/2018 16:02:42 Value: 0.1024

1530021822 26/06/2018 16:03:42 Value: 0.0966

[cut]

"""


from zabbix.api import ZabbixAPI

import sys, argparse

import time

import datetime



zabbixServer    = 'http://yourserver/zabbix/'

zabbixUser      = 'someuser'

zabbixPass      = 'somepass'



def main(argv):

    parser = argparse.ArgumentParser()

    parser.add_argument('-H', required=True, metavar='Hostname')

    parser.add_argument('-I', required=True, metavar='Item Name')

    parser.add_argument('-f', required=True, metavar='From Timestamp')

    parser.add_argument('-t', required=True, metavar='Till Timestamp')


    args = parser.parse_args()



    zapi = ZabbixAPI(url=zabbixServer, user=zabbixUser, password=zabbixPass)


    fromTimestamp = time.mktime(datetime.datetime.strptime(args.f, "%d/%m/%Y %H:%M").timetuple())

    tillTimestamp = time.mktime(datetime.datetime.strptime(args.t, "%d/%m/%Y %H:%M").timetuple())



    f  = {  'name' : args.I  }

    items = zapi.item.get(filter=f, host=args.H, output='extend' )


    for item in items:

        print "ItemID: {} - Item: {} - Key: {}".format(item['itemid'], item['name'], item['key_'])


        values = zapi.history.get(itemids=item['itemid'], time_from=fromTimestamp, time_till=tillTimestamp, history=item['value_type'])


        for historyValue in values:

            currentDate = datetime.datetime.fromtimestamp(int(historyValue['clock'])).strftime('%d/%m/%Y %H:%M:%S')


            print "{} {} Value: {}".format(historyValue['clock'], currentDate, historyValue['value'])


if __name__ == "__main__":

   main(sys.argv[1:])



查看完整回答
反對 回復 2023-04-25
?
達令說

TA貢獻1821條經驗 獲得超6個贊

您可以像這樣指定您需要的字段

answer = z.do_request('apiinfo.version')

以 JSON 格式回復:

{u'jsonrpc': u'2.0', u'result': u'3.0.2', u'id': u'1'}

通過 python 腳本回復:

print "Version:",answer['result']
Version: 3.0.2


查看完整回答
反對 回復 2023-04-25
  • 2 回答
  • 0 關注
  • 153 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號