Watchdog настройка: Please Wait… | Cloudflare

Содержание

Настройка функции MikroTik WatchDog – NTema

Как настроить функцию MikroTik WatchDog

На роутерах MikroTik (RouterO V3, V4 и выше) сторожевой таймер (WatchDog) является средством контроля за зависанием системы при отключении интернета.

В подменю: /system watchdog можно настроить систему на перезагрузку, когда определенный IP адрес не отвечает или когда он обнаруживает, что программное обеспечение заблокировано.

Обнаружение выполняется двумя способами:

  • Программный сторожевой таймер (в основном вызванный аппаратной неисправностью) устройства может восстановиться после перезагрузки.
  • Ping Watchdog может контролировать подключение к определенному IP адресу и запускать функцию перезагрузки.
watch-address (IP; по умолчанию: нет) 
Система перезагрузится, если 6 последовательных запросов на указанный IP-адрес (отправленных с интервалом в 10 секунд) останутся без ответа.
Если установлено значение «нет», эта функция отключена.
watchdog-timer(да|нет; по умолчанию: да)
Нужно ли перезагружаться, если система минуту не отвечает.
no-ping-delay(время; по умолчанию: 5 мин.)
Указывает, как долго после перезагрузки не проверять и пинговать watch-адрес. Настройка по умолчанию означает, что если адрес наблюдения установлен и недоступен, маршрутизатор будет перезагружаться каждые 6 минут.
automatic-supout (да|нет; по умолчанию: да)
Когда происходит сбой программного обеспечения, файл с именем «autosupout.rif» генерируется автоматически. Предыдущий файл «autosupout.rif» переименовывается в «autosupout.old.rif»
auto-send-supout (да|нет; по умолчанию: нет)
После автоматического создания выходного файла «autosupout.
rif» его можно отправить по электронной почте.

send-email-from (строка; по умолчанию:)
Исходящий адрес электронной почты для автоматической отправки выходного файла.
send-email-to (строка; по умолчанию:)
Автоматически отправляет «autosupout.rif» на указанный почтовый адрес.
send-smtp-server (строка; по умолчанию:)
Адрес SMTP-сервера для отправки выходного файла.

Для проверки связи с интернетом MikroTik пингует указанный IP адрес через определённый промежуток времени. Как только MikroTik не получает ответ от пингуемого сервера — он перезагружается.

Включается функция WatchDog в меню System — Watchdog.

Watchdog Timer — для активации функции WatchDog поставьте галочку.
Watch Address — IP адрес, который будет пинговаться.
Можно указать Google Public DNS 8.8.8.8 или 8.8.4.4, а также адрес шлюза вашего провайдера. В этом случае MikroTik будет перезагружаться, как только у вас пропадет интернет.


Ping Start After Boot — интервал времени, через который будет пинговаться IP адрес.
Automatic Supout — генерирует файл autosupout.rif при программном сбое.

Если вы хотите автоматически получать отчет о перезагрузке MikroTik, то заполните следующие строки:
Auto Send Supout — автоматически отправляет файл autosupout.rif
Send Email To — на какой электронный адрес отправить файл autosupout.rif
Send Email From — электронный адрес отправителя
Send SMTP Server — через какой SMTP сервер отправить файл autosupout.rif

Если в поле Watch Address не указывать IP адрес, оборудование будет проверять само себя на зависания — и в случае сбоя перезагружаться.

WatchDog Timer на маршрутизаторах MikroTik инструкция по настройке

Маршрутизаторы Mikrotik корпоративного класса — золотая середина между надежностью и доступностью. Для своих устройств компания разрабатывает уникальную ОС, называющуюся RouterOS, в которой есть очень полезная функция — WatchDog Timer. Как ее настроить?


Сетевая ОС и настройка WatchDog Timer

RouterOS — продукт MikroTik, операционная система, созданная на фундаменте Linux и устанавливаемая на маршрутизаторы. Но иногда ее устанавливают даже на персональные компьютеры — те приобретают качества маршрутизатора, VPN сервера или клиента, точки доступа, QoS и т.д.

Однако сосредоточимся на одной из оригинальных разработок фирмы: технологии WatchDog Timer. Она активируется в случае, если пропадает связь, и самостоятельно определяет проблему, пингуя IP-адреса сервера. В случае отсутствия ответа, она перезагружает устройство.

Первое, что нужно для активации технологии — IP-адрес, который, собственно, будем пинговать. Наилучшее решение — использовать шлюз провайдера. В случае, если источник проблем находится на последней миле, то перезагрузка устройства — как раз то, что надо.

Нам также потребуется программа Winbox, в которой нас будет интересовать вкладка «Соседи» (Neighbors) — через нее мы подключимся к устройству. Подключившись переходим System->Watchdog, заполняем параметры:

  • Галочка «Watchdog Timer» проставляется чтобы в принципе активировать технологию.
  • В строчке «Watch Address» нам нужно будет прописать адрес, который будет проверяться.
  • А в строчке «Ping Start After Boot» — перерыв между пингами.

Есть также возможность заполнить дополнительные строки в случае необходимости: проставляем галочку «Auto Send Supout» и получаем возможность настроить адрес электронной почты, на который будет сброшен autosupout.rif, создаваемый сразу после того, как устройство перезагрузится.

Нужно будет также оставить электронный адрес отправителя и настроить SMTP-сервер, через который будет сброшено письмо. В случае, если вы укажете первую, но не укажете остальные строки, они будут автоматически заполнены из раздела Tools/E-mail.

Оборудование Mikrotik — один из лидеров рынка. Грамотно используя все его особенности искушенный специалист сможет настроить систему так, что вмешиваться и помогать ей будет просто не нужно.

Какую серверную ОС выбрать

5 Ноября 2020

Читать

Нужна ли вам майнинговая ферма

10 Августа 2018

Читать

Почему покупать серверное оборудование комплектами выгодно

8 Октября 2019

Читать

Watch Dogs: Legion — обзор и сравнение графических настроек. | Action / FPS / TPS

Автор cybertron, . Опубликовано в Action / FPS / TPS

В сегодняшнем графическом обзоре мы рассмотрим графические настройки и их влияние на качество картинки в Watch Dogs: Legion. Перейдем непосредственно к тестированию.

Первым пунктом идет DirectX. В этом пункте доступен выбор между DX 11 и DX 12. Как видно по скриншотам, разница между DX 11 и DX 12 при отключённых технологиях трассировки лучей и DLSS — минимальна, но стоит задействовать данные технологии разница становится ощутима: отражения становятся более чёткими и реалистичными, в игровом пространстве добавляется объём.

 

Качество графики. Имеет 5 параметров: «Низкое», «Среднее», «Высокое», «Очень высокое», «Ультра». Разница между «Очень высокое» и «Ультра» хорошо заметна. Текстуры асфальта, дома заменены, видны артефакты на растительности. Между «Высокое» и «Очень высокое» заметно, что искажение (артефакты) текстур растительности усилилось, наполняемость улиц начало уменьшаться. «Среднее» и «Высокое» — замыливание дальних текстур, артефакты пропали. Между «Низкие» и «Средние» явной разницы не обнаружено.

 

Переходим к Геометрии. В разделе 3 параметра. Разница между параметрами небольшая. Между «Очень высокое» и «Ультра» видна в дельных мелких предметах архитектуры, становятся резкими. При переходе на «Высокое» резкость видна и на ближних объектах. Видна графическая сложность геометрии мира.

Окружение. 4 параметра. Разница между «Высокое» и «Ультра» не ощутима, заметно «облысело» дерево. При переходе на «Среднее» настройки растительности чуть уменьшалось. Между «Низкое» и «Среднее» разницы нет.

Далее идет Разрешение текстур. Этот пункт имеет 5 параметров: «Минимальное», «Низкое», «Среднее», «Высокое», «Ультра». Между «Высокое» и «Ультра», «Среднее» и «Высокое» разницы незаметно. При переходе на «Низкое» заменяется текстура асфальта. На «Минимальное» настройка идет замена всех текстур и их замыливание.

Фильтрация текстур. Имеет 3 параметра. На «Высокое» настройках пропадает четкость на дальних текстурах. На «Низкое» размыта вся поверхность текстур, которая под углом.

Качество теней. 5 параметров. Разница между «Очень высокое» и «Ультра» имеется, отсутствуют динамические локальные тени. При переходе на «Высокое» настройки тени становятся четкими. На «Среднее» тени от ближних объектов становятся четкими и нереалистичными, а от дальние – не имеют четкого контура. На «Низкое» — тени от дальних объектов полностью размыты.

Источники света. 5 параметров: Выкл, Ваша машина, 2 источника света, 3 источника света, 4 источника света. Сделать скриншоты было проблематично. Сравним параметры Выкл и Ваша машина. Разница видна наглядно.

Отражение. 5 параметров: «Низкое», «Среднее», «Высокое», «Очень высокое», «Ультра». Видимой разницы между «Очень высокое» и «Ультра» — нет. При переходе на «Высокое» контур отражения расплывчатый (хорошо заметно это на решетке радиатора). На «Среднее» настройке лужи теряют прозрачность. На «Низкое» настройках отсутствует отражение мелких деталей.

