InfluxDB 1.8写入请求返回HTTP 204但数据未存储问题排查求助
问题根因说明
你日志里出现的root字段是InfluxDB HTTP访问日志的标准认证用户字段,并非多余标识,也不是导致数据未入库的原因:你Python请求携带了Basic认证头(解码后为用户名root、密码root),所以日志会显示登录用户名,另外两个工具用匿名写入所以对应位置显示-,属于正常差异。
你数据写入返回204但未入库的真实原因可从抓包的行协议数据定位:你写入的点时间戳为1612891545000000000,换算为UTC时间是2021年2月9日,远早于你实际写入的2021年9月,大概率是你的fritzbox库的保留策略时长设置小于7个月,超过保留时长的旧数据写入时会被InfluxDB直接丢弃,但接口依然返回204成功,这是InfluxDB 1.x的标准行为。
解决方案
解决数据未入库问题
- 登录InfluxDB执行以下命令查看fritzbox库的保留策略:
SHOW RETENTION POLICIES ON "fritzbox"
- 若返回结果里的
DURATION字段值小于7个月,可选择两种修复方式:
- 调整保留策略时长,比如调整为保留1年:
ALTER RETENTION POLICY <你的保留策略名称> ON "fritzbox" DURATION 365d DEFAULT
- 修正Python脚本里的时间戳生成逻辑,写入当前时间的点位而非历史过期点位。
去掉日志里的root标识(非必要)
如果确认不需要认证即可写入InfluxDB,只需删除Python脚本中InfluxDB连接配置里的用户名、密码参数,请求就会变成匿名写入,日志对应位置就会显示-而非root。
内容的提问来源于stack exchange,提问作者LordOfTheSnow
相关产品推荐
相关产品推荐

