WatchDog

WatchDog — это USB устройство, которое предназначено для отслеживания работоспособности операционной системы и ПК, когда те зависают, устройство выполняет автоматическую перезагрузку компьютера.
Сразу уточню, что наше устройство поддерживается в 32/64 разрядных ОС Windows 7/10. и в ОС Linux. Единственное, для ОС Linux, вам нужно будет разобраться, как установить управляющий скрипт в сборку Linux.
Итак, продолжим о функциональных возможностях самого WatchDog.
Принцип работы такой.
Когда устройство подключено к ПК, его постоянно опрашивает хост-программа. На своей стороне WatchDog отслеживает факт опрашивания. Если компьютер зависает, не имеет значение по программной или аппаратной причине, то устройство перестаёт получать пакеты с данными. Когда пакеты с данными перестают приходить, перестаёт обнуляться таймер. Он досчитывает до заданного ранее в хост-программе времени ожидания ответа ПК и, если работоспособность не восстановилась, за отсчитанное время, то аппаратно имитируется процедура нажатия на кнопку «RESET» компьютера. В результате, выполняется перезагрузка. Если же перезагрузка, по нажатию на кнопку «RESET», не произошла, то у более сложной модели WatchDog PWR, выполняется ещё и процедура перезагрузки по кнопке питания. Т.е. устройство, имитирует нажатие кнопки питания, после чего компьютер выключается. WatchDog PWR, имея на своём борту модуль независимого, кратковременного питания. Поэтому, через несколько секунд, после отключения питания ПК, WatchDog PWR его снова включает. Далее, выполняется рутинная процедура запуска компьютера и операционной системы. Также, из автозагрузки, по ссылке запускается и хост-программа, управляющую WatchDog-ом. Устройство начинает снова получать от хоста пакеты с данными, таким образом «понимает», что последний снова работает. В результате использования наших WatchDog-ов в графике добычи криптовалюты полностью исчезают какие-либо провалы. Вот например скриншот добычи ETH. Обратите внимание на оранжевую линию усреднённой скорости добычи. Она ровная.

Чем наша продукция отличается от аналогов?
Мы не перекупы! Наши устройства — это собственные разработки. Всё программное обеспечение пишем сами и постоянно усовершенствуем, что позволяет решать задачи, возникающие у каждого клиента. Принимаем к рассмотрению новые идеи по расширению функционала устройства и хост-программы.
Мы поддерживаем своих клиентов на протяжении всего времени. Мы гарантируем качество нашей продукции! Помогаем в настройке и подключении устройства, если у вас возникли сложности. Хост-программа WatchDog-а поддерживает 32/64 разрядные ОС Windows 7/10. Для ОС Linux разработан отдельный, управляющий скрипт.
Разъём подключения на выбор.
Функционал хост-программы постоянно расширяется и мы делаем его таким, что не важно когда вы приобрели у нас вотчдог, любая версия хост-программы будет с ним работать корректно. Т.е. вы всегда можете себе скачать более новую, расширенную версию бесплатно и пользоваться ею.
Компонент Watchdog (мониторинг системы)
Примечание: Watchdog is only available in Plesk for Linux, and is not available on Red Hat Enterprise Linux 9, AlmaLinux 9, Debian 11, and Ubuntu 20.04 and later.
Компонент Мониторинг системы (Watchdog) обеспечивает защиту вашего сервера от вредоносных программ, стабильную работу всех служб и достаточный объем свободного дискового пространства на сервере.
Watchdog может следить за работой следующих служб:
- Веб-сервер Plesk
- Обработчик PHP в Plesk
- Веб-сервер (Apache)
- Сервер SMTP (Postfix)
- Сервер SMTP (QMail)
- Сервер Courier POP3
- Сервер Courier POP3 с поддержкой SSL/TLS
- Сервер Courier IMAP
- Сервер Courier IMAP с поддержкой SSL/TLS
- Программа идентификации Courier
- IMAP- и POP3-сервер Dovecot
- Сервер DNS (BIND)
- Tomcat
- MySQL
- PostgreSQL
- Plesk SpamAssassin
- Plesk Premium Antivirus
- Антивирус Касперского
- Почтовый фильтр Plesk Postfix
- Веб-прокси-сервер (Nginx)
- PHP-FPM (FastCGI Process Manager)
- Отслеживание ошибок аутентификации Fail2Ban
Это расширение может запускать, останавливать, перезапускать службы и выполнять определенные действия в зависимости от стабильности службы в течение некоторого периода времени.
Оно может запускать другие утилиты и сообщать вам о том, что на диске закончилось место.
Для наблюдения за службами и использованием дискового пространства Watchdog использует утилиту monit.
Расширение Watchdog может сканировать файловую систему сервера на наличие руткитов, бэкдоров, эксплойтов и других вредоносных программ по требованию или по расписанию. Оно может сообщить вам результаты сканирования по электронной почте и показать отчеты в панели управления. Перед каждым сканированием оно обновляет свою базу знаний.
Для сканирования сервера на наличие вредоносных программ Watchdog использует утилиту Rootkit Hunter.
Что за устройство /dev/watchdog, что оно делает?
Также висит в процессах какой-то watchdog, процесс неубиваемый, это таймер какой-то?
- Вопрос задан более трёх лет назад
- 3641 просмотр
Комментировать
Решения вопроса 0
Ответы на вопрос 1
/dev/watchdog — это интерфейс к сторожевому таймеру (если он у вас есть). Процесс watchdog — демон, с этим таймером работающий. Сторожевой таймер — это железяка, которой периодически шлётся сигнал «всё ок, система не зависла». Если этого сигнала долго нет, он аппаратно перезагружает систему.
lexpr.ru/node/513
Ответ написан более трёх лет назад
Комментировать
Нравится 6 Комментировать
Ваш ответ на вопрос
Войдите, чтобы написать ответ

