monit/etc/matrix.sh
2024-02-18 12:48:18 +01:00

30 lines
1.1 KiB
Bash
Executable File

#!/bin/sh
baseurl="https://matrix.br0tkasten.de"
roomId="!30E9BL9QJp3BJqWp:matrix.br0tkasten.de"
message="${MONIT_HOST} (${MONIT_SERVICE}) ${MONIT_EVENT}: ${MONIT_DESCRIPTION}"
if [ "x$message" = "x" ]
then
exit 1
fi
# login
token=$(curl --connect-timeout 5 -m 10 -s $baseurl/_matrix/client/r0/login -H 'Accept: application/json' -X POST -d @/etc/monit/matrix_login.json | jq -r .access_token)
# send message
msgId=$(date +%s%N)
#curl --connect-timeout 5 -m 10 -s -XPUT -H "Content-Type: application/json;charset=utf-8" -d "{ \"msgtype\": \"m.text\", \"body\": \"$message\" }" "$baseurl/_matrix/client/r0/rooms/$roomId/send/m.room.message/$msgId?access_token=$token" >/dev/null
curl --connect-timeout 5 -m 10 -s -XPUT -H "Content-Type: application/json;charset=utf-8" "$baseurl/_matrix/client/r0/rooms/$roomId/send/m.room.message/$msgId?access_token=$token" --data-binary @- << EOF >/dev/null
{
"msgtype": "m.text",
"body": "$message"
}
EOF
# logout
curl --connect-timeout 5 -m 10 -s $baseurl/_matrix/client/r0/logout?access_token=$token -X POST >/dev/null
logger "alert: $message"