Aktionen

Zabbix Anzahl Trigger nach priority ermitteln als Item

Aus znilwiki

Version vom 29. April 2019, 15:31 Uhr von BLinz (Diskussion | Beiträge) (Die Seite wurde neu angelegt: „Quick & Dirty Skript mit welchen ich mir die Anzahl der jeweilig ausgelösten Trigger hole.<br> Sind nur die der letzten 72h die noch nicht bestätigt wurden.<…“)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)

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...