- Linux
- +2 ещё
В чем возникает проблема при работе с драйвером порта — UART4?
- 3 подписчика
- 17 часов назад
- 105 просмотров
Watchdog (сторожевой таймер) в Linux
Watchdog (сторожевой таймер) — аппаратно реализованная схема контроля над зависанием системы.
Сторожевые таймеры используются в системах, которые должны работать без надзора человека. Такие системы должны быть само восстанавливающимися без участия оператора.
В контроллерах JetHome JetHub на базе процессоров Amlogic поддерживается драйвер аппаратного watchdog meson_wdt .
Проверка устройств
При корректно запущенном модулей watchdog в системе /dev должны быть видны устройства /dev/watchdog и /dev/watchdog0 :
$ ls -l /dev/watchdog* crw-rw---- 1 root root 10, 130 2019-01-01 00:00 /dev/watchdog crw-rw---- 1 root root 10, 130 2019-01-01 00:00 /dev/watchdog0
Установка сервиса Watchdog
В прошивках начиная с версии Armbian 22.02 watchdog предустановлен, ручная установка не требуется.
Для установки сервиса watchdog выполните следующие команды:
sudo apt-get update sudo apt-get install watchdog
Создайте папку для лог-файлов watchdog:
sudo mkdir -p /var/log/watchdog
Проверьте настройки для сервиса в файле /etc/default/watchdog :
# Start watchdog at boot time? 0 or 1 run_watchdog=1 # Start wd_keepalive after stopping watchdog? 0 or 1 run_wd_keepalive=1 # Load module before starting watchdog watchdog_module="none" # Specify additional watchdog options here (see manpage). watchdog_options="-s -v -c /etc/watchdog.conf"
Конфигурационные файлы
Внесите необходимые изменения в конфигурационный файл /etc/watchdog.conf :
- Раскомментируйте использование устройства /dev/watchdog (иначе сервис watchdog не будет использовать аппаратный таймер для перезагрузки контроллера).
- Установите необходимые проверки и таймауты.
Ниже приведен пример конфигурационного файла, с установленным таймаутом 15 секунд на зависание:
Примечание
Значение watchdog-timeout определяет через какое время после аварии сервиса watchdog аппаратный таймер перезагрузит контроллер.
$ cat /etc/watchdog.conf #ping = 172.31.14.1 #ping = 172.26.1.255 #interface = eth0 #file = /var/log/messages #change = 1407 # Uncomment to enable test. Setting one of these values to '0' disables it. # These values will hopefully never reboot your machine during normal use # (if your machine is really hung, the loadavg will go much higher than 25) #max-load-1 = 24 #max-load-5 = 18 #max-load-15 = 12 # Note that this is the number of pages! # To get the real size, check how large the pagesize is on your machine. #min-memory = 1 #allocatable-memory = 1 #repair-binary = /usr/sbin/repair #repair-timeout = 60 #test-binary = #test-timeout = 60 # The retry-timeout and repair limit are used to handle errors in a more robust # manner. Errors must persist for longer than retry-timeout to action a repair # or reboot, and if repair-maximum attempts are made without the test passing a # reboot is initiated anyway. #retry-timeout = 60 #repair-maximum = 1 watchdog-device = /dev/watchdog # Defaults compiled into the binary #temperature-sensor = #max-temperature = 90 # Defaults compiled into the binary #admin = root #interval = 1 #logtick = 1 #log-dir = /var/log/watchdog # This greatly decreases the chance that watchdog won't be scheduled before # your machine is really loaded realtime = yes priority = 1 # Check if rsyslogd is still running by enabling the following line #pidfile = /var/run/rsyslogd.pid watchdog-timeout = 15
Автозапуск и проверка сервиса
Для включения автозапуска сервиса выполните следующие команды:
sudo systemctl enable watchdog sudo systemctl start watchdog
Проверка работоспособности сервиса:
service watchdog status
● watchdog.service - watchdog daemon Loaded: loaded (/lib/systemd/system/watchdog.service; enabled; vendor pres> Active: active (running) since Mon 2022-02-21 17:29:24 UTC; 17h ago Process: 2718 ExecStartPre=/bin/sh -c [ -z "$watchdog_module>" ] || [ "$w> Process: 2720 ExecStart=/bin/sh -c [ $run_watchdog != 1 ] || exec /usr/sbin> Main PID: 2722 (watchdog) Tasks: 1 (limit: 977) Memory: 516.0K CPU: 3min 33.528s CGroup: /system.slice/watchdog.service └─2722 /usr/sbin/watchdog -s -v -c /etc/watchdog.conf Feb 22 10:52:23 jethubj100 watchdog[2722]: still alive after 62076 interval(s) Feb 22 10:52:24 jethubj100 watchdog[2722]: still alive after 62077 interval(s) Feb 22 10:52:25 jethubj100 watchdog[2722]: still alive after 62078 interval(s) Feb 22 10:52:26 jethubj100 watchdog[2722]: still alive after 62079 interval(s) Feb 22 10:52:27 jethubj100 watchdog[2722]: still alive after 62080 interval(s) Feb 22 10:52:28 jethubj100 watchdog[2722]: still alive after 62081 interval(s) Feb 22 10:52:29 jethubj100 watchdog[2722]: still alive after 62082 interval(s)
Настроенный и запущенный сервис watchdog постоянно сбрасывает аппаратный сторожевой таймер.
Если он не сможет этого сделать (например, в случае если зависла система или наступило любое другое настроенное в конфигурации условие), таймер сработает и перезагрузит контроллер.
Проверка сторожевого таймера
Будьте осторожны: команды в этом разделе приводят к панике ядра и полной остановке работы контроллера.
Используйте их только в тестовой среде!
Следующая команда приводит к искусственному сбою ядра linux. Если watchdog работает правильно, то он автоматически перезагрузит систему после таймаута:
echo c > /proc/sysrq-trigger
[63168.053150] sysrq: Trigger a crash [63168.053204] Kernel panic - not syncing: sysrq triggered crash [63168.056648] CPU: 3 PID: 65544 Comm: bash Not tainted 5.15.24-meson64 #trunk.0045.jethome.0 [63168.064838] Hardware name: JetHome JetHub J100 (DT) [63168.069670] Call trace: [63168.072082] dump_backtrace+0x0/0x200 [63168.075706] show_stack+0x18/0x68 [63168.078982] dump_stack_lvl+0x68/0x84 [63168.082605] dump_stack+0x18/0x34 [63168.085882] panic+0x164/0x324 [63168.088901] sysrq_handle_crash+0x1c/0x20 [63168.092869] __handle_sysrq+0x8c/0x160 [63168.096577] write_sysrq_trigger+0x88/0x120 [63168.100719] proc_reg_write+0xac/0xf8 [63168.104340] vfs_write+0xbc/0x398 [63168.107618] ksys_write+0x68/0xf0 [63168.110895] __arm64_sys_write+0x1c/0x28 [63168.114776] invoke_syscall+0x44/0x108 [63168.118485] el0_svc_common.constprop.3+0x94/0xf8 [63168.123143] do_el0_svc+0x24/0x88 [63168.126420] el0_svc+0x20/0x50 [63168.129439] el0t_64_sync_handler+0x90/0xb8 [63168.133579] el0t_64_sync+0x180/0x184 [63168.137206] SMP: stopping secondary CPUs [63168.141091] Kernel Offset: disabled [63168.144533] CPU features: 0x00001001,00000846 [63168.148845] Memory Limit: none [63168.151871] ---[ end Kernel panic - not syncing: sysrq triggered crash ]--- AXG:BL1:d1dbf2:a4926f;FEAT:E0DC318C:2000;POC:F;EMMC:0;READ:0;0.0;CHK:0; sdio debug board detected TE: 33151
Пауза 15 секунд (в соответствии с значением watchdog_timeout в конфигурационном файле), далее:
BL2 Built : 10:43:22, May 26 2021. axg g28b9431 - jenkins@walle02-sh set vcck to 1100 mv set vddee to 950 mv Board ID = 9 CPU clk: 1200MHz DDR low power enabled DDR3 chl: Rank0 16bit @ 912MHz bist_test rank: 0 1b 02 34 24 0b 3d 17 00 2f 27 0e 40 00 00 00 00 00 00 00 00 00 00 00 00 761 - PASS Rank0: 1024MB(auto)-2T-13 AddrBus test pass! eMMC boot @ 0 sw8 s storage init finish emmc switch 3 ok Authentication key not yet programmed get rpmb counter error 0x00000007 emmc switch 0 ok Load FIP TMP HDR from eMMC, src: 0x0000c200, des: 0x05100000, size: 0x00004000, part: 0 0001c000Load BL31 from eMMC, src: 0x0001c200, des: 0x05104000, size: 0x0002ac00, part: 0 bl2z: ptr: 05127358, size: 00001e18 Load FIP HDR from eMMC, src: 0x0000c200, des: 0x01700000, size: 0x00004000, part: 0 Load BL3x from eMMC, src: 0x00010200, des: 0x01704000, size: 0x0008e400, part: 0 NOTICE: BL31: v1.3(release):110e239 NOTICE: BL31: Built : 19:07:23, Jul 2 2018 NOTICE: BL31: AXG normal boot! NOTICE: BL31: BL33 decompress pass [Image: axg_v1.1.3326-d0bacc8 2018-07-05 11:21:34 jenkins@walle02-sh] OPS=0x43 25 0b 43 00 88 fc 1a 07 8d 24 0c 3a b2 65 16 59 bl30:axg ver: 9 mode: 0 bl30:axg thermal0 [0.015862 Inits done] secure task start! high task start! low task start! ERROR: Error initializing runtime service opteed_fast U-Boot 2022.01-armbian (Feb 08 2022 - 06:07:00 +0000) jethubj100
© Copyright 2023, JetHome. Обновлено: 26.01.2023 16:59:03 UTC.