From c6156575c83d002d28cad0ee7ddd3453de27694e Mon Sep 17 00:00:00 2001 From: Dominik Dzienia Date: Wed, 17 Jan 2024 08:48:38 +0000 Subject: [PATCH] Better watchdog logs --- CHANGELOG.md | 6 ++++++ install.sh | 24 ++++++++++++++++++++---- package.json | 2 +- src/lib.sh | 18 +++++++++++++++++- src/setup.sh | 2 +- updated | 2 +- 6 files changed, 46 insertions(+), 8 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index fb9cbb5..9990d11 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,12 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [1.8.1] - 2024-01-17 + +### Changed + +- Added more detailed logs in case of watchdog failure + ## [1.8.0] - 2024-01-07 ### Added diff --git a/install.sh b/install.sh index 8c688f3..9797b1d 100644 --- a/install.sh +++ b/install.sh @@ -1,6 +1,6 @@ #!/bin/bash -### version: 1.8.0 +### version: 1.8.1 # ~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.# # Nightscout Mikr.us setup script # @@ -34,6 +34,7 @@ RESERVED_DB_FILE=/srv/nightscout/data/reserved.db WATCHDOG_STATUS_FILE=/srv/nightscout/data/watchdog_status WATCHDOG_TIME_FILE=/srv/nightscout/data/watchdog_time WATCHDOG_LOG_FILE=/srv/nightscout/data/watchdog.log +WATCHDOG_FAILURES_FILE=/srv/nightscout/data/watchdog-failures.log WATCHDOG_CRON_LOG=/srv/nightscout/data/watchdog-cron.log UPDATE_CHANNEL_FILE=/srv/nightscout/data/update_channel MONGO_DB_DIR=/srv/nightscout/data/mongodb @@ -41,8 +42,8 @@ TOOL_FILE=/srv/nightscout/tools/nightscout-tool TOOL_LINK=/usr/bin/nightscout-tool UPDATES_DIR=/srv/nightscout/updates UPDATE_CHANNEL=master -SCRIPT_VERSION="1.8.0" #auto-update -SCRIPT_BUILD_TIME="2024.01.07" #auto-update +SCRIPT_VERSION="1.8.1" #auto-update +SCRIPT_BUILD_TIME="2024.01.17" #auto-update #======================================= # SETUP @@ -1599,7 +1600,7 @@ watchdog_check() { local domainLen=${#domain} if ((domainLen > 15)); then - local html=$(curl -Lks "$domain") + local html=$(curl -Lksi "$domain") WATCHDOG_STATUS="detection_failed" @@ -1623,6 +1624,15 @@ watchdog_check() { WATCHDOG_STATUS="restarting" fi + if [ "$WATCHDOG_STATUS" = "detection_failed" ]; then + { + echo "----------------------------------------------------------------" + echo "[$WATCHDOG_TIME] Unknown server failure:" + echo "HTTP DUMP:" + echo "$html" + } >>"$WATCHDOG_FAILURES_FILE" + fi + else WATCHDOG_STATUS="domain_failed" fi @@ -1646,6 +1656,12 @@ watchdog_check() { fi # fi + FAILSIZE=$(wc -l <$WATCHDOG_FAILURES_FILE) + if [ "$FAILSIZE" -gt 10000 ]; then + tail -10000 $WATCHDOG_FAILURES_FILE >"$WATCHDOG_FAILURES_FILE.tmp" + mv -f "$WATCHDOG_FAILURES_FILE.tmp" "$WATCHDOG_FAILURES_FILE" + fi + echo "$WATCHDOG_TIME" >$WATCHDOG_TIME_FILE echo "$WATCHDOG_STATUS" >$WATCHDOG_STATUS_FILE diff --git a/package.json b/package.json index 778e5d1..a5a5ce4 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@dlvoy/ns-installer-mikrus", - "version": "1.8.0", + "version": "1.8.1", "description": "Nightscout installer for mikr.us VPS", "main": "index.js", "scripts": { diff --git a/src/lib.sh b/src/lib.sh index dca70f5..21c9e08 100644 --- a/src/lib.sh +++ b/src/lib.sh @@ -18,6 +18,7 @@ RESERVED_DB_FILE=/srv/nightscout/data/reserved.db WATCHDOG_STATUS_FILE=/srv/nightscout/data/watchdog_status WATCHDOG_TIME_FILE=/srv/nightscout/data/watchdog_time WATCHDOG_LOG_FILE=/srv/nightscout/data/watchdog.log +WATCHDOG_FAILURES_FILE=/srv/nightscout/data/watchdog-failures.log WATCHDOG_CRON_LOG=/srv/nightscout/data/watchdog-cron.log UPDATE_CHANNEL_FILE=/srv/nightscout/data/update_channel MONGO_DB_DIR=/srv/nightscout/data/mongodb @@ -1583,7 +1584,7 @@ watchdog_check() { local domainLen=${#domain} if ((domainLen > 15)); then - local html=$(curl -Lks "$domain") + local html=$(curl -Lksi "$domain") WATCHDOG_STATUS="detection_failed" @@ -1607,6 +1608,15 @@ watchdog_check() { WATCHDOG_STATUS="restarting" fi + if [ "$WATCHDOG_STATUS" = "detection_failed" ]; then + { + echo "----------------------------------------------------------------" + echo "[$WATCHDOG_TIME] Unknown server failure:" + echo "HTTP DUMP:" + echo "$html" + } >>"$WATCHDOG_FAILURES_FILE" + fi + else WATCHDOG_STATUS="domain_failed" fi @@ -1630,6 +1640,12 @@ watchdog_check() { fi # fi + FAILSIZE=$(wc -l <$WATCHDOG_FAILURES_FILE) + if [ "$FAILSIZE" -gt 10000 ]; then + tail -10000 $WATCHDOG_FAILURES_FILE >"$WATCHDOG_FAILURES_FILE.tmp" + mv -f "$WATCHDOG_FAILURES_FILE.tmp" "$WATCHDOG_FAILURES_FILE" + fi + echo "$WATCHDOG_TIME" >$WATCHDOG_TIME_FILE echo "$WATCHDOG_STATUS" >$WATCHDOG_STATUS_FILE diff --git a/src/setup.sh b/src/setup.sh index 26783a9..1574b02 100755 --- a/src/setup.sh +++ b/src/setup.sh @@ -1,6 +1,6 @@ #!/bin/bash -### version: 1.8.0 +### version: 1.8.1 # ~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.# # Nightscout Mikr.us setup script # diff --git a/updated b/updated index ff41ff3..dafd8f1 100644 --- a/updated +++ b/updated @@ -1 +1 @@ -2024-01-07T18:29:57.941Z \ No newline at end of file +2024-01-17T08:47:45.288Z \ No newline at end of file