使用 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.2
-
可选:为您的环境安装 Cosign。然后使用 Cosign 验证 Elasticsearch 镜像的签名。
wget https://artifacts.elastic.co/cosign.pub cosign verify --key cosign.pub docker.elastic.co/elasticsearch/elasticsearch:8.14.2
cosign
命令以 JSON 格式打印检查结果和签名有效负载。Verification for docker.elastic.co/elasticsearch/elasticsearch:8.14.2 -- 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.2
使用
-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.2
-
可选:验证 Kibana 镜像的签名。
wget https://artifacts.elastic.co/cosign.pub cosign verify --key cosign.pub docker.elastic.co/kibana/kibana:8.14.2
-
启动 Kibana 容器。
docker run --name kib01 --net elastic -p 5601:5601 docker.elastic.co/kibana/kibana:8.14.2
- 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.yml
文件,如 配置 Kibana 中所述,但也可以使用环境变量来定义设置。
绑定挂载配置编辑
在 Docker 上配置 Kibana 的一种方法是通过绑定挂载提供 kibana.yml
。使用 docker-compose
,绑定挂载可以这样指定
version: '2' services: kibana: image: docker.elastic.co/kibana/kibana:8.14.2 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.2 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.2 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.2 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
,请确保将默认值复制到自定义文件中,如果您想保留它们。否则,它们将被新文件“屏蔽”。