Свечение. Имеет 2 параметра Выкл и Вкл. Этот параметр добавляет свечение с высоким динамическим диапазоном вокруг источников света.

Объемный свет. Имеет 2 параметра: Выкл и Вкл. На Выкл настройках, отсутствует глубина.

Постобработка и сглаживание. Имеет 4 параметра: Выкл, FXAA, SMAA, TAA. Этот пункт на прямую связан с отражением: за настройкой TAA закреплен параметр «Ультра» (используется для обзора), «Очень высокое», «Высокое», за остальными параметрами – «Среднее». Между SMAA и TAA разница очень хорошо заметна, появляется «зубчатость» пикcей. При переходе на FXAA заметно мылятся текстуры.

Трассировка лучей. Имеет 4 параметра. Разница между «Высокое» и «Ультра» хорошо заметна в отражениях (менее четкие). На «Среднее» настройках ближайшие лужи не прозрачные, интересно, что появляется отражение на решетке радиатора. Поскольку в игре много локаций с лужами, мокрым асфальтом, то общие изменения хорошо заметны. Фактура металла где-то меняется, особенно видно на параметре Выкл.

DLSS. Имеет 5 параметров: Выкл, «Производительность», «Баланс», «Качество», «Ультрапроизводительность». Разница между Выкл и «Качество» имеется, более реалистичное отражение на машинах и асфальте, но имеется нечетность (возможно эффект дождя). Если сравнивать «Баланс» и «Производительность» разница видна в освещении и в детализации мелких объектов. Я думаю, что на параметре «Ультрапроизводительность» лучше промолчать.

Дополнительная детализация. Этот параметр имеет ползунок. Мы сравним 0% и 100%. По умолчанию параметр стоит на 0%. Явные отличия есть: появляется мелкие детали на дальних зданиях, хорошо видно на автобусе эффект света.

Итак, подведем итоги. Графика в игре радует глаз. Оптимизация в игре неплохая, имеется достаточное количеством настроек позволяет запускать игру практически на любых компьютерах. В целом же продолжение вышло очень удачным!

Люди, участвующие в этой беседе

Комментарии ()

Оставьте свой комментарий

Samsung S5PV210 Watchdog, настройка стека и открытая acache

Гуана смотрит на собаку, установить адрес стека, открытыйicache

 

WatchdogЭто аппаратный модуль, который используется для перезапуска системы, когда система вылетает.

Общий принцип состоит в том, чтобы установить дверную собаку, и программное обеспечение необходимо написать соответствующие значения в таймеру часов в фиксированном времени, в противном случае сторожевое сообщение будет перезапустить систему.-

 

V210Watchdog Регистрация:

Здесь нам нужно только закрыть таймер Watchdog, просто нужно просмотретьWTCONКакой из них в реестре используется для закрытия таймера Watchdog.

WTCONШестое место установлено0Это чтобы закрыть сторожевой

#define WTCON   0xe2700000

ldr r0,=(0x00 << 5)

ldr r1,=WTCON

str r0,[r1]

 

Настройка стека:

Должен бежатьcЯзык, вы должны установить стек, потому чтоcЛокальные переменные на языке реализованы в стеке. Если стек не установлен, тоcЛокальная переменная будет пустой, когда язык выполняется, и программа не может работать.

Роль стека:

1.     Перед вызовом функции сохраните текущие данные функции, такие как значение в некоторых регистрах, и адрес возврата функции, в противном случае выполняется вызов функции, код не может вернуться к исходной функции и продолжить исходное значение.

2.     Параметры вызова хранения, общий код будет использовать первые несколько регистров по умолчанию как функция для изменения, но когда параметры слишком много, они могут храниться только в стеке. Поскольку адрес указателя стека виден для всех функций в том же режиме работы.

3.     Сохранить временные переменные

 

ARMПо умолчанию полностью сохраняется в мире.

ARMКаждый рабочий режим имеет свой собственный независимый стек, и сначала устанавливает стек, чтобы установить рабочий режим.

ARMПо умолчанию после сбросаSVCРисунок, так что согласно дизайну Samsung, указатель стека указывает на картинку0xd0037d80Адресский офис.

#define SVC_STK 0xd0037d80

ldr sp,=SVC_STK

 

IcacheОткрытым:

CPUДизайн имеет базовый принцип: когда старый код выполнен, в следующий раз код рядом с текущим кодом намного больше.

Если нет, вам нужно очистить старый кеш и перезагрузить новый кеш.

IcacheКоординаторcp15середина.

mrc p15,0,r0,c1,c0,0;           // зачитатьcp15изc1прибытьr0середина

bic r0, r0, #(1<<12)            // bit12 Установленный0  закрытьicache

//orr r0, r0, #(1<<12)          // bit12 Установленный1  открытымicache

mcr p15,0,r0,c1,c0,0;

Настройка Watchdog в виртуальной машине oVirt 4.

0 с гостевой ОС Debian 8.6 [Вики IT-KB]

Для начала в oVirt настраиваем в свойствах виртуальной машины поддержку Watchdog Device, как это было писано ранее. Затем переходим в гостевую ОС Debian 8.6 и проверяем появилось ли в системе устройство:

# lspci | grep watchdog -i
00:08.0 System peripheral: Intel Corporation 6300ESB Watchdog Timer

Установим службу:

# apt install watchdog

Сделаем минимальную корректировку конфигурационного файла /etc/watchdog.conf, то есть уберём комментарий в одной строке (другие параметры настраиваются при необходимости в зависимости от ваших потребностей):

/etc/watchdog.conf
...
#
watchdog-device = /dev/watchdog
#
...

Проверим наличие модуля ядра с драйвером для поддержки нашего устройства. Команда загрузки модуля не должна выдавать ошибок:

# modprobe i6300esb

Затем отредактируем файл /etc/default/watchdog, в частности в строку watchdog_module=«none» впишем имя нашего модуля и при необходимости добавляем параметры watchdog_options. В итоге файл должен принять следующий вид:

/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="i6300esb"
# Specify additional watchdog options here (see manpage).
watchdog_options="-s -c /etc/watchdog.conf"

Убедимся в отсутствии файла /etc/modprobe.d/blacklist-watchdog.conf. Если же такой файл в системе есть, убедимся в том, что в нём закомментирована строка, запрещающая загрузку нужного нам модуля ядра:

/etc/modprobe.d/blacklist-watchdog.conf
...
#blacklist i6300esb
...

Настроим автоматический запуск службы watchdog.service следующей командой:

# ln /lib/systemd/system/watchdog.service /etc/systemd/system/multi-user.target.wants/watchdog.service

Выполним проверочный запуск службы

# systemctl start watchdog. service

Если служба запускается без ошибок, перезагружаем систему и убеждаемся в том, что служба была автоматически запущена при запуске операционной системы:

# systemctl status watchdog.service

Если служба запущена и работает пробуем сымитировать сбой системы (перед этим все критичные приложения лучше закрыть): Для этого из под root выполним команду, которая вызовет «краш» нашей гостевой Linux-системы:

# echo c > /proc/sysrq-trigger

После выполнения этой команды гостевая ОС «намертво» повиснет и, как следствие, виртуальное watchdog-устройство потеряет связь с watchdog-службой внутри ОС. Спустя 60 секунд (интервал опроса по умолчанию) watchdog-устройство инициирует перезагрузку ВМ, о чём будет выведено соответствующее сообщение во вкладке отображения событий веб-консоли oVirt

Как исправить ошибку 0x00000133 DPC Watchdog Violation в Windows 10

За последние пару месяцев ко мне несколько раз обращались пользователи Windows 10 из-за появления «синего экрана смерти» (BSOD) с ошибкой 0x00000133 или кодом «DPC Watchdog Violation».  Причём в паре случаев проблема возникала на абсолютно новых ноутбуках HP и Lenovo с предустановленной десяткой. В остальных были совершенно разные компьютеры с совершенно разным софтом.
Согласно библиотеке MSDN Microsoft, этот код возникает когда отрабатывает специальный механизм отслеживания, реагирующий в случае обнаружения длительного отложенного вызова процедуры или превышен таймаут удержания системного прерывания IRQ. Анализ ситуации показал, что эта ошибка может вызвана совершенно различными сбоями и в зависимости от этого нужно подобрать правильный метод устранения. В этой инструкции я рассмотрю самые часто встречающиеся причины из-за которых может появится ошибка DPC Watchdog Violation и как их исправить в Windows 10. Статья будет актуальна и для предыдущих версий ОС Виндовс. Хотя, надо признать, что на той же «Восьмёрке» такое встречалось куда реже. 

Причина 1. USB-устройства

Как оказалось, сбой в работе мыши, клавиатуры, веб-камеры или 3G/4G-модема, подключенного через USB порт может вызвать ошибку DPC с кодом 0x00000133. В одном из случаев виновником был некачественный провод-удлинитель. Попробуйте отключить все лишние периферийный устройства и запустить компьютер.

