Elastic 日志插件配置选项

编辑

Elastic 日志插件配置选项编辑

使用以下选项配置 Elastic 日志插件 for Docker。您可以使用 --log-opt 标志在启动容器时传递这些选项,或者您可以在 daemon.json 文件中为所有容器设置它们。

使用示例编辑

在启动容器时设置配置选项

docker run --log-driver=elastic/elastic-logging-plugin:8.14.3 \
           --log-opt hosts="https://myhost:9200" \
           --log-opt user="myusername" \
           --log-opt password="mypassword" \
           -it debian:jessie /bin/bash

daemon.json 文件中为所有容器设置配置选项

{
  "log-driver" : "elastic/elastic-logging-plugin:8.14.3",
  "log-opts" : {
    "hosts" : "https://myhost:9200",
    "user" : "myusername",
    "password" : "mypassword"
  }
}

有关更多示例,请参阅 使用示例

Elastic Cloud 选项编辑

选项 描述

cloud_id

在 Elastic Cloud 网页控制台中找到的云 ID。此 ID 用于在连接到 Elastic Cloud 上的 Elasticsearch 服务时解析 Elastic Stack URL。

cloud_auth

连接到 Elastic Cloud 上的 Elasticsearch 服务的用户名和密码组合。格式为 "username:password"

Elasticsearch 输出选项编辑

选项 默认值 描述

hosts

"localhost:9200"

要连接到的 Elasticsearch 节点列表。将每个节点指定为 URLIP:PORT。例如:http://192.0.2.0https://myhost:9230192.0.2.0:9300。如果未指定端口,则默认为 9200

user

连接到 Elasticsearch 的基本身份验证用户名。

password

连接到 Elasticsearch 的基本身份验证密码。

index

一个 格式字符串 值,用于指定在使用每日索引时写入事件的索引。例如:"dockerlogs-%{+yyyy.MM.dd}"

高级

name

testbeat

一个自定义值,将作为 agent.name 插入文档。如果未设置,它将是 Docker 主机的 hostname。

backoff_init

1s

在网络错误后尝试重新连接到 Elasticsearch 之前等待的秒数。在等待 backoff.init 秒后,Elastic 日志插件尝试重新连接。如果尝试失败,则指数递增回退计时器,直到达到 backoff.max。连接成功后,回退计时器将重置。

backoff_max

60s

在网络错误后尝试连接到 Elasticsearch 之前等待的最大秒数。

api_key

您可以使用 API 密钥来保护与 Elasticsearch 的通信,而不是使用用户名和密码。

pipeline

一个格式字符串值,用于指定写入事件的 Elasticsearch 摄取管道。

timeout

90

Elasticsearch 请求的 http 请求超时(秒)。

proxy_url

连接到 Elasticsearch 服务器时使用的代理的 URL。该值可以是完整的 URL 或 host[:port],在这种情况下,将假定使用 http 方案。如果没有通过配置文件指定值,则使用代理环境变量。有关环境变量的更多信息,请参阅 Go 文档

配置本地日志编辑

此插件完全支持 docker logs,并且它维护本地日志副本,可以在没有连接到 Elasticsearch 的情况下读取这些日志。该插件将主机上的 /var/lib/docker 目录挂载到主机上的 /var/log/containers 以写入日志。如果您想更改主机上的日志位置,则必须更改插件内的挂载点

  1. 禁用插件

    docker plugin disable elastic/elastic-logging-plugin:8.14.3
  2. 设置绑定挂载目录

    docker plugin set elastic/elastic-logging-plugin:8.14.3 LOG_DIR.source=NEW_LOG_LOCATION
  3. 启用插件

    docker plugin enable elastic/elastic-logging-plugin:8.14.3

本地日志还支持 max-filemax-sizecompress 选项,这些选项是 Docker 默认文件记录器的一部分。例如

docker run --log-driver=elastic/elastic-logging-plugin:8.14.3 \
           --log-opt hosts="myhost:9200" \
           --log-opt user="myusername" \
           --log-opt password="mypassword" \
           --log-opt max-file=10 \
           --log-opt max-size=5M \
           --log-opt compress=true \
           -it debian:jessie /bin/bash

在日志难以管理的情况下,例如,您还可以配置插件在容器停止时删除日志文件。这将阻止您读取已停止容器上的日志,但它将在没有用户干预的情况下轮换日志。要启用对已停止容器的日志删除,您必须更改 DESTROY_LOGS_ON_STOP 环境变量

  1. 禁用插件

    docker plugin disable elastic/elastic-logging-plugin:8.14.3
  2. 启用日志删除

    docker plugin set elastic/elastic-logging-plugin:8.14.3 DESTROY_LOGS_ON_STOP=true
  3. 启用插件

    docker plugin enable elastic/elastic-logging-plugin:8.14.3