使用 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.14.3
-
可选:为您的环境安装 Cosign。然后使用 Cosign 验证 Elasticsearch 镜像的签名。
wget https://artifacts.elastic.co/cosign.pub cosign verify --key cosign.pub docker.elastic.co/elasticsearch/elasticsearch:8.14.3
cosign
命令以 JSON 格式打印检查结果和签名负载Verification for docker.elastic.co/elasticsearch/elasticsearch:8.14.3 -- 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.14.3
使用
-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.14.3
-
可选:验证 Kibana 镜像的签名。
wget https://artifacts.elastic.co/cosign.pub cosign verify --key cosign.pub docker.elastic.co/kibana/kibana:8.14.3
-
启动 Kibana 容器。
docker run --name kib01 --net elastic -p 5601:5601 docker.elastic.co/kibana/kibana:8.14.3
- 当 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.14.3 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.14.3 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.14.3 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.14.3 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
,请确保将默认值复制到自定义文件中(如果要保留它们)。否则,它们将被新文件“屏蔽”。