Так, к примеру, на ноутбуке ASUS глюканула беспроводная мышь. После переключения её радиоадаптера в соседний УСБ-разъём, система более в BSOD не сваливалась.

Причина 2. Драйверы устройств

Ошибка DPC Watchdog Violation может появится после обновления ОС до Виндовс 10, из-за конфликта драйвера и новой системы. Решением будет обновление проблемного драйвера. Чтобы его выявить — понаблюдайте после чего появляется синий экран:
— в играх — вероятнее всего видео-адаптер (обычно, Nvidia или ATI Radeon) или звуковая карта;
— во время работы в Интернете — сетевой Ethernet или WiFi-адаптер.
Если выявить виновника не получается — обновите драйвера для всех устройств,скачав их с официального сайта производителя, либо через онлайн-клиент от Drivers Pack Solution. Особое внимание уделите USB 3.0 и чипсету материнской платы.

Причина 3. Быстрая загрузка

Для ускорения загрузки Windows 10 частенько советуют включать функцию «Быстрый запуск». Он ускоряет старт операционной системы за счёт тех же механизмов, что работают в режиме гибернации, выгружая данные из оперативной системы на жесткий диск. В некоторых случаях после этого при выключении ПК появляется BSOD. Для его устранения надо просто снова зайти в дополнительные параметры схемы электропитания и и снять галочку «Включить быстрый запуск».

Причина 4. Повреждение системных файлов.

Если ошибка DPC Watchdog Violation в Windows 10 появляется произвольно в время работы или простоя системы, то это может свидетельствовать о повреждении системных файлов. Для устранения проблемы надо запустить командную строку с правами Администратора и выполнить следующие команды:

DISM.exe /Online /Cleanup-image /Restorehealth

Этим мы проверим целостность образа. Затем надо проверить системные файлы:

sfc /scannow

По завершению этой процедуры, желательно так же выполнить проверку дисков на наличие ошибок командой:

chkdsk /f

Если надо чтобы утилита проверила конкретный диск — надо указать его букву:

chkdsk C: /f. 

При обнаружении ошибок они будут автоматически исправлены. В случае с системным разделом понадобится перезагрузка компьютера.

Примечание: Если ничего не помогает и Error code 0x00000133 всё равно продолжает сваливать Виндовс 10 в синий экран, то можно попробовать сделать восстановление системы. Для этого надо нажать кнопку Пуск и набрать слово «Восстановление». В результатах будет ярлычок мастера, позволяющего сделать откат Windows до сохранённых ранее точек состояния:

Для начала попробуйте сделать откат до самой поздней точки и понаблюдать. Не поможет — пробуйте более ранние точки.
Отдельно хочу скачать о появлении BSOD с кодом «DPC Watchdog Violation» на компьютерах или ноутбуках с SSD-дисками. В этом случае стоит попробовать обновить прошивку твердотельного накопителя.

Подключение и настройка IP-камеры видеонаблюдения / Статьи / WatchDog

Начиная с конца 20-го столетия бурно развиваться интернет технологии, а вместе с ними и сфера видеонаблюдения. Так на рынке систем безопасности среди различных систем наблюдения появился новый стандарт, который получил название IP-видеонаблюдение.

На данный момент ip-камеры занимают достаточно большую нишу на рынке из-за множества отличительных характеристик, которые значительно расширяют возможности систем наблюдения и облегчают их установку и обслуживание.

Среди преимуществ ip-технологии наблюдения можно выделить качество картинки, которое Вы можете посмотреть из любой точки мира посредством интернета, автономность каждой камеры и простота масштабирования.

Недостатков такая система имеет немного. Самым значительным на сегодняшний день можно считать стоимость такой системы и значительные нагрузки на сеть, которые устраняются выделением отдельного сетевого канала и хорошим интернетом. Стоит ли отдавать немалые деньги за такую многофункциональную систему решать конечно же Вам. Но один раз не пожалев денег Вы избавите себя в будущем от множества проблем.

И так, предположим, что Вы уже приобрели себе ip-видеооборудование и перейдем непосредственно к настройке такой системы.

Подключить систему к сети интернет и начать использовать можно четырьмя способами:

  1. Напрямую с использованием компьютера для настройки (если камера одна).
  2. Посредством роутера (если камер несколько).
  3. Посредством видеорегистратора.
  4. Использование облачных сервисов.

В нашей предыдущей статье: «Подключение и настройка IP-камеры видеонаблюдения (Часть 1)» было рассмотрено первые два способа. Теперь разберемся с последними двумя.

Подключение ip-камер через видеорегистратор.

Посредством подключения видеорегистратора можно значительно расширить функционал системы. Видеорегистратор имеет встроенный жесткий диск и свое встроенное ПО. Теперь у Вам есть возможность не только просматривать онлайн видео с камер, но и смотреть архив записей (например, за вчера или за прошлую неделю). Также Вы можете подключать различные охранные датчики, которые оповещают видеорегистратор о случившимся событии и, следовательно, Вас.

Настройка системы с видеорегистратором очень похожа на настройку, которая описывалась в предыдущих двух этапах. Вам необходимо:

  1. Подключить к видеорегистратору камеры наблюдения
  2. Видеорегистратор подсоединить к роутеру.
  3. Получить выделенный ip-адрес у провайдера.
  4. Настроить перенаправление с данного ip на адрес сети в которой используется регистратор.
  5. Зайти в веб-интерфейс регистратора в соответствующую вкладку с настройками (обычно Network).
  6. В настройках нужно прописать ip-адрес видеорегистратора (например, 192.162.1.2), шлюз (ip-адрес роутера в локальной сети) и маску подсети (например, 255.255.255.0).

Частой ошибкой, которую часто допускают при настройке сетей есть неправильное указание адресов (а именно подсети). Чтобы роутер «увидел» видеорегистратор, они должны бить в одной подсети.

Далее нужно настроить маршрутизатор (роутер).

  1. Необходимо в роутере включить функцию удаленного управления устройствами. Для этого находим параметр Remote Management и выбираем «разрешить». Также надо назначить соответствующий порт, которому дается разрешение.
  2. Далее в роутере необходимо установить переадресацию на соответствующий порт (куда подключен регистратор). Например, внешний порт 8084, порт регистратора 80, а также ip адрес на который будут переадресовываться все внешние запросы (как мы выше уже назначили это 192.162.1.2).
  3. Рекомендуется также закрепить постоянный адрес ip регистратора за его MAC адресом. Если этого не сделать, то при перезагрузке роутера регистратору присвоится произвольный ip. Такую настройку можно найти в разделе Address Reservation.
  4. Теперь регистратор доступен по запросу: http://(ваш постоянный статический IP адрес от провайдера):(8086)

ВАЖНО! Удаленно получить доступ к настройкам видеорегистратора с вашего статического IP, который был присвоен регистратору, не получится. Это обусловлено тем, что запрос, который будет формироваться в данном случае, будет с того же самого адреса. Следовательно, проверять работоспособность системы Вам придется с другого внешнего IP.

Подключение камер с использованием облачных сервисов

Использование облачных сервисов дает одно значительное преимущество – Вам не надо иметь статический IP адрес. Но не каждый видеорегистратор может работать с этой технологией. При выборе регистратора обратите внимание – он должен поддерживать технологию P2P.

Работа облачных сервисов заключается в постоянном в постоянной поддержке соединения с видеорегистратором или камерой наблюдения. При этом Вы можете в любой момент подключится к хранилищу и посматривать видео из режима онлайн или же из архива.

Для подключения к облачному сервису вам необходимо зайти на соответствующий сайт и авторизоваться (ввести идентификационный номер регистратора и пароль).

Самое главное в таком методе работы с Вашей системой это простота настройки. Чтобы произвести настройки регистратора Вам всего лишь придется зайти в его веб-интерфейс и включить P2P режим (в большинстве случаев это просто поставить галочку). Далее ваше оборудование произведет автоматическую настройку.

Единственным недостатком облачных хранилищ является ограничение в скорости соединения, что в некоторых случаях может ухудшить качество изображения.

Вот и все что Вам надо знать о настройке IP-системы видеонаблюдения. Если у Вас еще остались вопросы, просто закажите обратный звонок и наш эксперт свяжется с Вами и ответит на все Ваши вопросы.

В нашем магазине наибольший выбор различного оборудования для организации IP-систем видеонаблюдения за наилучшими ценами. Просто переходите в соответствующие категории и покупайте:

Интернет-магазин систем безопасности WatchDog

Настройка параметров сторожевого таймера | Документация Plesk Obsidian

Сначала перейдите на страницу Extensions > My Extensions , чтобы проверить, включен ли Watchdog. установлен в Плеске. Если это не так, установите систему Watchdog. компонент мониторинга (он находится в разделе «Plesk расширения»).

После установки необходимо настроить общие для всех параметры Watchdog Services, а затем включите каждый конкретный тип службы, который вы необходимость.

