Kibana:使用 Docker 安装 Kibana - 8.x

 Kibana 的 Docker 镜像可从 Elastic Docker 注册中心获得。 基本映像是 ubuntu:20.04www.docker.elastic.co 上提供了所有已发布的 Docker 图像和标签的列表。 源代码在 GitHub 中。

这些镜像包含免费和订阅功能。 开始 30 天试用以试用所有功能。

如果你还没有安装好自己的 Elasticsearch,你可以参考之前的文章 “Elasticsearch:验证 Elasticsearch Docker 镜像并安装 Elasticsearch”。

在 Docker 上运行 Kibana 进行开发

1)启动一个用于开发或测试的 Elasticsearch 容器:

注意:如果你已经安装好 Elasticsearch,你可以忽略下面的这个步骤。

  • 为 Elasticsearch 和 Kibana 创建一个新的 Docker 网络:
docker network create elastic
  • 拉取 Elasticsearch Docker 镜像:
docker pull docker.elastic.co/elasticsearch/elasticsearch:8.8.0
  • 可选:验证 Elasticsearch Docker 镜像签名:
wget https://artifacts.elastic.co/cosign.pub
cosign verify --key cosign.pub docker.elastic.co/kibana/kibana:8.8.0

该步骤详见 Elasticsearch:验证 Elasticsearch Docker 镜像并安装 Elasticsearch

  • 在 Docker 中启动 Elasticsearch:
docker run --name es-node01 --net elastic -p 9200:9200 -p 9300:9300 -t docker.elastic.co/elasticsearch/elasticsearch:8.8.0

首次启动 Elasticsearch 时,会自动进行以下安全配置:

  • 为传输层和 HTTP 层生成证书和密钥。
  • 传输层安全性 (TLS) 配置设置写入 elasticsearch.yml。
  • 为 elastic 用户生成密码。
  • 为 Kibana 生成注册令牌。

注意:你可能需要在终端中向后滚动一点才能查看密码和注册令牌。

2)复制生成的密码和注册令牌并将它们保存在安全位置。 这些值仅在你首次启动 Elasticsearch 时显示。 你将使用这些将 Kibana 注册到你的 Elasticsearch 集群并登录。

3)在新的终端会话中,启动 Kibana 并将其连接到你的 Elasticsearch 容器:

docker pull docker.elastic.co/kibana/kibana:8.8.0
docker run --name kib-01 --net elastic -p 5601:5601 docker.elastic.co/kibana/kibana:8.8.0
  • 拉取 Kibana Docker 镜像:
docker pull docker.elastic.co/kibana/kibana:8.8.0

  • 可选:验证 Kibana Docker 镜像签名:
wget https://artifacts.elastic.co/cosign.pub
cosign verify --key cosign.pub docker.elastic.co/kibana/kibana:8.8.0

该步骤详见 Elasticsearch:验证 Elasticsearch Docker 镜像并安装 Elasticsearch

  • 在 Docker 中启动 Kibana:
docker run --name kib-01 --net elastic -p 5601:5601 docker.elastic.co/kibana/kibana:8.8.0

当你启动 Kibana 时,一个唯一的链接会输出到你的终端。

生成密码和注册令牌

如果需要重置 elastic 用户或其他内置用户的密码,请运行 elasticsearch-reset-password 工具。 该工具位于 Docker 容器的 Elasticsearch bin 目录中。

例如,重置 elastic 用户的密码:

docker exec -it es-node01 /usr/share/elasticsearch/bin/elasticsearch-reset-password -u elastic

如果您需要为 Kibana 或 Elasticsearch 节点生成新的注册令牌,请运行 elasticsearch-create-enrollment-token 工具。 该工具位于 Docker 容器的 Elasticsearch bin 目录中。

例如,要为 Kibana 生成一个新的注册令牌:

docker exec -it es-node01 /usr/share/elasticsearch/bin/elasticsearch-create-enrollment-token -s kibana

移除 Docker 容器

要删除容器及其网络,请运行: 

docker network rm elastic
docker rm es-node01
docker rm kib-01

在 Docker 上配置 Kibana

Docker 镜像提供了多种配置 Kibana 的方法。 传统方法是提供一个 kibana.yml 文件,如配置 Kibana 中所述,但也可以使用环境变量来定义设置。

绑定安装配置

在 Docker 上配置 Kibana 的一种方法是通过绑定安装提供 kibana.yml。 使用 docker-compose,可以像这样指定绑定挂载:

version: '2'
services:
  kibana:
    image: docker.elastic.co/kibana/kibana:8.8.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.8.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.8.0 bin/kibana-keystore add test_keystore_setting

环境变量配置

在 Docker 下,可以通过环境变量配置 Kibana。 当容器启动时,辅助进程会检查环境中是否存在可映射到 Kibana 命令行参数的变量。

为了兼容容器编排系统,这些环境变量全部大写,下划线作为单词分隔符。 帮助程序将这些名称转换为有效的 Kibana 设置名称。

注意:通过 ps 命令可以看到你包含在环境变量中的所有信息,包括敏感信息。

此处显示了一些示例翻译:

表 1. 示例 Docker 环境变量
 环境变量 Kibana 设置
SERVER_NAME server.name
SERVER_BASEPATH server.basePath
ELASTICSEARCH_HOSTS elasticsearch.hosts

通常,配置 Kibana 中列出的任何设置都可以使用此技术进行配置。

提供数组选项可能很棘手。 以下示例显示了为 ELASTICSEARCH_HOSTS 提供数组的语法。

这些变量可以像这样用 docker-compose 设置:

version: '2'
services:
  kibana:
    image: docker.elastic.co/kibana/kibana:8.8.0
    environment:
      SERVER_NAME: kibana.example.org
      ELASTICSEARCH_HOSTS: '["http://es01:9200","http://es02:9200","http://es03:9200"]'

由于环境变量被转换为 CLI 参数,因此它们优先于 kibana.yml 中配置的设置。

Docker 默认值

使用 Docker 镜像时,以下设置具有不同的默认值:

server.host "0.0.0.0"
server.shutdownTimeout "5s"
elasticsearch.hosts http://elasticsearch:9200
monitoring.ui.container.elasticsearch.enabled true

这些设置在默认的 kibana.yml 中定义。 可以使用自定义 kibana.yml 或通过环境变量覆盖它们。

重要:如果用自定义版本替换 kibana.yml,如果要保留它们,请务必将默认值复制到自定义文件。 否则,它们将被新文件 “屏蔽”。

猜你喜欢

转载自blog.csdn.net/UbuntuTouch/article/details/130921373