You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VictoriaMetrics单实例向syslog输出大量乱码日志的排查与解决

vmsingle日志出现"cannot unmarshal json line"乱码错误的原因及解决方法

问题现象

May 25 20:38:41 victoriametrics-1 vmsingle[17279]: 2023-05-25T20:38:41.703Z#011error#011VictoriaMetrics/lib/protoparser/vmimport/parser.go:239#011cannot unmarshal json line "5\x1do\x00)6o\x00Lread_duration_second\xf2S\x01\x00aB\xb5\x04=S\x01n\x04er\xcem\x06.@\x01\bf": cannot parse json line: unexpected tail: "\x1do\x00)6o\x00Lread_duration_second\xf2S\x01\x00aB\xb5\x04=S\x01n\x04er\xcem\x06.@\x01\bf"; skipping it

可能原因

  • 接口格式不匹配:vmsingle的/api/v1/import接口用于解析特定格式的文本数据(如vmimport格式),但如果vmagent或其他客户端用remoteWrite的protobuf格式向该接口发送数据,会触发解析错误。
  • 传输链路数据损坏:vmagent到vmsingle之间的网络不稳定,存在丢包、字节截断情况,导致原本合法的数据变成乱码。
  • vmagent配置错误:错误将remoteWrite的目标地址指向了vmsingle的/api/v1/import端点,而非标准的/api/v1/write端点;或者remoteWrite的格式配置不符合要求。
  • 非法数据源写入:有其他服务或客户端向vmsingle的/api/v1/import接口发送了非预期的二进制数据,导致解析失败。

解决方法

  1. 修正vmagent的remoteWrite配置
    确保vmagent的remoteWrite目标指向vmsingle的标准写入端点,配置示例:

    remoteWrite:
      - url: "http://vmsingle:8428/api/v1/write"
    

    避免将remoteWrite数据发送到/api/v1/import接口。

  2. 排查网络传输问题
    检查vmagent与vmsingle之间的网络链路,确认是否存在中间代理(如Nginx)修改或截断数据。可以临时开启vmagent的debug日志(添加-logLevel=debug启动参数),查看发送的数据格式是否正常。

  3. 限制vmimport接口的访问权限
    如果不需要对外提供/api/v1/import导入服务,可通过防火墙或vmsingle的访问控制规则,限制该接口仅对合法导入客户端开放,拦截非法流量。

  4. 定位非法数据源
    若vmsingle启用了访问日志,查看日志中访问/api/v1/import的客户端IP,确认是否为合法数据源。对于非法来源,直接在网络层面拦截其流量。

  5. 升级VictoriaMetrics版本
    如果是版本兼容性bug导致的解析错误,将vmagent和vmsingle升级到最新稳定版本,新版本通常会修复此类解析问题。

内容的提问来源于stack exchange,提问作者forkie

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.20 22:34:58