Чтобы настроить параметры Watchdog, общие для всех служб:

  1. Перейти к Extensions > Watchdog .Список сервисов Plesk будет отображается.
  2. Перейдите на вкладку Настройки .
  3. Укажите следующие параметры:
    • Автоматически обновлять страницы . Оставьте этот параметр выбранным, если Вы хотите, чтобы информация отображалась на экранах автоматически обновляется при каждом опросе.
    • Мониторинг всех служб, запущенных администратором . Оставь это опция выбрана, если вы хотите, чтобы компонент контролировал все услуги, которые вы запускаете.Если вы установите новую системную службу позже включен, компонент автоматически начнет следить за ним. Прозрачный этот флажок, если вы собираетесь закрыть некоторые службы, и вы не хотите, чтобы компонент вызывал их автоматически или беспокоить вас какими-либо предупреждающими сообщениями.
    • Интервал опроса . Укажите интервал между сервисными статусами запросы за секунды.
    • Хранить статистику использования ресурсов . Оставьте этот параметр выбранным, если вы хотите, чтобы система сохраняла отчеты об использовании ЦП и ОЗУ для количество времени, которое вы укажете.
    • Повторить сканирование безопасности . Укажите, как часто Watchdog должен сканировать сервер для вредоносного кода.
    • Отправка отчетов . Укажите, как часто Watchdog должен отправлять вам консолидированные отчеты о загрузке ЦП и ОЗУ, отслеживаемых службах, диске разделы пространства и результаты проверки безопасности.
    • Отправить электронное письмо на номер . Укажите адрес электронной почты, на который Watchdog должны доставлять предупреждения и отчеты. По умолчанию Plesk используется адрес электронной почты администратора.
    • Адрес электронной почты отправителя . Адрес электронной почты, от имени которого отчеты и оповещения должны быть отправлены. По умолчанию этот адрес электронной почты is watchdog@your-host-name.
    • SMTP-сервер для отправки предупреждений . Укажите локальный или удаленный SMTP сервер(ы), которые следует использовать для отправки предупреждающих сообщений. Ты сможешь укажите несколько имен хостов или IP-адресов, разделенных запятыми. Оставьте запись localhost , чтобы использовать службу SMTP вашего сервера. Если на вашем сервере Plesk не запущена служба SMTP, обязательно укажите другой удаленный почтовый сервер, иначе Watchdog не будет иметь возможность отправлять вам оповещения.
  4. Нажмите Применить , чтобы подтвердить настройки.

Вы задали общие настройки и теперь можете дальше настраивать и запускать нужные вам службы Watchdog. Мониторинг системы службы и мониторинг использования дискового пространства требуют тонкой настройки перед вы можете запустить их, однако регулярное сканирование безопасности не требует дополнительная настройка и, следовательно, начнется сразу после того, как вы задал общие настройки. По умолчанию запускается сканирование безопасности в 2 часа ночим. местное время в начале указанного периода времени.

Watchdog: автоматическое обнаружение аномалий производительности без настройки предупреждений

Благодаря обнаружению аномалий, обнаружению выбросов, прогнозированию и комбинированному предупреждению Datadog позволяет надежно предупреждать нужных людей в нужное время. Но что произойдет, если задержка начнет увеличиваться или частота ошибок резко возрастет в тех областях вашего приложения, где вы не установили оповещения? Вот для чего существует Watchdog.

Watchdog — это новый механизм автоматического обнаружения, который выявляет проблемы с производительностью в ваших приложениях без какой-либо ручной настройки или настройки. Используя наши тщательно проверенные алгоритмы машинного обучения, Watchdog автоматически обнаруживает проблемы в ваших данных, такие как всплески задержки в ваших микросервисах, повышенный уровень ошибок на любой из ваших конечных точек или проблемы с сетью в одной из зон вашего облачного провайдера.

Когда Watchdog обнаруживает аномалии в вашей среде, он создает ленту «историй» с заметными находками. Каждая история автоматически выделяет интересующие временные рамки на графике временных рядов и предоставляет краткое изложение того, что произошло: какой ресурс был затронут, где и как долго.

Автоматическое обнаружение аномалий производительности с помощью Watchdog от Datadog.

Каждая история в ленте Watchdog напрямую связана со страницей сведений, которая предоставляет дополнительный контекст для конкретной службы, конечной точки, SQL-запроса или зоны доступности в данный момент времени. Страница сведений автоматически собирает статистические данные о производительности (пропускная способность, ошибки и процентили задержки) для конкретной службы или ресурса.

Для индикатора, вызвавшего историю Watchdog (т.например, задержка или частота ошибок для вашего веб-приложения), на странице сведений отображаются последние значения этого индикатора вместе с ожидаемыми значениями, основанными на исторических тенденциях, поэтому вы можете увидеть, насколько значительна аномалия.

Определите вероятных виновников

На странице сведений об истории Watchdog Datadog автоматически отображает связанное поведение, которое может иметь одну и ту же основную причину, поэтому вы можете с первого взгляда увидеть, является ли проблема широко распространенной или ограничена одной конкретной частью вашего приложения.

Для событий ошибок Watchdog автоматически извлекает общие трассировки стека, поэтому вы можете перейти от незнания о проблеме к точному знанию того, какая строка кода вызывает проблему одним щелчком мыши.

Watchdog автоматически обнаруживает сетевые проблемы в вашей облачной инфраструктуре, поэтому вы можете переключиться в незатронутую зону или перенаправить трафик к другому облачному провайдеру. В каждой истории состояния сети вы можете увидеть карту затронутых зон, а также подробные показатели повторных передач TCP для каждой зоны доступности, чтобы точно увидеть, где и когда проблема начала влиять на ваши приложения.

Watchdog основан на известных функциях машинного обучения Datadog, таких как обнаружение аномалий, обнаружение выбросов и прогнозирование, для получения высококачественных результатов, специально настроенных для крупномасштабной инфраструктуры и приложений. При запуске Watchdog оценивает ключевые показатели приложения, такие как задержка или частота ошибок, с помощью Datadog APM. Мы постоянно добавляем алгоритмы для применения Watchdog к новым проблемам, таким как анализ первопричин и обнаружение аномалий Kubernetes, чтобы он мог обнаруживать новые типы ситуаций в любом месте вашей среды.

Если вы еще не используете Datadog, вы можете подписаться на бесплатную 14-дневную пробную версию сегодня и запустить Watchdog, чтобы автоматически обнаруживать аномалии во всех ваших службах.

Как настроить сторожевой таймер

Активируйте сторожевой таймер и укажите режим восстановления. Настройте рабочие параметры, ограничения ресурсов и параметры мониторинга для сторожевого таймера. Вы можете сначала попробовать запустить сторожевой таймер в режиме мониторинга, чтобы сообщать о проблемах без перезагрузки системы. Однако обратите внимание, что даже в режиме мониторинга сторожевой таймер все равно перезагрузит систему после определенных серьезных ошибок, таких как полная таблица процессов.

Активация сторожевого таймера
  1. Перейдите к КОНФИГУРАЦИЯ > Дерево конфигурации > Ячейка > Расширенная конфигурация > Сторожевой таймер .
  2. Нажмите Блокировка .
  3. Включить Запустить S.M.A.R.T для создания события при возникновении критического состояния на жестком диске (идентификатор события 34).
  4. Включить Запустить сторожевой таймер , чтобы запустить сторожевой таймер.
  5. Выберите режим восстановления . Список выбираемых режимов см. в разделе Watchdog.
  6. Нажмите Отправить изменения и Активировать .
Настройка сведений о сторожевом устройстве
  1. Перейдите к КОНФИГУРАЦИЯ > Дерево конфигурации > Ячейка > Расширенная конфигурация > Сторожевое устройство .
  2. В левом меню выберите Watchdog Details .
  3. Нажмите Блокировка .
  4. В разделе Watchdog Operational Setup укажите рабочие настройки для сторожевого таймера:
    • Режим реального времени  – Включите регистрацию сторожевого таймера в памяти, чтобы он никогда не выгружался.В системе с большой нагрузкой этот параметр сводит к минимуму риск того, что процесс-демон может не успеть записать на устройство ядра в нужное время (60 секунд).
    • Приоритет планировщика — Приоритет планировщика для работы в режиме реального времени. Если вы не являетесь экспертом в области Linux с глубоким знанием операционной системы, не изменяйте настройку по умолчанию 1. Сторожевой таймер использует циклическое планирование (SCHED_RR). Чем больше число, тем выше приоритет процесса. Стандартным процессам пользовательского пространства обычно назначается приоритет 0.
    • Интервал проверки [сек] — интервал в секундах между двумя операциями записи на устройство ядра. Драйверы ядра ожидают операции записи по крайней мере каждые 60 секунд. Каждая запись сопровождается проверкой всех отслеживаемых объектов системы.
    • Подробное ведение журнала — Включить подробный режим. В этом режиме информация о состоянии будет записываться в syslogd с помощью средства LOG_LPR. Syslogd перенаправляет этот трафик журнала на интерфейс системного журнала psyslogd, который, в свою очередь, перенаправляет поток журнала в файл журнала Box > Watchdog > Monitor .Сообщается о средней нагрузке, состоянии отслеживаемого процесса (pid), использовании памяти и времени работы сторожевого таймера.
    • Logtick  — количество интервалов мониторинга, которые пропускаются перед записью подробного сообщения журнала в syslogd. Значение по умолчанию, равное 3, уменьшает трафик журнала, чтобы уменьшить потребление дискового пространства на 66%.
  5. В разделе Watchdog Monitored Entities укажите ограничения системных ресурсов и параметры мониторинга для сторожевого таймера:
    • Макс. используемая память — верхняя граница использования памяти до того, как двоичный файл восстановления начнет действовать (по умолчанию: 95%).Учитываются как оперативная память, так и пространство подкачки.
    • Проверить загрузку системы — Включить мониторинг средней загрузки системы.
    • Макс. нагрузка [1мин] — Максимальная средняя загрузка системы за 1 мин. По умолчанию — 24.
    • Макс. нагрузка [5 мин.] — максимальная средняя загрузка системы за 5 мин. Значение по умолчанию — 18.
    • Макс. нагрузка [15 мин.] — максимальная средняя загрузка системы за 15 мин. Значение по умолчанию — 12.
    • Watch Control Daemon — включите мониторинг состояния контролируемого процесса.
    • Наблюдать за демоном SSH  — включить мониторинг состояния процесса sshd.
    • Наблюдать за демоном Cron  – включить мониторинг состояния процесса демона cron.
    • Watch Disk — при включении демон Watchdog выполняет проверку диска (запись/чтение).
    • Макс. последовательные сбои Disktest — указывает максимально допустимое количество сбоев. Если это число превышено, сторожевой таймер вызывает жесткую перезагрузку. Между тестами существует экспоненциальное время задержки (макс.4с).
  6. Нажмите Отправить изменения и Активируйте .

