Скрипт для мониторинга падения приложения и его перезапуска
Если приложение работает без виртуального каталога (правили файл конфигурации вручную), необходимо править и файл wskstype
.
Файл расположен по пути:
/opt/wsks-6.0.9_443/www/html/wsks_54430/wskstype
Правки файла:
virt_catalog=/
1. Получите ключ
Этот пункт можно пропустить, если нет необходимости рассылки сообщений.
В Telegram запустите бота @alarmer_bot
и получите ключ с помощью команды
/key - to get current API-KEY.
2. Скачайте и установите права на bash-скрипт
wget -O /opt/wsks-monitoring.sh https://keysystems.ru/files/web/Scripts/wsks/wsks-monitoring.sh --no-check-certificate
chown root:root /opt/wsks-monitoring.sh
chmod 770 /opt/wsks-monitoring.sh
3. Отредактируйте и сохраните bash-скрипт в редакторе nano
В ОС из РРПО чаще предустановлена более удобная mcedit.
nano /opt/wsks-monitoring.sh
###
### Мониторинг WEB-Сервер-КС
###
### Copyright (c) 2024, ООО Кейсистемс
###
### Версия 20240820
###
### Настройка параметров
cont_path="/opt/wsks-6.0.9_443" # расположение контейнера и приложений
web_port="443" # порт web-сервера. Если пустое значение, то мониторятся kestrel-порты
web_SSL="Yes" # Yes/No, SSL web-сервер использует или нет
exclude_virts="" # указанные вирт.каталоги не мониторить, указывайте через знак ":"
check_count=10 # количество попыток проверки доступности приложения (одна попытка 1 сек)
try_restart="Yes" # Yes/No пытаться перезапустить приложение, если не запущено обновление
message_title="Сервер server1" # заголовок сообщений в telegram
botkey="" # ключи @alarmer_bot через знак ":", если значение пустое, то сообщения в telegram не отправляются
log_size=30 # размер лога в Мб, хранится две части
success_code="200:302" # код ответа успешного HTTP-запроса через знак ":" (к примеру "200:302" или "200")
4. Настройте расписание запуска скрипта мониторинга
Задача должна выполняться от имени root.
В данном примере Cron будет выполнять запуск bash-скрипта /opt/wsks-monitoring.sh каждые 5 минут.
#минута час день месяц день_недели root /путь/к/исполняемому/файлу
*/5 * * * * bash /opt/wsks-monitoring.sh
5. Описание лог-файла
Часть №1 показывает мониторинг по web-порту (параметр
web_port="443"
, т.е. непустое значение).Часть №2 показывает мониторинг по kestrel-портам (параметр
web_port=""
, т.е. пустое значение).Такой мониторинг подходит для контейнеров без http-сервера (-ws "no_http").
Лог файл располагается в одном каталоге со скриптом и имеет имя «wsks-monitoring.sh.log».
- Столбец «Зап» (запуск) показывает, была ли попытка запуска (+) упавшего приложения.
- Столбец «Ответ» может принимать следующие значения:
- ОК - приложение работает;
- ПРОПУСК - приложение не мониторится;
- ОШИБКА - приложение не работает.
- Столбец «Код» - содержит код состояния ответа HTTP (200 - успех).
Сообщения об ошибке отправляются в Telegram только если столбец «Ответ» равен «ОШИБКА»". На скриншоте уведомление уйдет только относительно приложения на Kestrel-порту 54431, а по 54430 после попытки перезапуска приложение в статусе «ОК».