itnirvana
Goto Top

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

Content-Key: 6575689416

Url: https://administrator.de/contentid/6575689416

Printed on: May 5, 2024 at 11:05 o'clock

Member: itnirvana
itnirvana Mar 30, 2023 at 16:55:10 (UTC)
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
Member: itnirvana
itnirvana Mar 30, 2023 at 16:58:03 (UTC)
Goto Top
Member: itnirvana
Solution itnirvana Mar 30, 2023 at 17:31:25 (UTC)
Goto Top
Es funktioniert nun !
ICON="&#x2705;"