Telegraf 1.22.1配置connection_timeout后遇网络错误无法自动重启
解决Telegraf 1.22.1 MQTT连接失败后无法自动重启的问题
问题原因
你遇到的是Telegraf启动初始化阶段的连接失败——此时agent还没完全启动,connection_timeout配置只对运行中的连接重试生效,无法覆盖启动时的连接失败场景,导致进程直接退出。
修复方案
1. 启用MQTT输入的persistent_session配置
在inputs.mqtt_consumer配置块中添加:
persistent_session = true
这个配置会让Telegraf在连接失败时保持会话并自动重试,即使是启动阶段的连接问题也会触发重试逻辑。
2. 配合reconnect_interval配置
同时添加重试间隔配置,控制重试频率:
reconnect_interval = "30s"
可根据实际需求调整时间,比如设置为"1m"(1分钟)。
3. 使用进程管理工具兜底
如果上述配置仍不生效,用系统进程管理工具确保Telegraf退出后自动重启:
- systemd(Linux):编辑Telegraf的systemd服务文件(通常路径为
/etc/systemd/system/telegraf.service),确保包含以下配置:
然后执行命令重载配置并重启服务:Restart=always RestartSec=10sudo systemctl daemon-reload sudo systemctl restart telegraf - supervisord:在supervisord配置文件中添加:
[program:telegraf] command=/usr/bin/telegraf --config /etc/telegraf/telegraf.conf autorestart=true startretries=10
验证方式
修改配置后重启Telegraf,手动断开MQTT Broker,观察Telegraf进程是否会持续尝试连接,而非直接退出。
内容的提问来源于stack exchange,提问作者Snehasish Char
相关产品推荐
相关产品推荐

