How to diagnose: различия между версиями
(не показано 88 промежуточных версий 3 участников) | |||
Строка 1: | Строка 1: | ||
{{DISPLAYTITLE: Диагностика ошибок в работе контроллера Wiren Board}} | {{DISPLAYTITLE: Диагностика ошибок в работе контроллера Wiren Board}} | ||
[[Image: | [[Image: System Information.png |400px|thumb|right| Версия ПО в веб-интерфейсе контроллера Wiren Board ]] | ||
{{Draft}} | |||
== Введение == | == Введение == | ||
Если в работе контроллера Wiren Board возникают ошибки | Если в работе контроллера Wiren Board возникают ошибки, то найти причину помогает анализ системного журнала. Так же полезно проверить, что вы используете свежую версию ПО. | ||
В контроллерах Wiren Board используется системный сервис журналов journald, который обрабатывает события на запись в лог и сохраняет их в бинарные файлы. По умолчанию настроена очистка старых сообщений журнала, которая не позволит ему | В контроллерах Wiren Board используется системный сервис журналов journald, который обрабатывает события на запись в лог и сохраняет их в бинарные файлы. По умолчанию настроена очистка старых сообщений журнала, которая не позволит занять ему всё свободное пространство. | ||
Читать журналы можно двумя способами: | Читать журналы можно двумя способами: | ||
* из консоли | * [[#В консоли|из консоли]] с помощью journalctl. | ||
{{SupportedSinceRelease | |||
| release = wb-2110 | |||
|content= | |||
* [[#В веб-интерфейсе контроллера|из веб-интерфейса]] с помощью инструмента Logs. | |||
}} | |||
Если вы не смогли самостоятельно определить причину ошибок в работе контроллера, создайте тему на [https://support.wirenboard.com форуме техподдержки], приложите [[#Выгрузка данных для отправки в техподдержку | архив с диагностической информацией]] и мы постараемся помочь. | |||
== | == Что искать в журнале == | ||
Поиск проблемы — это задача творческая, поэтому универсального рецепта нет. | |||
Сильно поможет понимание [[Wiren_Board_Software|архитектуры ПО контроллера]], где в центре MQTT-брокер, в который пишут информацию различные сервисы wb: | |||
* wb-mqtt-adc — драйвер аналоговых входов | * wb-mqtt-adc — драйвер аналоговых входов | ||
* wb-mqtt-dac — драйвер аналоговых выходов | * wb-mqtt-dac — драйвер аналоговых выходов | ||
Строка 42: | Строка 37: | ||
* wb-rules — [[wb-rules | движок правил]] | * wb-rules — [[wb-rules | движок правил]] | ||
Примеры типовых ситуаций: | |||
* Контроллер перезагружается без видимых причин — может помочь анализ сообщений ядра (dmesg). | |||
* Проблемы с serial-устройствами, которые подключены через RS-485 — смотрите сообщения драйвера wb-mqtt-serial. Ошибки обмена драйвер записывает как предупреждения (warning). | |||
* Странно работают правила — будут интересны сообщения wb-rules. | |||
== В консоли == | |||
[[Image: journalctl — logs.png |400px|thumb|right| Просмотр системного журнала с помощью journalctl]] | |||
== | journalctl — это консольный инструмент, поэтому перед вводом команд подключитесь к [[SSH]]. Больше примеров смотрите в статье [[journalctl]]. | ||
Посмотреть | Посмотреть сообщения ядра (dmesg): | ||
<syntaxhighlight lang="console"> | <syntaxhighlight lang="console"> | ||
# | # journalctl -k | ||
-- Logs begin at Sat 2021-10-30 10:25:03 +04, end at Thu 2021-11-04 18:37:49 +04. -- | |||
Nov 04 13:43:31 wirenboard-AYXIHFQ6 kernel: Booting Linux on physical CPU 0x0 | |||
Nov 04 13:43:31 wirenboard-AYXIHFQ6 kernel: Linux version 5.10.35-wb6 (jenkins@wbdevenv) (arm-linux-gnueabihf-gcc (Debian 6.3.0-1 | |||
Nov 04 13:43:31 wirenboard-AYXIHFQ6 kernel: CPU: ARMv7 Processor [410fc075] revision 5 (ARMv7), cr=10c53c7d | |||
Nov 04 13:43:31 wirenboard-AYXIHFQ6 kernel: CPU: div instructions available: patching division code | |||
Nov 04 13:43:31 wirenboard-AYXIHFQ6 kernel: CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache | |||
Nov 04 13:43:31 wirenboard-AYXIHFQ6 kernel: OF: fdt: Machine model: Wiren Board rev. 6.7.0 (i.MX6UL/ULL) | |||
</syntaxhighlight> | </syntaxhighlight> | ||
Вывести на экран журнал драйвера wb-mqtt-serial: | |||
<syntaxhighlight lang="console"> | <syntaxhighlight lang="console"> | ||
# | # journalctl -u wb-mqtt-serial | ||
-- Logs begin at Sat 2021-10-30 10:25:03 +04, end at Thu 2021-11-04 18:38:20 +04. -- | |||
Nov 01 14:36:33 wirenboard-AYXIHFQ6 wb-mqtt-serial[25318]: WARNING: [modbus] failed to read 1 discrete(s) @ 1 of device modbus:58: Serial protocol error: request timed out | |||
Nov 01 15:29:19 wirenboard-AYXIHFQ6 wb-mqtt-serial[25318]: WARNING: [modbus] failed to read 3 input(s) @ 6 of device modbus:87: Serial protocol error: malformed response: invalid crc | |||
Nov 01 15:51:07 wirenboard-AYXIHFQ6 wb-mqtt-serial[25318]: INFO: [signal handling] Received signal 15 | |||
Nov 01 15:51:07 wirenboard-AYXIHFQ6 systemd[1]: Stopping MQTT Driver for serial devices... | |||
Nov 01 15:51:15 wirenboard-AYXIHFQ6 systemd[1]: Stopped MQTT Driver for serial devices. | |||
Nov 01 15:56:42 wirenboard-AYXIHFQ6 systemd[1]: Started MQTT Driver for serial devices. | |||
Nov 01 15:56:49 wirenboard-AYXIHFQ6 wb-mqtt-serial[30608]: INFO: [serial config] "WB-MSW v.3 22" channel "CO2 Force Calibration" override property "enabled" | |||
</syntaxhighlight> | </syntaxhighlight> | ||
Показать предупреждения (<code>-p 4</code>), записанные драйвером wb-mqtt-serial с момента последней загрузки (<code>-b 0</code>): | |||
<syntaxhighlight lang="console"> | <syntaxhighlight lang="console"> | ||
# wb- | # journalctl -b 0 -p 4 -u wb-mqtt-serial | ||
-- Logs begin at Sat 2021-10-30 10:25:03 +04, end at Thu 2021-11-04 18:39:29 +04. -- | |||
Nov 04 13:44:48 wirenboard-AYXIHFQ6 systemd[1]: wb-mqtt-serial.service: Main process exited, code=killed, status=4/ILL | |||
Nov 04 13:44:48 wirenboard-AYXIHFQ6 systemd[1]: wb-mqtt-serial.service: Failed with result 'signal'. | |||
Nov 04 13:45:23 wirenboard-AYXIHFQ6 wb-mqtt-serial[3227]: WARNING: [modbus] Register <modbus:87:input: 7> is not supported | |||
Nov 04 13:45:23 wirenboard-AYXIHFQ6 wb-mqtt-serial[3227]: WARNING: [modbus] Register <modbus:87:input: 8> is not supported | |||
Nov 04 14:41:30 wirenboard-AYXIHFQ6 wb-mqtt-serial[3227]: WARNING: [modbus] failed to read 3 input(s) @ 32 of device modbus:111: Serial protocol error: request timed out | |||
Nov 04 14:49:09 wirenboard-AYXIHFQ6 wb-mqtt-serial[3227]: WARNING: [modbus] failed to read 3 coil(s) @ 0 of device modbus:111: Serial protocol error: request timed out | |||
</syntaxhighlight> | </syntaxhighlight> | ||
Сохранить журнал сервиса wb-rules в файл: | |||
<syntaxhighlight lang="console"> | <syntaxhighlight lang="console"> | ||
# | # journalctl -u wb-rules >> /tmp/log-file.txt | ||
wb- | |||
</syntaxhighlight> | </syntaxhighlight> | ||
О том, как скопировать файл с контроллера на компьютер, читайте в статье [[View controller files from your computer|Просмотр файлов контроллера с компьютера]]. | |||
Посмотреть, когда был запущен контроллер, можно командой: | |||
<syntaxhighlight lang="console"> | <syntaxhighlight lang="console"> | ||
# | # who -b | ||
system boot Nov 4 10:39 | |||
4 | |||
</syntaxhighlight> | </syntaxhighlight> | ||
Так же может быть полезным узнать, когда контроллер перезагружался: | |||
<syntaxhighlight lang="console"> | <syntaxhighlight lang="console"> | ||
# | # last -x reboot | ||
reboot system boot 5.10.35-wb6 Thu Nov 4 13:43 still running | |||
reboot system boot 5.10.35-wb6 Thu Nov 4 10:39 still running | |||
</syntaxhighlight> | </syntaxhighlight> | ||
Посмотреть | Посмотреть текущую версию ПО можно командой: | ||
<syntaxhighlight lang="console"> | <syntaxhighlight lang="console"> | ||
# | # wb-release | ||
Wirenboard release wb-2108 (as stable), target wb6/stretch | |||
</syntaxhighlight> | </syntaxhighlight> | ||
Подробнее о версиях ПО можно почитать в статье [[Wiren Board Firmware Update| Обновление прошивки контроллера Wiren Board 6]]. | |||
== В веб-интерфейсе контроллера == | |||
{{SupportedSinceRelease | |||
| release = wb-2110 | |||
|content= | |||
[[Image: WebUI 2.0 — logs.png |400px|thumb|right| Просмотр системного журнала в веб-интерфейсе контроллера Wiren Board]] | |||
Для просмотра системного журнала из веб-интерфейса контроллера, используйте [[Wiren Board Web Interface#logs | инструмент Logs]]. | |||
Узнать, сколько времени работает контроллер и текущую версию ПО можно на вкладке ''Devices'', в устройстве ''System''. Подробнее о версиях ПО можно почитать в статье [[Wiren Board Firmware Update| Обновление прошивки контроллера Wiren Board 6]]. | |||
}} | |||
== Выгрузка данных для отправки в техподдержку == | |||
{{SupportedSinceRelease | |||
| release = wb-2110 | |||
|content= | |||
[[Image: Web-Settings_System-2.0.png |400px|thumb|right| Страница сбора данных для диагностики]] | |||
Если вы не смогли самостоятельно найти причину неисправности и хотите обратиться в техническую поддержку — будет полезно приложить к сообщению архив с диагностической информацией. | |||
Файл с данными представляет собой zip-архив, который содержит текстовые файлы с записями из системного журнала и служебной информацией о контроллере. Архив можно подготовить и загрузить с помощью инструмента [[Wiren_Board_Web_Interface#Settings -> System (Настройки -> Системные) |Diagnostic collector]]. | |||
}} | |||
Версия 11:03, 5 ноября 2021
Это черновик страницы. Последняя правка сделана 05.11.2021 пользователем A.Degtyarev.
Введение
Если в работе контроллера Wiren Board возникают ошибки, то найти причину помогает анализ системного журнала. Так же полезно проверить, что вы используете свежую версию ПО.
В контроллерах Wiren Board используется системный сервис журналов journald, который обрабатывает события на запись в лог и сохраняет их в бинарные файлы. По умолчанию настроена очистка старых сообщений журнала, которая не позволит занять ему всё свободное пространство.
Читать журналы можно двумя способами:
- из консоли с помощью journalctl.
- из веб-интерфейса с помощью инструмента Logs.
Если вы не смогли самостоятельно определить причину ошибок в работе контроллера, создайте тему на форуме техподдержки, приложите архив с диагностической информацией и мы постараемся помочь.
Что искать в журнале
Поиск проблемы — это задача творческая, поэтому универсального рецепта нет.
Сильно поможет понимание архитектуры ПО контроллера, где в центре MQTT-брокер, в который пишут информацию различные сервисы wb:
- wb-mqtt-adc — драйвер аналоговых входов
- wb-mqtt-dac — драйвер аналоговых выходов
- wb-mqtt-confed — конфигуратор в WebUI
- wb-mqtt-db — хранение архива данных
- wb-mqtt-gpio — драйвер для работы с GPIO
- wb-mqtt-knx — мост KNX
- wb-mqtt-mbgate — шлюз MQTT-ModbusRTU/TCP
- wb-mqtt-opcua — шлюз MQTT-OPC UA
- wb-mqtt-serial — драйвер для serial-устройств
- wb-mqtt-w1 — драйвер для 1-Wire
Кроме этого, есть сервисы, которые реализуют дополнительные функции:
- watchdog — сторожевой таймер
- wb-hwconf-manager — драйвер модулей расширения
- wb-rules — движок правил
Примеры типовых ситуаций:
- Контроллер перезагружается без видимых причин — может помочь анализ сообщений ядра (dmesg).
- Проблемы с serial-устройствами, которые подключены через RS-485 — смотрите сообщения драйвера wb-mqtt-serial. Ошибки обмена драйвер записывает как предупреждения (warning).
- Странно работают правила — будут интересны сообщения wb-rules.
В консоли
journalctl — это консольный инструмент, поэтому перед вводом команд подключитесь к SSH. Больше примеров смотрите в статье journalctl.
Посмотреть сообщения ядра (dmesg):
# journalctl -k
-- Logs begin at Sat 2021-10-30 10:25:03 +04, end at Thu 2021-11-04 18:37:49 +04. --
Nov 04 13:43:31 wirenboard-AYXIHFQ6 kernel: Booting Linux on physical CPU 0x0
Nov 04 13:43:31 wirenboard-AYXIHFQ6 kernel: Linux version 5.10.35-wb6 (jenkins@wbdevenv) (arm-linux-gnueabihf-gcc (Debian 6.3.0-1
Nov 04 13:43:31 wirenboard-AYXIHFQ6 kernel: CPU: ARMv7 Processor [410fc075] revision 5 (ARMv7), cr=10c53c7d
Nov 04 13:43:31 wirenboard-AYXIHFQ6 kernel: CPU: div instructions available: patching division code
Nov 04 13:43:31 wirenboard-AYXIHFQ6 kernel: CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
Nov 04 13:43:31 wirenboard-AYXIHFQ6 kernel: OF: fdt: Machine model: Wiren Board rev. 6.7.0 (i.MX6UL/ULL)
Вывести на экран журнал драйвера wb-mqtt-serial:
# journalctl -u wb-mqtt-serial
-- Logs begin at Sat 2021-10-30 10:25:03 +04, end at Thu 2021-11-04 18:38:20 +04. --
Nov 01 14:36:33 wirenboard-AYXIHFQ6 wb-mqtt-serial[25318]: WARNING: [modbus] failed to read 1 discrete(s) @ 1 of device modbus:58: Serial protocol error: request timed out
Nov 01 15:29:19 wirenboard-AYXIHFQ6 wb-mqtt-serial[25318]: WARNING: [modbus] failed to read 3 input(s) @ 6 of device modbus:87: Serial protocol error: malformed response: invalid crc
Nov 01 15:51:07 wirenboard-AYXIHFQ6 wb-mqtt-serial[25318]: INFO: [signal handling] Received signal 15
Nov 01 15:51:07 wirenboard-AYXIHFQ6 systemd[1]: Stopping MQTT Driver for serial devices...
Nov 01 15:51:15 wirenboard-AYXIHFQ6 systemd[1]: Stopped MQTT Driver for serial devices.
Nov 01 15:56:42 wirenboard-AYXIHFQ6 systemd[1]: Started MQTT Driver for serial devices.
Nov 01 15:56:49 wirenboard-AYXIHFQ6 wb-mqtt-serial[30608]: INFO: [serial config] "WB-MSW v.3 22" channel "CO2 Force Calibration" override property "enabled"
Показать предупреждения (-p 4
), записанные драйвером wb-mqtt-serial с момента последней загрузки (-b 0
):
# journalctl -b 0 -p 4 -u wb-mqtt-serial
-- Logs begin at Sat 2021-10-30 10:25:03 +04, end at Thu 2021-11-04 18:39:29 +04. --
Nov 04 13:44:48 wirenboard-AYXIHFQ6 systemd[1]: wb-mqtt-serial.service: Main process exited, code=killed, status=4/ILL
Nov 04 13:44:48 wirenboard-AYXIHFQ6 systemd[1]: wb-mqtt-serial.service: Failed with result 'signal'.
Nov 04 13:45:23 wirenboard-AYXIHFQ6 wb-mqtt-serial[3227]: WARNING: [modbus] Register <modbus:87:input: 7> is not supported
Nov 04 13:45:23 wirenboard-AYXIHFQ6 wb-mqtt-serial[3227]: WARNING: [modbus] Register <modbus:87:input: 8> is not supported
Nov 04 14:41:30 wirenboard-AYXIHFQ6 wb-mqtt-serial[3227]: WARNING: [modbus] failed to read 3 input(s) @ 32 of device modbus:111: Serial protocol error: request timed out
Nov 04 14:49:09 wirenboard-AYXIHFQ6 wb-mqtt-serial[3227]: WARNING: [modbus] failed to read 3 coil(s) @ 0 of device modbus:111: Serial protocol error: request timed out
Сохранить журнал сервиса wb-rules в файл:
# journalctl -u wb-rules >> /tmp/log-file.txt
О том, как скопировать файл с контроллера на компьютер, читайте в статье Просмотр файлов контроллера с компьютера.
Посмотреть, когда был запущен контроллер, можно командой:
# who -b
system boot Nov 4 10:39
Так же может быть полезным узнать, когда контроллер перезагружался:
# last -x reboot
reboot system boot 5.10.35-wb6 Thu Nov 4 13:43 still running
reboot system boot 5.10.35-wb6 Thu Nov 4 10:39 still running
Посмотреть текущую версию ПО можно командой:
# wb-release
Wirenboard release wb-2108 (as stable), target wb6/stretch
Подробнее о версиях ПО можно почитать в статье Обновление прошивки контроллера Wiren Board 6.
В веб-интерфейсе контроллера
Для просмотра системного журнала из веб-интерфейса контроллера, используйте инструмент Logs.
Узнать, сколько времени работает контроллер и текущую версию ПО можно на вкладке Devices, в устройстве System. Подробнее о версиях ПО можно почитать в статье Обновление прошивки контроллера Wiren Board 6.
Выгрузка данных для отправки в техподдержку
Если вы не смогли самостоятельно найти причину неисправности и хотите обратиться в техническую поддержку — будет полезно приложить к сообщению архив с диагностической информацией.
Файл с данными представляет собой zip-архив, который содержит текстовые файлы с записями из системного журнала и служебной информацией о контроллере. Архив можно подготовить и загрузить с помощью инструмента Diagnostic collector.