Skip to content

Скрипт для мониторинга падения приложения и его перезапуска

Если приложение работает без виртуального каталога (правили файл конфигурации вручную), необходимо править и файл wskstype.

Файл расположен по пути:

/opt/wsks-6.0.9_443/www/html/wsks_54430/wskstype

Правки файла:

virt_catalog=/

1. Получите ключ

Этот пункт можно пропустить, если нет необходимости рассылки сообщений.

В Telegram запустите бота @alarmer_bot и получите ключ с помощью команды

/key - to get current API-KEY.

alarmer-bot

2. Скачайте и установите права на bash-скрипт

bash
wget -O /opt/wsks-monitoring.sh https://keysystems.ru/files/web/Scripts/wsks/wsks-monitoring.sh
chown root:root /opt/wsks-monitoring.sh 
chmod 770 /opt/wsks-monitoring.sh

3. Отредактируйте и сохраните bash-скрипт в редакторе nano

В ОС из РРПО чаще предустановлена более удобная mcedit.

bash
nano /opt/wsks-monitoring.sh
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 минут.

wsks-monitoring.sh
#минута час день месяц день_недели 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».

  1. Столбец «Зап» (запуск) показывает, была ли попытка запуска (+) упавшего приложения.
  2. Столбец «Ответ» может принимать следующие значения:
  • ОК - приложение работает;
  • ПРОПУСК - приложение не мониторится;
  • ОШИБКА - приложение не работает.
  1. Столбец «Код» - содержит код состояния ответа HTTP (200 - успех).

info

Сообщения об ошибке отправляются в Telegram только если столбец «Ответ» равен «ОШИБКА». На скриншоте уведомление уйдет только относительно приложения на Kestrel-порту 54431, а по 54430 после попытки перезапуска приложение в статусе «ОК».

© 2003—2025 ООО «Кейсистемс». Все права защищены.