zbx-tg-bot/zabbix/zabbix_api.py

43 lines
1.2 KiB
Python

import logging as log
from zabbix_utils import ZabbixAPI
from config import conf
def get_active_problems() -> dict:
api = ZabbixAPI(url=conf.zabbix.url, token=conf.zabbix.token)
try:
problems = api.problem.get(
output=[
"eventid",
"suppressed",
"severity",
],
)
event_ids = []
for problem in problems:
if (
problem["suppressed"] == "0"
and int(problem["severity"]) >= conf.zabbix.min_severity
):
event_ids.append(problem["eventid"])
events = api.event.get(
selectHosts=["host"],
eventids=event_ids,
output=[
"eventid",
"name",
"severity",
],
)
events_dict = {"event_ids": []}
for event in events:
event["host"] = event.pop("hosts", None)[0]["host"]
events_dict[event["eventid"]] = event
events_dict["event_ids"].append(event["eventid"])
return events_dict
except:
log.warning("Get event from zabbix error")