Aktionen

Zabbix Anzahl Trigger nach priority ermitteln als Item

Aus znilwiki

Quick & Dirty Skript mit welchen ich mir die Anzahl der jeweilig ausgelösten Trigger hole.
Sind nur die der letzten 72h die noch nicht bestätigt wurden.
Pfade etc. müsst Ihr Anpassen, Template muss erstellt werden.

#!/bin/bash
zbxusername="apiuser"
zbxpassword="password4apiuser"
zbxsince=$(date +%s)
zbxsince=$((zbxsince-259200))
echo "zbxsince: $zbxsince"

zbxprio0=0
zbxprio1=0
zbxprio2=0
zbxprio3=0
zbxprio4=0
zbxprio5=0

# Anmelden
zabbixauth=$(curl -s -X POST -H "Content-Type:application/json"  -d '{"jsonrpc": "2.0","method":"user.login","params":{"user":"'$zbxusername'","password":"'$zbxpassword'"},"id":42}' http://127.0.0.1/api_jsonrpc.php | cut -d'"' -f8)
#echo $zabbixauth

# Trigger Holen
tempvar=$(curl -s -X POST -H "Content-Type:application/json"  -d'{"jsonrpc": "2.0","method": "trigger.get","params":{"lastChangeSince":"'$zbxsince'","expandDescription":1,"withUnacknowledgedEvents":1,"output":["triggerid","description","lastchange","priority"], "filter":{"value":1},"sortfield":"priority","sortorder":"DESC"},"auth": "'$zabbixauth'","id":42}' http://127.0.0.1/api_jsonrpc.php)

#Abmelden
temp2=$(curl -s -X POST -H "Content-Type:application/json"  -d '{"jsonrpc": "2.0","method": "user.logout","params": [],"id": 42, "auth": "'$zabbixauth'"}' http://127.0.0.1/api_jsonrpc.php)

# Trigger nach Prio zählen
declare -a json_array
json_array=(${tempvar//\"/ })
for (( i=0; i < ${#json_array[*]}; i++ )); do
    #echo ${json_array[$i]}
    if [ "${json_array[$i]:0:8}" = "priority" ]; then
        i=$((i + 2))
        case "${json_array[$i]}" in
            0) ((zbxprio0++))
               ;;
            1) ((zbxprio1++))
               ;;
            2) ((zbxprio2++))
               ;;
            3) ((zbxprio3++))
               ;;
            4) ((zbxprio4++))
               ;;
            5) ((zbxprio5++))
               ;;
        esac
    fi
done

#Ausgabe als Text + Senden an den Zabbix-Server
echo "Not Classified: $zbxprio0"
/usr/local/bin/zabbix_sender -z 127.0.0.1 -s DEFCON -k TriggerNotclassified -o $zbxprio0
echo "Information...: $zbxprio1"
/usr/local/bin/zabbix_sender -z 127.0.0.1 -s DEFCON -k TriggerInformation -o $zbxprio1
echo "Warning.......: $zbxprio2"
/usr/local/bin/zabbix_sender -z 127.0.0.1 -s DEFCON -k TriggerWarning -o $zbxprio2
echo "Average.......: $zbxprio3"
/usr/local/bin/zabbix_sender -z 127.0.0.1 -s DEFCON -k TriggerAverage -o $zbxprio3
echo "High..........: $zbxprio4"
/usr/local/bin/zabbix_sender -z 127.0.0.1 -s DEFCON -k TriggerHigh -o $zbxprio4
echo "Disaster......: $zbxprio5"
/usr/local/bin/zabbix_sender -z 127.0.0.1 -s DEFCON -k TriggerDisaster -o $zbxprio5

Loading comments...