json - Docker 守护进程无法处理日志

标签 json docker logging debian daemon

Docker 守护进程无法解析 json 日志并抛出 unexpected EOF错误。我们正在调查问题的根本原因。
环境:

  • Debian 4.9.189-3+deb9u2
  • Docker 引擎 19.03.5

  • Docker 守护进程日志:
    Apr 29 14:31:05 Prod-IS dockerd[30810]: time="2020-04-29T14:31:05.070677515+02:00" level=warning msg="got error while decoding json" error="unexpected EOF" retries=345
    Apr 29 14:31:05 Prod-IS dockerd[30810]: time="2020-04-29T14:31:05.070695689+02:00" level=warning msg="got error while decoding json" error="unexpected EOF" retries=346
    Apr 29 14:31:05 Prod-IS dockerd[30810]: time="2020-04-29T14:31:05.070712630+02:00" level=warning msg="got error while decoding json" error="unexpected EOF" retries=347
    Apr 29 14:31:05 Prod-IS dockerd[30810]: time="2020-04-29T14:31:05.070732299+02:00" level=warning msg="got error while decoding json" error="unexpected EOF" retries=348
    Apr 29 14:31:05 Prod-IS dockerd[30810]: time="2020-04-29T14:31:05.070755016+02:00" level=warning msg="got error while decoding json" error="unexpected EOF" retries=349
    Apr 29 14:31:05 Prod-IS dockerd[30810]: time="2020-04-29T14:31:05.070773699+02:00" level=warning msg="got error while decoding json" error="unexpected EOF" retries=350
    
    Docker 守护进程配置
    "log-driver": "json-file",
    "log-opts": {
      "mode": "non-blocking",
      "max-size": "500m",
      "max-file": "3"
    }
    
    存储空间在 docker 写入日志的分区上可用。
    非常欢迎您对此事的见解。

    最佳答案

    问题=Docker 引擎错误 json 文件:修复偶发性意外 EOF 错误
    我花了一些时间研究并尝试查找 docker 中的错误
    日志。
    docker 引擎 20.10.5 中存在一个错误,该版本是在 docker 中运行的版本。 Github PR 解决了这个问题。 https://github.com/moby/moby/pull/42104
    我在运行时发现错误

    $ journalctl -u docker.service
    level=warning msg="got error while decoding json" error="unexpected EOF" retries=19999
    
    用于日志的 Docker 驱动程序有一个错误,它不会处理某些日志格式。然后,该错误会用重试消息淹没系统日志。这种情况会产生非常烦人的 CPU 负载。
    Docker 引擎最新版本是 20.10.7。该问题已在发布 Docker 引擎 20.10.6 https://docs.docker.com/engine/release-notes/#20106 中得到修复。

    关于json - Docker 守护进程无法处理日志,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61519117/

    相关文章:

    java - Logback 日志记录 - 同步或异步

    javascript - Knockoutjs 嵌套的 observableArrays

    php - 如何基于启用a2enmod重写的php镜像创建容器?

    json - Spring Boot应用程序可以在IntelliJ中运行,但不能作为Docker容器运行

    python - 通过 Flask 应用程序进行 Sentry 日志记录

    Java 自定义记录器 : logging standards or/and best practices

    javascript - Angularjs 将子对象添加到 Json 对象

    json - JSONEncoder.encode 在 Swift 中抛出什么异常?

    JSON 到 Scala 代码生成

    docker - 在 Jenkinsfile 中使用 Dockerfile 创建的 docker 容器内运行命令