Что такое сторожевой пес и как его использовать

Сегодня я хочу поговорить о конкретной собаке.

Не обычная собака, а особенная, которой не нужен поводок. Эта собака наблюдает за вами… и называется сторожевой пес 😀

Сторожевой пес — согласно википедии — представляет собой электронный таймер, который используется для обнаружения и устранения сбоев в работе компьютера.

Ага! Сторожевой таймер обычно используется для сброса микроконтроллера, когда он по многим причинам застрял в части программы.

При включении сторожевого таймера во время нормальной работы его необходимо сбросить. В противном случае, когда скетч микроконтроллера — или прошивка — зависнет в какой-то точке, мы не сможем сбросить сторожевой таймер, и микроконтроллер будет сброшен.

Но сторожевой таймер также можно использовать как таймер, который пробуждает микроконтроллер через определенное время, используя прерывание .

Таким образом, мы можем перевести микроконтроллер в спящий режим, сэкономить электроэнергию, а затем разбудить микроконтроллер с помощью сторожевого таймера, установленного на определенное время.

Если мы используем батарею, мы можем сэкономить много энергии!

Например:

Если мы хотим мигать светодиодом, мы обычно делаем это:

 void loop() {
 цифровая запись (13, ВЫСОКИЙ); // включаем светодиод (HIGH - уровень напряжения)
 задержка(1000); // ждем секунду
 цифровая запись (13, НИЗКИЙ); // выключаем светодиод, понижая напряжение
 задержка(1000); // ждем секунду
}
 

Если мы используем батарею, когда мы выключаем светодиод, а затем ждем 1 секунду, мы только тратим энергию.

Это потому, что светодиод не горит и микроконтроллер ничего не делает, он только ждет и тратит энергию.

Взгляните на техпаспорт Attiny84

Что видят мои глаза???

Когда микро в активном режиме — пока ждем и светодиод не горит — потребляет 300 мкА.

В противном случае, если мы переведем микроконтроллер в спящий режим, особенно в режиме отключения питания, он потребляет всего 0,1 мкА.

Действительно 0,1 мкА !!!!

Итак, вместо того, чтобы ничего не делать и держать микро в активном режиме, мы можем перевести его в спящий режим и сэкономить много энергии!

Ну а теперь вопрос:

Если микро в ждущем режиме кто его будит?
Нам нужно нажать несколько кнопок, чтобы запустить прерывание?

№Мы можем использовать прерывание сторожевого таймера, чтобы разбудить микроконтроллер через определенное время!

Вот код со спящим режимом:

 #include  h>
#include 
#include 
#include 

// функция настройки запускается один раз, когда вы нажимаете сброс или питание платы
недействительная установка () {
 pinMode(7, ВЫВОД);
}

// функция цикла запускается снова и снова навсегда
недействительный цикл () {
 цифровая запись (7, ВЫСОКИЙ); // включаем светодиод (HIGH - уровень напряжения)
 задержка(1000); // ждем секунду
 цифровая запись (7, НИЗКИЙ); // выключаем светодиод, понижая напряжение
 ждатьСон(1); //засыпаем на 1 секунду
}

недействительным waitSleep (целое число миллисекунд) {
 в то время как (миллисекунды) {
 иди спать();
 миллисекунды--;
 }
}

недействительным идти спать () {
 сторожевая установка(); //включить сторожевой таймер
 power_timer0_disable(); //отключить Таймер 0
 power_timer1_disable(); //отключить Таймер 1
 set_sleep_mode (SLEEP_MODE_PWR_DOWN);
 Режим сна();
 // отключаем сторожевой таймер после сна
 wdt_disable();
 power_timer0_enable(); //включить Таймер 0
 power_timer1_enable(); //включить Таймер 1
}

недействительным watchdogSetup () {

 //WDP3 - WDP2 - WPD1 - WDP0 - время
 // 0      0      0      0      16 мс
 // 0      0      0      1      32 мс
 // 0      0      1      0      64 мс
 // 0      0      1      1      0. 125 с
 // 0      1      0      0      0,25 с
 // 0      1      0      1      0,5 с
 // 0      1      1      0      1,0 с
 // 0      1      1      1      2,0 с
 // 1      0      0      0      4,0 с
 // 1      0      0      1      8,0 с


 // Сбрасываем флаг сброса сторожевого таймера
 битОчистить (MCUSR, WDRF);
 

 //Следующий бит должен быть установлен одновременно, иначе система не установит правильное значение

 /* Запустить временную последовательность */
 //Watchdog Change Enable для очистки WD (установкой бита WDCE) и Enable WD (установкой бита WDE)
 WDTCSR |= (1 << WDCE) | (1 << ВДЭ);
 
 // Установите новое значение времени ожидания сторожевого таймера на 1 секунду (WDP2 и WDP1 на 1) и включите прерывания вместо сброса (WDIE на 1)
 WDTCSR = (1 << WDIE) | (1 << WDP2) | (1 << WDP1);
}
ISR(WDT_vect) {
// Здесь ничего не делаем, но мы должны включить это
// блок кода, иначе прерывание вызовет
// неинициализированный обработчик прерывания.}
 

Итак, мы создали функцию waitSleep() , где мы можем указать, сколько секунд мы хотим спать. Мы используем эту функцию вместо функции delay().

Функция waitSleep() считает, сколько секунд мы хотим спать. Это связано с тем, что сторожевой таймер может быть установлен на разное время. В этом случае мы установили сторожевой таймер на срабатывание каждую 1 секунду. После я объясню, как настроить сторожевой таймер.

Итак, каждую секунду функция waitSleep() вызывает функцию goSleep() , которая устанавливает сторожевой таймер, отключает все ненужные периферийные устройства и переходит в режим сна().

Когда прерывание сторожевого таймера пробуждает микроконтроллер, код продолжается после функции sleep_mode(), отключает сторожевой таймер и снова включает все периферийные устройства.

Если микроконтроллер переходит в спящий режим на установленное нами количество секунд, код возвращается, чтобы включить светодиод.

Ну, а как мы устанавливаем сторожевой таймер и, что более важно, как мы устанавливаем его значение таймера?

Нам нужно прочитать техпаспорт.

Извините, но другого выхода нет! 🙂

Итак, взгляните на техпаспорт Attiny84.

Чтобы включить сторожевой таймер, нам нужно установить два регистра:

Регистр состояния MCU, также известный как MCUSR , и регистр управления и состояния сторожевого таймера, также известный как .

Во-первых, в регистре MCUSR нам нужно сбросить бит WDRF , который является флагом сторожевого прерывания. Каждый раз, когда у нас есть сторожевое прерывание, микроконтроллер устанавливает этот бит в 1. Поэтому нам нужно очистить его, чтобы прерывание снова заработало.

После этого в регистре WDTCSR мы устанавливаем бит WDCE , который является изменением сторожевого таймера , позволяющим очищать таймер WD, а также разрешает изменять значение прескалера. Затем мы устанавливаем бит WDE , чтобы включить WD. Эти две настройки должны выполняться одновременно.

Теперь мы можем установить значение прескалера WD по его таблице. В нашем случае мы устанавливаем прескалер на 1 секунду, установив биты WPD2 и WPD1 .Наконец, мы устанавливаем бит WDIE , который включает прерывание сторожевого таймера вместо сброса микроконтроллера. Эти две настройки должны выполняться одновременно.

Не забудьте добавить в скетч функцию ISR(WDT_vect) . Это потому, что микроконтроллер хочет, чтобы он использовал прерывание WD.

Знайте, что мы можем использовать WD для экономии энергии.

Я использовал этот хак в KeyChainino. Я сделал простую рождественскую лампу KeyChainino, чтобы повесить ее на елку.

В этом конкретном случае KeyChainino просыпается каждые 4 секунды и отображает волшебные звезды 🙂

Посмотрите код здесь 🙂

 

systemd для администраторов, часть XV

Быстро после предыдущей итерации, здесь сейчас пятнадцатый рассрочка из моя текущая серия на системад за Администраторы:

Сторожевые псы

Есть три большие целевые аудитории, которые мы пытаемся охватить с помощью systemd: встроенные/мобильные люди, настольные люди и сервер близкие.В то время как системы, используемые встроенными/мобильными устройствами, как правило, имеют недостаточную мощность и мало доступных ресурсов, настольные компьютеры, как правило, гораздо более мощные машины, но все же гораздо менее изобретательные, чем серверы. Тем не менее, есть удивительно много особенностей, которые имеют значение к обеим крайностям этой оси (встраиваемые и серверные), но не центр (рабочие столы). Одна из них — поддержка сторожевых таймеров в железо и софт.

Встроенные устройства часто полагаются на сторожевое оборудование, которое сбрасывает автоматически, если программное обеспечение перестает отвечать на запросы (точнее, прекращает сигнализировать оборудованию через фиксированные интервалы времени, что оно все еще в живых).Это необходимо для повышения надежности и уверенности в том, что независимо от того, что происходит, лучшая попытка получить систему снова работает. Подобная функциональность не имеет большого смысла на рабочий стол [1] . Однако на Опять же, часто используются сторожевые таймеры серверов высокой доступности.

Начиная с версии 183 systemd обеспечивает полную поддержку аппаратные сторожевые таймеры (представленные в /dev/watchdog для пользовательское пространство), а также поддержку супервизора (программного обеспечения) для отдельные системные службы.Основная идея заключается в следующем: если включено, systemd будет регулярно пинговать аппаратное обеспечение сторожевого таймера. Если systemd или зависание ядра этого пинга больше не будет и аппаратное обеспечение будет автоматический сброс системы. Таким образом, systemd и ядро защищен от безграничных зависаний -- аппаратно. Чтобы сделать цепочку После завершения systemd предоставляет программный сторожевой интерфейс для отдельные службы, чтобы их тоже можно было перезапускать (или какие-то другие приняты меры), если они начинают зависать. Эта программная сторожевая логика может настраиваться индивидуально для каждого сервиса в частоте пинга и действие, которое нужно предпринять.Соединение обеих частей вместе (т.е. сторожевые таймеры, контролирующие systemd и ядро, а также systemd надзор за всеми другими службами) у нас есть надежный способ каждого отдельного компонента системы.

Для использования аппаратного сторожевого таймера достаточно установить RuntimeWatchdogSec= параметр в /etc/systemd/system.conf. По умолчанию он равен 0 (т. е. без аппаратного обеспечения). использование сторожевого таймера). Установите для него значение, например, 20 с, и сторожевой таймер включено. После 20 секунд отсутствия проверки активности аппаратное обеспечение будет перезагружено. сам.Обратите внимание, что systemd отправит пинг на оборудование в два раза быстрее. заданный интервал, т. е. каждые 10 с. И это уже все, что нужно Это. Включив эту единственную простую опцию, вы включили контроль со стороны оборудования systemd и ядра под ним Это. [2]

