35 lines
1.3 KiB
Bash
35 lines
1.3 KiB
Bash
#!/bin/bash
|
|
|
|
# Configuration
|
|
HEALTH_URL="http://10.1.30.1:8080/health"
|
|
NTFY_INSTANCE="https://ntfy.lunivity.com"
|
|
NTFY_TOPIC="$NTFY_INSTANCE/mytopic"
|
|
CONFIGURABLE_MESSAGE="Something went wrong with the health check."
|
|
LOG_FILE="health_check.log"
|
|
|
|
# Function to send push notification
|
|
send_notification() {
|
|
local message="$1"
|
|
local priority="$2"
|
|
local tags="$3"
|
|
curl -H "Title: Health Check Failure" \
|
|
-H "Priority: $priority" \
|
|
-H "Tags: $tags" \
|
|
-d "$message" \
|
|
"$NTFY_TOPIC"
|
|
if [ $? -ne 0 ]; then
|
|
echo "[$(date +"%Y-%m-%d %H:%M:%S")] - Failed to send push notification" >> "$LOG_FILE"
|
|
fi
|
|
}
|
|
|
|
# Perform curl request
|
|
HEALTH_RESPONSE=$(curl -s -w "%{http_code}" "$HEALTH_URL")
|
|
HTTP_CODE=$(echo "$HEALTH_RESPONSE" | tail -n1)
|
|
CONTENT=$(echo "$HEALTH_RESPONSE" | head -n -1)
|
|
if [ "$HTTP_CODE" == "200" ] && [ "$CONTENT" == "OK" ]; then
|
|
echo "[$(date +"%Y-%m-%d %H:%M:%S")] - Successful response from health check at '$HEALTH_URL' - Response: 'OK'" >> "$LOG_FILE"
|
|
else
|
|
echo "[$(date +"%Y-%m-%d %H:%M:%S")] - Failed response from health check at '$HEALTH_URL' - HTTP Code: '$HTTP_CODE' - Content: '$CONTENT'" >> "$LOG_FILE"
|
|
echo "[$(date +"%Y-%m-%d %H:%M:%S")] - Sending a push notification..." >> "$LOG_FILE"
|
|
send_notification "$CONFIGURABLE_MESSAGE" "urgent" "warning"
|
|
fi
|