На контроллере по инструкции установлен Telegraf в docker, который читает параметры из Mqtt и отправляет их в influxDB (крутится на другой машине в другом сегменте сети), дальше Grafana. Все прекрасно работает пару суток, потом данные в influxDB перестают поступать. После перезагрузки контроллера все возобновляет работу.
Вопрос: как диагностировать причину прекращения работы Telegraf?
2025/06/04 в 11:00 данные прекратили поступать, в 22:10 перезапустил
2025/06/08 в 14:50 данные прекрати поступать, в 2025/06/09 в 19:40 перезапустил
telegraf.log (362,3 КБ)
Добрый день!
Во время потери связи рекомендуется выполнить следующие проверки, чтобы определить причину:
- Проверка состояния контейнера Telegraf
На контроллере выполните команды:
docker ps -a
docker logs <имя_контейнера>
- Проверка сетевой доступности MQTT-брокера
Выполните с контроллера:
ping 192.168.1.100
telnet 192.168.1.100 1883
Если ping
успешен, но telnet
не подключается — возможна проблема на стороне брокера или в маршрутизации.
- Проверка доступности системных ресурсов на контроллере
Запустите команды:
free -m
df -h
htop
Следует обратить внимание на объём свободной оперативной памяти, свободное место на накопителе и общую загрузку системы.
Добрый день, удалось ли решить вопрос?
Здравствуйте. Ресурсы не перегружаются более половины никогда. В моменте все пингуется. Контейнер функционирует, но в какой-то момент, видимо из-за временных проблем на канале (телеграф и инфлюкс физически находятся на разных машинах на удаленном расстоянии) телеграф не может отправить пакеты данных. Думаю необходимо откорректировать файл настроек телеграфа таким образом, чтобы увеличить периоды отправки и может там есть еще настройки для нестабильного соединения. Есть ли пример таких настроек?
Добрый день!
Про таймауты и их настройку точно не подскажу, но я бы рекомендовал в первую очередь проверить стабильность канала связи — он не должен прерываться, поскольку это уже аварийная ситуация.
Также, если такие обрывы всё же происходят, можно реализовать автоматический перезапуск нужного контейнера в случае аварийного состояния — это поможет восстановить его работу.
Сегменты сети объединены через wireguard, на стабильность влияют факторы, которые не подконтрольны (провайдеры, отключение электричества).
Сам контейнер телеграфа продолжает работать (политика перезапуска: если не остановлен), видимо, просто не может отправить накопившиеся пакеты.
Как можно отследить момент переполнения пакетов на отправку и тогда перепустить контейнер?
Добрый день!
К сожалению, готового решения назвать не могу — я бы начал с анализа ошибок, а далее настроил проверку состояния контейнера на основе ошибок в логах через HEALTHCHECK.
Добрый день, удалось ли решить вопрос?