Описание
Для проверки работоспособности Личного кабинета можно воспользоваться скриптом, расположенном в директории /usr/lib/eltex-wifi-cab/check_wifi-cab.sh.
В случае, если ЛК запущен в docker-контейнере, то скрипт необходимо из него выгрузить с помощью команды:
$ docker cp имя_контейнера:/usr/lib/eltex-wifi-cab/check_wifi-cab.sh ./check_wifi-cab.sh
Если сервис запущен, то имя контейнера можно узнать с помощью команды docker ps
. Если сервис не запущен, то можно создать экземпляр контейнера с помощью команды docker-compose create
. В таком случае команда запускается с указанным при создании контейнера именем.
После извлечения скрипта из контейнера его необходимо сделать исполняемым с помощью команды:
$ sudo chmod +x ./check_wifi-cab.sh
Скрипт выполняет несколько http-запросов версии пакета eltex-wifi-cab по адресу, указанному в параметрах запуска скрипта. В случае, если скрипт получает три ошибки подряд, то он пытается выполнить перезапуск сервиса или docker-контейнера Личного кабинета. Логи результатов проверки и перезапуска записываются в файл в директории /var/log/eltex-wifi-cab/check/. Запуск скрипта возможен только с привилегиями суперпользователя.
Параметры
Параметр | Значение по умолчанию | Описание |
---|
CABINET_HOST | localhost | IP-адрес сервиса ЛК |
CABINET_PORT | 8083 | Порт сервиса ЛК |
CABINET_SERVICE | eltex-wifi-cab | Имя сервиса, если ЛК установлен из deb-пакета |
CABINET_DOCKER_CONTAINER_NAME | eltex-wifi-cab | Имя докер контейнера, если ЛК запущен в контейнере |
Запуск скрипта
Пример запуска скрипта c параметрами по умолчанию:
$ sudo /usr/lib/eltex-wifi-cab/check_wifi-cab.sh
Cabinet is working
Пример получаемых логов
$ sudo cat /var/log/eltex-wifi-cab/check/wifi-cab-check.27-11-2022.txt
----------------------------- (START) ------------------------------
27-11-2022 00:00:01: System information:
27-11-2022 00:00:01: Linux ubuntu 4.15.0-192-generic #203-Ubuntu SMP Wed Aug 10 17:40:03 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
27-11-2022 00:00:01: openjdk version "1.8.0_352"
OpenJDK Runtime Environment (build 1.8.0_352-8u352-ga-1~18.04-b08)
OpenJDK 64-Bit Server VM (build 25.352-b08, mixed mode)
27-11-2022 00:00:01: LoadAverage info
27-11-2022 00:00:01: 1min 5min 15min
27-11-2022 00:00:01: 0.26 0.26 0.20 2/1286 24737
27-11-2022 00:00:01: RAM MemFree: 168832 kB
Disk info
Disk Size Used Available Used % Mount
/dev/vda1 25G 9.6G 15G 40% /
tmpfs 3.9G 0 3.9G 0% /dev/shm
/dev/vda15 105M 8.9M 96M 9% /boot/efi
27-11-2022 00:00:01: eltex-wifi-cab status: ● eltex-wifi-cab.service - Wi-Fi Customer Cab Service
Loaded: loaded (/usr/lib/systemd/system/eltex-wifi-cab.service; enabled; vendor preset: enabled)
Active: active (running) since Fri 2022-11-25 08:34:21 UTC; 1 day 15h ago
Main PID: 5648 (java)
Tasks: 63 (limit: 4915)
CGroup: /system.slice/eltex-wifi-cab.service
└─5648 /usr/bin/java -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/var/log/eltex-wifi-cab -XX:+UseG1GC -XX:+PrintGCDateStamps -XX:+PrintGCDetails -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=7 -XX:GCLogFileSize=5M -XX:+UseSt$
Nov 25 08:34:21 ubuntu systemd[1]: Started Wi-Fi Customer Cab Service.
Nov 25 08:34:24 ubuntu eltex-wifi-cab[5648]: . ____ _ __ _ _
Nov 25 08:34:24 ubuntu eltex-wifi-cab[5648]: /\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
Nov 25 08:34:24 ubuntu eltex-wifi-cab[5648]: ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
Nov 25 08:34:24 ubuntu eltex-wifi-cab[5648]: \\/ ___)| |_)| | | | | || (_| | ) ) ) )
Nov 25 08:34:24 ubuntu eltex-wifi-cab[5648]: ' |____| .__|_| |_|_| |_\__, | / / / /
Nov 25 08:34:24 ubuntu eltex-wifi-cab[5648]: =========|_|==============|___/=/_/_/_/
Nov 25 08:34:24 ubuntu eltex-wifi-cab[5648]: :: Spring Boot :: (v2.7.0)
27-11-2022 00:00:01: ports (8083) status:
tcp 0 0 127.0.0.1:51422 127.0.0.1:8083 TIME_WAIT -
tcp6 0 0 :::8083 :::* LISTEN 5648/java
27-11-2022: Cabinet is working
Добавление в cron
Существует возможность настроить периодический запуск скрипта с определенным интервалом времени. Для добавления скрипта в автозапуск по cron нужно выполнить следующую команду:
sudo -- sh -c '(crontab -l 2> /dev/null; echo "*/10 * * * * /usr/lib/eltex-wifi-cab/check_wifi-cab.sh > /dev/null 2>&1") | crontab'
В данном примере автозапуск скрипта будет происходить каждые 10 минут.
Проверить правильность добавления задачи в cron можно командой:
$ sudo crontab -l
*/10 * * * * /usr/lib/eltex-wifi-cab/check_wifi-cab.sh > /dev/null 2>&1