使用 Docker 安装 Kibana
编辑使用 Docker 安装 Kibana
编辑Kibana 的 Docker 镜像可从 Elastic Docker 注册表获取。基础镜像为 ubuntu:20.04。
所有已发布的 Docker 镜像和标签的列表可在 www.docker.elastic.co 上找到。源代码位于 GitHub 上。
这些镜像包含免费和订阅功能。 开始 30 天试用,体验所有功能。
在 Docker 中运行 Kibana 进行开发
编辑使用 Docker 命令在单节点 Elasticsearch 集群上运行 Kibana 进行开发或测试。
此设置默认不运行多个 Elasticsearch 节点。要创建带有 Kibana 的多节点集群,请改用 Docker Compose。请参阅 Elasticsearch 文档中的 使用 Docker Compose 启动多节点集群。
-
安装 Docker。访问 获取 Docker 以安装适用于您环境的 Docker。
如果使用 Docker Desktop,请确保分配至少 4GB 的内存。您可以通过转到 设置 > 资源 在 Docker Desktop 中调整内存使用量。
-
为 Elasticsearch 和 Kibana 创建新的 Docker 网络。
docker network create elastic
-
拉取 Elasticsearch Docker 镜像。
docker pull docker.elastic.co/elasticsearch/elasticsearch:8.17.0
-
可选:为您的环境安装 Cosign。然后使用 Cosign 验证 Elasticsearch 镜像的签名。
wget https://artifacts.elastic.co/cosign.pub cosign verify --key cosign.pub docker.elastic.co/elasticsearch/elasticsearch:8.17.0
cosign
命令以 JSON 格式打印检查结果和签名负载Verification for docker.elastic.co/elasticsearch/elasticsearch:8.17.0 -- The following checks were performed on each of these signatures: - The cosign claims were validated - Existence of the claims in the transparency log was verified offline - The signatures were verified against the specified public key
-
启动 Elasticsearch 容器。
docker run --name es01 --net elastic -p 9200:9200 -it -m 1GB docker.elastic.co/elasticsearch/elasticsearch:8.17.0
使用
-m
标志设置容器的内存限制。这消除了手动设置 JVM 大小 的需要。该命令会打印
elastic
用户密码和 Kibana 的注册令牌。 -
复制生成的
elastic
密码和注册令牌。这些凭据仅在您第一次启动 Elasticsearch 时显示。您可以使用以下命令重新生成凭据。docker exec -it es01 /usr/share/elasticsearch/bin/elasticsearch-reset-password -u elastic docker exec -it es01 /usr/share/elasticsearch/bin/elasticsearch-create-enrollment-token -s kibana
-
拉取 Kibana Docker 镜像。
docker pull docker.elastic.co/kibana/kibana:8.17.0
-
可选:验证 Kibana 镜像的签名。
wget https://artifacts.elastic.co/cosign.pub cosign verify --key cosign.pub docker.elastic.co/kibana/kibana:8.17.0
-
启动 Kibana 容器。
docker run --name kib01 --net elastic -p 5601:5601 docker.elastic.co/kibana/kibana:8.17.0
- Kibana 启动时,会在终端输出一个唯一生成的链接。要访问 Kibana,请在 Web 浏览器中打开此链接。
-
在您的浏览器中,输入启动 Elasticsearch 时生成的注册令牌。
要重新生成令牌,请运行
docker exec -it es01 /usr/share/elasticsearch/bin/elasticsearch-create-enrollment-token -s kibana
-
使用启动 Elasticsearch 时生成的密码,以
elastic
用户身份登录 Kibana。要重新生成密码,请运行
docker exec -it es01 /usr/share/elasticsearch/bin/elasticsearch-reset-password -u elastic
删除 Docker 容器
编辑要删除容器及其网络,请运行
# Remove the Elastic network docker network rm elastic # Remove the Elasticsearch container docker rm es01 # Remove the Kibana container docker rm kib01
在 Docker 上配置 Kibana
编辑Docker 镜像提供了几种配置 Kibana 的方法。传统方法是按照 配置 Kibana 中所述,提供 kibana.yml
文件,但也可以使用环境变量来定义设置。
绑定挂载配置
编辑在 Docker 上配置 Kibana 的一种方法是通过绑定挂载提供 kibana.yml
。使用 docker-compose
,可以像这样指定绑定挂载
version: '2' services: kibana: image: docker.elastic.co/kibana/kibana:8.17.0 volumes: - ./kibana.yml:/usr/share/kibana/config/kibana.yml
持久化 Kibana 密钥库
编辑默认情况下,Kibana 会在启动时为安全设置自动生成密钥库文件。要持久化您的安全设置,请使用 kibana-keystore
实用程序将密钥库的父目录绑定挂载到容器。例如
docker run -it --rm -v full_path_to/config:/usr/share/kibana/config -v full_path_to/data:/usr/share/kibana/data docker.elastic.co/kibana/kibana:8.17.0 bin/kibana-keystore create docker run -it --rm -v full_path_to/config:/usr/share/kibana/config -v full_path_to/data:/usr/share/kibana/data docker.elastic.co/kibana/kibana:8.17.0 bin/kibana-keystore add test_keystore_setting
环境变量配置
编辑在 Docker 下,可以通过环境变量配置 Kibana。当容器启动时,一个辅助进程会检查环境,查找可以映射到 Kibana 命令行参数的变量。
为了与容器编排系统兼容,这些环境变量全部用大写字母编写,单词分隔符为下划线。辅助进程会将这些名称转换为有效的 Kibana 设置名称。
您在环境变量中包含的所有信息都可通过 ps
命令查看,包括敏感信息。
这里显示了一些示例转换
表 1. 示例 Docker 环境变量
环境变量 |
Kibana 设置 |
|
|
|
|
|
|
通常,配置 Kibana 中列出的任何设置都可以使用此技术进行配置。
提供数组选项可能比较棘手。以下示例显示了为 ELASTICSEARCH_HOSTS
提供数组的语法。
可以使用 docker-compose
像这样设置这些变量
version: '2' services: kibana: image: docker.elastic.co/kibana/kibana:8.17.0 environment: SERVER_NAME: kibana.example.org ELASTICSEARCH_HOSTS: '["http://es01:9200","http://es02:9200","http://es03:9200"]'
由于环境变量被转换为 CLI 参数,因此它们优先于在 kibana.yml
中配置的设置。
Docker 默认值
编辑使用 Docker 镜像时,以下设置具有不同的默认值
|
|
|
|
|
|
|
|
这些设置在默认的 kibana.yml
中定义。可以使用自定义 kibana.yml
或通过 环境变量覆盖它们。
如果使用自定义版本替换 kibana.yml
,请确保将默认值复制到自定义文件中(如果您想保留它们)。否则,它们将被新文件“屏蔽”。