itnirvana

Bash Script das per Webhook in Teams notifiziert mit Buttons "Icons" notifizieren

Hallo zusammen,

ich habe ein Script das früher in Slack Server Benachrichtigungen schrieb für Teams im Nagios angepasst

#!/bin/bash

this_dir=$(cd `dirname $0`;pwd)
. $this_dir/teams.conf

#================================
# Functions
#================================
function urlEncode(){
  cat | sed -e 's!XXX_OP5_LINK_XXX!'$op5Url'!' | xxd -plain | tr -d '\n' | sed 's/\(..\)/%\1/g'  
}

function replaceTags(){
  cat | sed -e 's!XXX_OP5_LINK_XXX!'$op5Url'!g' \  
            -e 's!XXX_HOSTNAME_XXX!'$NAGIOS_HOSTNAME'!g' \  
            -e 's!XXX_SERVICE_XXX!'"$NAGIOS_SERVICEDISPLAYNAME"'!g' \  
            -e 's!XXX_SERVICE_OUTPUT_XXX!'"$NAGIOS_SERVICEOUTPUT"'!g'  
}

#================================
# MAIN
#================================

if [ -n "$2" ]  
then
  NAGIOS_SERVICESTATE="$1"  
  NAGIOS_HOSTNAME="$2"  
  NAGIOS_SERVICEDISPLAYNAME="$3"  
  NAGIOS_SERVICEOUTPUT=$( echo "$4" | sed -e 's/!//g')  
  [ -z "$NAGIOS_SERVICEOUTPUT" ] && NAGIOS_SERVIEOUTPUT="No output"  
else
  NAGIOS_SERVICESTATE=2
  NAGIOS_HOSTNAME=ent-vl002dmz-b
  NAGIOS_SERVICEDISPLAYNAME="L0 lnx - Disk usage /opt"  
  NAGIOS_SERVICEOUTPUT="Arne dase"  
  SLACK_MESSAGE="Debug (ignore): $1"  
fi

case $NAGIOS_SERVICESTATE in
  0)
    ICON=":white_check_mark:"  
    curServiceState=OK
    ;;
  1)
    ICON=":warning:"  
    curServiceState=WARNING
    ;;
  2)
    ICON=":exclamation:"  
    curServiceState=CRITICAL
    ;;
  3)
    ICON=":question:"  
    curServiceState=UNKNOWN
    ;;
  *)
    ICON=":white_medium_square:"  
    curServiceState=NOTHING
    ;;
esac

if [ -n "$4" ]  
then
  SLACK_MESSAGE="OP5 issue Host: $NAGIOS_HOSTNAME - $NAGIOS_SERVICEDISPLAYNAME - $curServiceState"  
fi

#ICON=":white_check_mark:" 
if  [[ ${SLACK_MESSAGE} =~ "Service check execution time" ]]; then  
  exit
fi

encodedServiceDisplayName=$(echo -n $NAGIOS_SERVICEDISPLAYNAME | urlEncode)
op5Url="https://${OP5_HOSTNAME}/monitor/index.php/extinfo/details?host=${NAGIOS_HOSTNAME}\&service=${encodedServiceDisplayName}"  

[ -n "$debug" ] && cat $this_dir/template.jiraDescription.txt | replaceTags  

jiraTicketDescription=$(cat $this_dir/template.jiraDescription.txt | replaceTags | urlEncode)
jiraSummary=$(echo "OP5: $NAGIOS_HOSTNAME - $NAGIOS_SERVICEDISPLAYNAME - $curServiceState" | urlEncode)  

for SLACK_URL in $SLACK_URLsEmergency
do
  curl -X POST --data "{\"channel\": \"${SLACK_CHANNEL_EMERGENCY}\", \"username\": \"${SLACK_USERNAME}\", \"text\": \"${ICON} ${SLACK_MESSAGE} <https://${op5Host}/monitor/index.php/extinfo/details?host=${NAGIOS_HOSTNAME}|See Nagios> \"}" "$SLACK_URL"  

cat<<EOT
EOT
done

Nun verwendet er immer Icon für Bilder im Slack

ICON=":warning:"  
Wie mache ich nun hier in dieser Zeile ein Bild von Teams rein ?

Es müssten eben diese Zeilen mit Bild sein. Soe wie Status ok ein grüner Haken !

screenshot 2023-03-30 154915

case $NAGIOS_SERVICESTATE in
  0)
    ICON=":white_check_mark:"  
    curServiceState=OK
    ;;
  1)
    ICON=":warning:"  
    curServiceState=WARNING
    ;;
  2)
    ICON=":exclamation:"  
    curServiceState=CRITICAL
    ;;
  3)
    ICON=":question:"  
    curServiceState=UNKNOWN
    ;;
  *)
    ICON=":white_medium_square:"  
    curServiceState=NOTHING
    ;;
esac


Gruss
Paul
Auf Facebook teilen
Auf X (Twitter) teilen
Auf Reddit teilen
Auf Linkedin teilen

Content-ID: 6575689416

Url: https://administrator.de/forum/bash-script-das-per-webhook-in-teams-notifiziert-mit-buttons-icons-notifizieren-6575689416.html

Ausgedruckt am: 11.05.2025 um 05:05 Uhr

itnirvana
itnirvana 30.03.2023 um 18:55:10 Uhr
Goto Top
Ich habe nun rausgefunden. So kann ich ein EMail an unseren Webhook senden

curl.exe -H "Content-Type:application/json" -d "{'Text':'&#x1f602;'}" https://sxxxxxxxxxxxxxxxxxunserwebhoob2a1df6bb17cc@364e5b87-c1c7-420d-9bee-c35d19b557a1/IncomingWebhook/bc3f669aed6d4d70ad221443485c3b0b/0091eb96-6c0c-4594-96df-f1222fe4a446  

Frage ist nun wie ich einbinde

Unicode habe ja hier : https://unicode.org/emoji/charts/full-emoji-list.html#1f605
itnirvana
itnirvana 30.03.2023 um 18:58:03 Uhr
Goto Top
itnirvana
Lösung itnirvana 30.03.2023 um 19:31:25 Uhr
Goto Top
Es funktioniert nun !
ICON="&#x2705;"