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")