Elastic Logging 插件配置选项

编辑

Elastic Logging 插件配置选项

编辑

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

使用示例

编辑

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

docker run --log-driver=elastic/elastic-logging-plugin:8.17.0 \
           --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.17.0",
  "log-opts" : {
    "hosts" : "https://myhost:9200",
    "user" : "myusername",
    "password" : "mypassword"
  }
}

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

Elastic Cloud 选项

编辑
选项 描述

cloud_id

在 Elastic Cloud Web 控制台中找到的 Cloud ID。此 ID 用于在连接到 Elastic Cloud 上的 Elasticsearch Service 时解析 Elastic Stack URL。

cloud_auth

连接到 Elastic Cloud 上的 Elasticsearch Service 的用户名和密码组合。格式为 "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 主机的主机名。

backoff_init

1s

在发生网络错误后尝试重新连接到 Elasticsearch 之前等待的秒数。在等待 backoff.init 秒后,Elastic Logging 插件会尝试重新连接。如果尝试失败,则回退计时器将呈指数增长,直到 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.17.0
  2. 设置绑定挂载目录

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

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

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

docker run --log-driver=elastic/elastic-logging-plugin:8.17.0 \
           --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.17.0
  2. 启用日志删除

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

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