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


Kommentar hinzufügen
znilwiki freut sich über alle Kommentare. Sofern du nicht anonym bleiben möchtest, trage deinen Namen oder deine Email-Adresse ein oder melde dich an. Du kannst das Feld auch einfach leer lassen. Bei einem Kommentar wird deine IP-Adresse zusammen mit dem Text, den angegebenen Namen bzw. der Email-Adresse in der Datenbank für die Kommentare dauerhaft gespeichert. Genaueres kannst du hier nachlesen: Datenschutzerklärung