Advertising:
Aplica dependencia de triggers vía API por Nombre
cd /usr/lib/zabbix/externalscripts
python3.9 -m venv pyzabbix cd pyzabbix source bin/activate python -m pip install --upgrade pip pip install pyzabbix
vi settriggerdependency.py
#!/usr/lib/zabbix/externalscripts/pyzabbix/bin/python
import sys
import os
import logging
import argparse
from pyzabbix import ZabbixAPI
#stream = logging.StreamHandler(sys.stdout)
#stream.setLevel(logging.DEBUG)
#log = logging.getLogger('pyzabbix')
#log.addHandler(stream)
#log.setLevel(logging.DEBUG)
zapi = ZabbixAPI("http://192.168.1.1/zabbix/api_jsonrpc.php")
zapi.login(api_token='{API-TOKEN}')
def getTriggerId(host_name,trigger_desc):
triggers = zapi.trigger.get(filter={"host": host_name, "value": 1}, search={"description": "*"+trigger_desc+"*"}, output=["triggerid","description","value","priority"], searchWildcardsEnabled=True,selectHosts=["host","hostid"])
return(triggers[0]['triggerid'])
def settriggerDependecy(hijo,padre):
triggers = zapi.trigger.update(triggerid=hijo,dependencies=[{"triggerid":padre}])
parser = argparse.ArgumentParser("settriggerdependency.py")
parser.add_argument('-n', '--hostname', help="Nombre del Host en Zabbix", type=str)
parser.add_argument('-a', '--hijo', help="Descripcion del trigger HIJO (HIJO Depende del PADRE)", type=str)
parser.add_argument('-b', '--padre', help="Descripcion del trigger PADRE (HIJO Depende del PADRE)", type=str)
args = parser.parse_args()
if args.hostname and args.padre and args.hijo:
padre=getTriggerId(args.hostname,args.padre)
hijo=getTriggerId(args.hostname,args.hijo)
settriggerDependecy(hijo,padre)
else:
print(parser.print_help())
/usr/lib/zabbix/externalscripts/pyzabbix/settriggerdependency.py -n "host21" -a "No iDrac data for" -b "Is unavailable by ICMP"