Обратите внимание, что аппаратное сторожевое устройство (/dev/watchdog) только однопользовательский. Это означает, что вы можете либо включить это функциональность в systemd или использовать отдельный внешний демон сторожевого таймера, например, метко названный сторожевой пес.

ShutdownWatchdogSec= — еще один параметр, который можно настроен в /etc/systemd/system.conf. Он контролирует интервал сторожевого таймера для использования во время перезагрузки. По умолчанию это 10 минут, и добавляет дополнительную надежность логике перезагрузки системы: если чистая перезагрузка невозможно, и выключение зависает, мы полагаемся на аппаратное обеспечение сторожевого таймера для резкого сброса системы в качестве дополнительной подстраховки.

Так много о логике аппаратного сторожевого таймера. Эти два варианта действительно все, что необходимо для использования оборудования сторожевые собаки.Теперь давайте посмотрим, как добавить логику сторожевого таймера в индивидуальные услуги.

Прежде всего, для того, чтобы сделать программное обеспечение контролируемым, оно должно быть пропатчен для отправки сигналов «я жив» через равные промежутки времени в цикл событий. Исправить это относительно легко. Во-первых, демон должен прочитать переменную окружения WATCHDOG_USEC=. Если он установлен, он будет содержать интервал сторожевого таймера в формате usec, отформатированном как текст ASCII. строка, так как она настроена для службы. Затем демон должен проблема sd_notify("WATCHDOG=1") вызывает каждую половину этого интервала.Пропатченный таким образом демон должен прозрачно поддерживать функцию сторожевого таймера, проверяя, переменная среды установлена ​​и принимает значение, на которое она установлена.

Чтобы включить логику программного сторожевого таймера для службы (которая была пропатчен для поддержки указанной выше логики) достаточно установите WatchdogSec= на желаемую задержку отказа. См. systemd.service(5) для получения подробной информации об этой настройке. Это приводит к тому, что WATCHDOG_USEC= установлен для процессов службы и приведет к тому, что служба войдет в состояние сбоя, как только в течение настроенный интервал.

Если служба переходит в состояние сбоя, как только логика сторожевого таймера обнаруживает зависание, то этого вряд ли достаточно для построения надежного система. Следующим шагом является настройка того, будет ли служба перезагружается и как часто, и что делать, если потом все равно не получается. К включить автоматический перезапуск службы при сбое Перезапуск = при сбое для службы. Чтобы настроить, сколько раз служба должна быть предпринята попытка перезапуска, используйте комбинацию из StartLimitBurst= и StartLimitInterval=, которые позволяют вам настроить, как часто служба может перезапускаться в течение времени интервал.Если этот предел достигнут, может быть выполнено специальное действие. взятый. Это действие настраивается с помощью StartLimitAction=. То по умолчанию — none, т. е. никаких дальнейших действий не предпринимается и служба просто остается в состоянии сбоя без каких-либо дальнейших действий. попытки перезапуска. Остальные три возможных значения перезагрузка, принудительная перезагрузка и перезагрузка-немедленная. reboot пытается выполнить чистую перезагрузку, проходит обычную, чистую логику выключения. принудительная перезагрузка является более резким: на самом деле он не будет пытаться полностью отключить любой services, но тут же убивает все остальные службы и размонтирует все файловые системы, а затем принудительно перезагружается (таким образом все файловые системы будет чистым, но перезагрузка все равно будет очень быстрой).Ну наконец то, reboot-immediate не пытается убить какой-либо процесс или размонтировать любые файловые системы. Вместо этого он просто жестко перезагружает машину без задержки. немедленная перезагрузка, следовательно, ближе всего к перезагрузка, вызванная аппаратным сторожевым таймером. Все эти настройки задокументировано в systemd. service(5).

Собрав все это вместе, у нас теперь есть довольно гибкие возможности для сторожевой таймер — наблюдение за конкретной службой и настройка автоматического перезапуска службы, если она зависает, а также принять окончательные меры, если это не так. помощь.

Вот пример юнит-файла:

 [Единица измерения]
Description=Мой маленький демон
Документация=человек:mylittled(8)

[Услуга]
ExecStart=/usr/bin/mylittled
WatchdogSec=30s
Перезапуск = при сбое
StartLimitInterval=5мин
StartLimitBurst=4
StartLimitAction=принудительная перезагрузка
 

Эта служба будет автоматически перезапущена, если она не прошла проверку связи системный менеджер дольше 30 секунд или в случае сбоя в противном случае. Если это перезагружается таким образом чаще, чем 4 раза за 5 минут принимается решение и система быстро перезагрузилась, при этом все файловые системы были чистыми когда оно появится снова.

Вот и все, о чем я хотел вам рассказать! С оборудованием поддержка сторожевого таймера прямо в PID 1, а также сторожевой таймер супервизора поддержка отдельных услуг мы должны обеспечить все, что вам нужно для большинства вариантов использования сторожевого таймера. Независимо от того, строите ли вы встроенный или мобильное устройство, или если вы работаете с высокой доступностью сервера, пожалуйста, попробуйте!

(О, и если вам интересно, почему, черт возьми, PID 1 должен иметь дело с /dev/watchdog, и почему его не следует хранить в отдельном daemon, тогда, пожалуйста, прочтите это еще раз и попытайтесь понять, что это все о цепочке супервизора, которую мы строим здесь, где аппаратный сторожевой таймер наблюдает за systemd, а systemd наблюдает за отдельными Сервисы.Кроме того, мы считаем, что служба, которая не отвечает, должна быть обрабатывается так же, как и любая другая ошибка службы. Наконец, пинг /dev/watchdog — одна из самых тривиальных операций в ОС. (в основном немного больше, чем вызов ioctl()), к поддержке этого не больше, чем несколько строк кода. Поддерживать это внешне со сложным IPC между PID 1 (и демонами) и этим сторожевым устройством демон был бы значительно более сложным, подверженным ошибкам и ресурсным. интенсив.)

