43 lines
1.2 KiB
Python
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")
|