Обратите внимание, что встроенная поддержка аппаратного сторожевого таймера systemd не по умолчанию не конфликтует с другим сторожевым ПО. systemd не используйте /dev/watchdog по умолчанию, и вы можете используйте внешние демоны сторожевого таймера в сочетании с systemd, если это лучше соответствует вашим потребностям.

И последнее: если вам интересно, есть ли у вашего оборудования сторожевой таймер, то ответ: почти определенно да, если это что-то большее. недавно, чем несколько лет. Если вы хотите убедиться в этом, попробуйте wdctl инструмент из недавнего util-linux, который показывает вам все, что вам нужно для знать о вашем оборудовании сторожевого таймера.

Я хотел бы поблагодарить замечательных людей из Pengutronix за помощь большая часть логики сторожевого таймера.Спасибо!

Сноски

[1] Хотя на самом деле большинство настольных компьютеров, как правило, включают сторожевой таймер аппаратное обеспечение и в наши дни, так как это дешево построить и доступно в самые современные чипсеты для ПК.

[2] Итак, вот вам бесплатный совет, если вы взламываете ядро ОС: не включайте эту функцию во время взлома. В противном случае ваша система может внезапно перезагрузиться, если вы находитесь в середине трассировки через PID 1 с помощью gdb и остановите его на мгновение, чтобы Аппаратный пинг можно сделать...

Использование Watchdog для постоянной работы машины

Watchdog — это демон/подсистема, используемая для наблюдения за основным состоянием машины. Если что-то пойдет не так, например, сбой программы, перегружающий ЦП, или отсутствие свободной памяти в системе, сторожевой таймер может безопасно перезагрузить машину, позволяя вашему сервису продолжать работу, а не ждать, пока кто-то придет, чтобы отключить машину.

Или, что еще лучше, у него есть опция восстановления для запуска предоставленного вами сценария, который попытается восстановить систему и перезагрузится только в качестве последней попытки.

Как это делается

Сторожевой таймер имеет список опций, за которыми он может следить. К ним относятся:

  • Пропингуйте хост, показывая, что эта сеть доступна.
  • Проверить, не изменялся ли файл с x минут, например, журналы, показывающие активность системы
  • Проверить загрузку ниже установленного значения.
  • Если можно выделить память. В противном случае программы не запустятся/вылетят.

Вы можете установить любой, все или ни один из этих параметров.

Сторожевой таймер с осторожностью относится к перезагрузке. Когда он перезагружает машину, он делает это контролируемым образом. Без внезапной перезагрузки. Он убивает процессы, синхронизирует диски, размонтирует файловые системы и в противном случае выполняет полную перезагрузку, как обычно.

Для защиты от ситуации, когда сторожевой таймер умирает или иным образом перестает работать, можно создать устройство, которое потребует записи в течение минуты, в противном случае произойдет перезагрузка машины. Это необязательно, но при использовании watchdog будет каждую секунду записывать на это устройство, сбрасывая на нем таймер ядра.

В приведенном ниже примере мы будем использовать модуль softdog для создания этого устройства, хотя существуют аппаратные варианты, которые могут это сделать. Устройство будет называться /dev/watchdog .

Обратите внимание, что сторожевой таймер может не помочь при панике ядра и/или зависании системы. Для этого я бы предложил установить действия для этих конкретных случаев, которые можно найти в этом руководстве.

Установка

  # Redhat/Fedora/Centos
dnf установить сторожевой таймер

# Убунту/Дебиан
apt-get установить сторожевой таймер

# Арка
pacman -Си сторожевой пес
  

А потом отключить.Да, это верно. Если вы не знаете, что делаете, вам следует отключить его, пока вы не убедитесь, что он работает. Дистрибутивы включают его, потому что в своей конфигурации по умолчанию они отключают большинство проверок. Мы будем их модифицировать, так что давайте не рисковать.

  systemct отключить сторожевой таймер
  

Если он включен, и вы неправильно настроили его (например, установили максимальную нагрузку на «1»), машина немедленно перезагрузится, а когда появится, снова перезагрузится, потому что сторожевой таймер включен при запуске и он видит что все еще «не получается».

Настройка

Основной файл конфигурации — /etc/watchdog.conf . Здесь мы укажем, какие тесты запускать, где находится наш сценарий восстановления и использовать сторожевое устройство.

Затем есть файл с настройками службы сторожевого таймера, такими как опции для предоставления программе сторожевого таймера. Обычно это /etc/default/watchdog или /etc/sysconfig/watchdog в зависимости от вашей системы.

Следующие параметры проверяют определенные элементы, и в случае неудачи запускается двоичный файл восстановления и/или перезагружается.

Проверка нагрузки

Это моя проверка сторожевого таймера. Он просто следит за тем, чтобы не было большой нагрузки и чтобы система не дала сбой. Да, когда система дает сбой, она, вероятно, все еще работает. Но нагрузка возрастет. Как высоко? У меня была система, которая однажды достигла 2000 под нагрузкой! Как это все еще работало, выше моего понимания.

Значения по умолчанию составляют около 10 или 30 макс. Я думаю, что это слишком мало, так как у меня есть машины, выполняющие ночные задания cron, которые вызывают кратковременный всплеск выше 50.Но они до сих пор работают нормально, и я не вижу смысла перезагружаться только из-за этого.

То, на что вы их настроите, будет зависеть от ваших настроек, работы, которую выполняет машина, и от того, насколько высоки ваши нагрузки. Он иногда взлетает до небес? Вы не возражаете, если он начнет пыхтеть, или вы просто хотите, чтобы он перезагрузился? Посмотрите на историю загрузки вашего сервера (у вас есть это право?).

Это просто баланс между отказом от перезагрузки, когда машина выполняет много работы, и нежеланием ждать вечно, когда возникают проблемы.

Первый — max-load-1 , который соответствует 1-минутной загрузке, затем max-load-5 для 5-минутной загрузки и max-load-15 для 15-минутной загрузки.

Для небольших систем я предпочитаю, чтобы max-load-1 в 150 раз превышало количество имеющихся у меня ЦП, до 4 ЦП, где я снижаю его до 100 раз. Это позволяет ему немного всплеснуть, если это необходимо.

А затем для остальных я снижаю его до 100 для 5-минутной загрузки и 50 для 15-минутной. Это может быть все еще слишком высоко, но они, похоже, работают.Вы можете

Таким образом, для системы с одним процессором я бы установил:

  max-load-1 = 150
максимальная нагрузка-5 = 100
максимальная нагрузка-15 = 50
  

А для 16 ядер:

  max-load-1 = 1600
максимальная нагрузка-5 = 1000
максимальная нагрузка-15 = 800
  

Память

Этот тест попытается выделить (использовать) заданный объем памяти.

  мин-память = 1
выделяемая память = 1
  

Проверки сети

Это основные эхо-тесты и мониторинг сети.Половину времени я их не использую, но

Это пропингует сервер. Вы можете установить его на свой маршрутизатор. Просто знайте, что если роутер пойдет не так, то машина перезагрузится.

Контролируйте этот интерфейс на наличие трафика. Обратите внимание, что если это медленный сайт, на котором мало трафика, он перезагрузится.

Файлы и pid-файлы

Здесь вы можете отслеживать изменения файла. Если никаких изменений не произойдет в изменить минут, он перезагрузится.

  #файл = /var/журнал/сообщения
#изменить = 1407
  

Я не использую опцию pidfile .В моем варианте лучше использовать monit , который может как мониторить pid-файл, так и реально тестировать подключение к сервису.

Тестовый сценарий

Вы можете запустить свой собственный тестовый сценарий. Любая ошибка, кроме 0, будет рассматриваться как ошибка и заставит сторожевой таймер перезагрузить систему.

  test-binary = /path/to/your/check_script
test-timeout = <время ожидания в секундах>
  

Сценарий восстановления

Двоичный файл Repair — это создаваемая вами программа, которая пытается исправить машину, а не выполнять полную перезагрузку. Сценарий должен выйти из 0 , если система была восстановлена,

  repair-binary = /path/to/your/repair_script
# сколько времени разрешить выполнение скрипта в секундах
время ожидания ремонта = 30
# количество раз, когда скрипту восстановления разрешено устранять проблему, прежде чем мы просто перезагрузимся
ремонт-максимум = 3
  

Если эта машина является частью кластера/роя/kubernetes, вы можете отключить сценарий восстановления и в противном случае вывести машину из кластера. И перенесите контейнеры и задания на другие машины.

Сторожевое устройство (дополнительно)

Как было сказано ранее, это устройство каждую секунду записывается сторожевым устройством, и если оно не будет записано в течение 60 секунд, машина перезагрузится.

Сначала мы настраиваем сторожевой таймер на использование сторожевого устройства в /etc/watchdog.conf :

  watchdog-device = /dev/watchdog
  

Затем в /etc/default/watchdog или /etc/sysconfig/watchdog мы настраиваем службу для загрузки модуля softdog, который создаст сторожевое устройство. Это с watchdog_module .

  watchdog_module="softdog"
  

Нет действий

Рекомендуется установить режим проверки . Или вас может выкинуть случайная перезагрузка.

Добавьте параметр --no-action в «watchdog_options» в /etc/default/watchdog или /etc/sysconfig/watchdog . Это заставит сторожевой таймер только сказать, что он собирается перезагрузиться, без фактической перезагрузки. И мы добавим опцию -v , чтобы мы могли видеть происходящие проверки.

  watchdog_options="-v --без действий"
  

В качестве напоминания убедитесь, что вы отключили службу сторожевого таймера, чтобы она не перезагружала ваш компьютер, если что-то не настроено должным образом.

Возможно, вам придется добавить эту строку, так как обычно ее там нет.

Запуск

Теперь, когда вы настроили его, запустите его. (Или перезапустите его, если он запущен)

  systemctl start watchdog

# или
запуск сторожевого таймера службы
  

И посмотрите логи

Вы должны увидеть что-то вроде

  . .. watchdog[3485]: на данный момент доступно 99748 + 1749500 кБ свободной памяти+своп
... сторожевой таймер [3485]: получен ответ на ping=1 от цели w.x.y.z time=2.805 мс
... сторожевой таймер[3485]: все еще жив после 17 интервалов
... сторожевой таймер[3485]: текущая нагрузка равна 0 0 0
  

Убедитесь, что все работает правильно, и исправьте все ошибки или проблемы.

Проверьте сторожевое устройство

Если вы включили сторожевое устройство, убедитесь, что модуль softdog загружен

Модуль должен быть указан в выходных данных.

И проверьте наличие сторожевого устройства.

По-настоящему

После того, как вы настроили его так, как хотите, и нет никаких проблем, теперь мы можем запустить его по-настоящему. В /etc/default/watchdog или /etc/sysconfig/watchdog либо закомментируйте, либо удалите строку без действий:

  # watchdog_options="-v --no-action"
  

И перезапустить сторожевой таймер

  systemctl перезапустить сторожевой таймер
  

Проверьте журналы на наличие проблем. После настройки включите сторожевой таймер.

  systemctl включить сторожевой таймер
  

Готово.

Выхода нет (опционально)

Сторожевое устройство можно настроить так, чтобы оно всегда требовало записи, что означает, что его обратный отсчет не может быть остановлен, даже если сторожевое устройство отключено должным образом. Это может помешать кому-либо отключить службу, что приведет к закрытию устройства и отмене всей вашей тяжелой работы.

Или просто потому, что ты этого хочешь.

Это достигается с помощью параметра softdog nowayout , благодаря чему после загрузки обратный отсчет нельзя остановить.

Будьте осторожны с этой опцией, так как она перезагрузит вашу машину, если вы остановите демон.

Измените параметр watchdog_module в /etc/default/watchdog или /etc/sysconfig/watchdog . Или добавьте его.

  watchdog_module="softdog nowayout"
  

Если вы хотите быть по-настоящему серьезным, вы можете добавить его в /etc/modules-load. d/softdog.conf . Однако это означает, что он будет загружен при запуске системы.Если служба сторожевого таймера не запускается, компьютер перезагружается.

  # /etc/modules-load.d/softdog.conf
софтдог
  

Не добавляйте вслепую последний. Прочитайте предупреждение над ним.

Заключение

Сторожевой таймер — отличное дополнение, помогающее поддерживать работоспособность системы вместе с параметрами sysctl для аварийных ситуаций ядра.

Прочие ресурсы

Watchdog — Документация проекта Zephyr

Это документация для последней (основной) ветки разработки Зефир.Если вы ищете документацию предыдущих выпусков, используйте раскрывающееся меню слева и выберите нужную версию.

Справочник API

группа сторожевой_интерфейс

Интерфейс сторожевого таймера.

Режим сброса сторожевого таймера.

Сбросить поведение после тайм-аута.

WDT_FLAG_RESET_NONE

Без сброса

WDT_FLAG_RESET_CPU_CORE

Сброс ядра процессора

WDT_FLAG_RESET_SOC

Глобальный сброс SoC

Определяет

WDT_OPT_PAUSE_IN_SLEEP

Приостановка сторожевого таймера, когда ЦП находится в спящем режиме.

WDT_OPT_PAUSE_HALTED_BY_DBG

Приостановка сторожевого таймера, когда ЦП останавливается отладчиком.

WDT_FLAG_RESET_SHIFT

Сдвиг маски битового поля флага сброса сторожевой схемы.

WDT_FLAG_RESET_MASK

Маска битового поля флага сброса сторожевого таймера.

Определения типов

typedef void (*wdt_callback_t)(const struct device *dev, int channel_id)

Обратный вызов сторожевой схемы.

typedef int (*wdt_api_setup)(const struct device *dev, параметры uint8_t)

API обратного вызова для настройки экземпляра сторожевого таймера. Описание аргументов см. в wdt_setup().

typedef int (*wdt_api_disable)(const struct device *dev)

API обратного вызова для отключения экземпляра сторожевого таймера. Описание аргументов см. в wdt_disable().

typedef int (*wdt_api_install_timeout)(const struct device *dev, const struct wdt_timeout_cfg *cfg)

API обратного вызова для установки нового тайм-аута.Описание аргументов см. в wdt_install_timeout().

typedef int (*wdt_api_feed)(const struct device *dev, int channel_id)

API обратного вызова для подачи указанного тайм-аута сторожевого таймера. См. (wdt_feed) описания аргументов.

Функции

int wdt_setup (const struct device *dev, параметры uint8_t)

Настроить экземпляр сторожевого таймера.

Эта функция используется для настройки глобальных параметров сторожевого таймера, влияющих на все тайм-ауты.Его следует вызывать после установки тайм-аутов. После успешного возврата все установленные тайм-ауты действительны и должны периодически обслуживаться вызовом wdt_feed().

Параметры
Возвращает
int wdt_disable(const struct device *dev)

Отключить экземпляр сторожевого таймера.

Эта функция отключает экземпляр сторожевого таймера и автоматически удаляет все тайм-ауты. Чтобы настроить новый сторожевой таймер, установите таймауты и снова вызовите wdt_setup().Не все сторожевые таймеры можно перезапустить после их отключения.

Параметры
Возвращает
статический встроенный int wdt_install_timeout (const struct device *dev, const struct wdt_timeout_cfg *cfg)

Установить новый тайм-аут.

Эта функция должна использоваться до wdt_setup(). Примененные здесь изменения не действуют до тех пор, пока не будет вызвана функция wdt_setup().

Параметры
Возвращает
  • channel_id — В случае успеха неотрицательное значение, указывающее индекс канала, которому был назначен тайм-аут.Предполагается, что это значение будет использоваться в качестве параметра при вызовах wdt_feed().

  • -EBUSY – Если тайм-аут не может быть установлен, когда сторожевой таймер уже настроен.

  • -ENOMEM – Если больше нельзя установить тайм-ауты.

  • -ENOTSUP — Если какой-либо из установленных флагов не поддерживается.

  • -EINVAL – Если какое-либо значение времени ожидания окна выходит за пределы возможного диапазона. Это значение также возвращается, если сторожевой таймер поддерживает только одно значение тайм-аута для всех тайм-аутов и предоставленное окно тайм-аута отличается от окон для установленных до сих пор тревог.

int wdt_feed (const struct device *dev, int channel_id)

Тайм-аут сторожевого таймера, указанный для канала.

Параметры
Возвращает
  • 0 – В случае успеха.

  • -EAGAIN — Если завершение операции подачи приведет к остановке вызывающей стороны, например, из-за выполняемой операции сторожевого таймера, такой как предыдущая wdt_feed() .

  • -EINVAL – Если для предоставленного канала не установлен таймаут.

структура wdt_window
#include

Окно времени ожидания сторожевого таймера.

Каждый установленный тайм-аут требует подачи в течение указанного временного окна, иначе сработает сторожевой таймер. Если экземпляр сторожевого таймера не поддерживает тайм-ауты окна, минимальное значение должно быть равно 0.

Примечание

Если указанные значения не могут быть точно установлены, они всегда округляются в большую сторону.

параметр мин.

Нижний предел тайм-аута сторожевой схемы в миллисекундах.

макс. параметр

Верхний предел тайм-аута сторожевой схемы в миллисекундах.

структура wdt_timeout_cfg
#include

Структура конфигурации времени ожидания сторожевого таймера.

окно параметров

Временные параметры тайм-аута сторожевого таймера.

параметр обратного вызова

Тайм-аут обратного вызова. Передача NULL означает, что обратный вызов выполняться не будет.

параметр следующий

Указатель на следующую конфигурацию тайм-аута. Этот указатель используется для сторожевых таймеров с функциональностью поэтапных тайм-аутов. Значение должно быть NULL для тайм-аута одного этапа.

Обновлено: 17.01.2022 — 17:10

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *