如何部署Docker Kibana 7.13.2?

Docker

1 前言

一个问题,一篇文章,一出故事。
本章将实现启用Docker Kibana 7.13.2的部署。

2 部署Kibana

2.1 部署前的准备

2.1.1 部署Docker环境

以下测试基于带安全验证的ElasticSearch集群,如果你尚未准备该环境,请参阅如下章节,

如何部署Docker ElasticSearch 7.13.2的安全认证?

2.1.2 部署Nginx 反向代理境

如何部署Docker Nginx 1.20.2?

2.1.3 准备kibana镜像

In hd01

cd /data/docker/images/
docker load -i kibana:7.13.2.tar
docker tag kibana:7.13.2 hd01.cmdschool.org:5000/kibana:7.13.2
docker push hd01.cmdschool.org:5000/kibana:7.13.2
docker image rm kibana:7.13.2

另外,安装包的离线下载请在能上网的docker环境的机器上使用如下命令,

docker pull kibana:7.13.2
docker save kibana:7.13.2 -o kibana:7.13.2.tar

另外,其他版本请从以下链接下载,
https://hub.docker.com/_/kibana

2.2 部署kibana

In hd01

2.2.1 创建服务配置文件

vim /data/docker/yml/kibana7132-01-stack.yml

加入如下配置,

version: '3.6'
services:
  kibana01:
    image: 'hd01.cmdschool.org:5000/kibana:7.13.2'
    environment:
      - TZ=Asia/Shanghai
      - xpack.security.audit.enabled=true
      - ELASTICSEARCH_HOSTS=["http://es01:9200","http://es02:9200","http://es03:9200"]
      - ELASTICSEARCH_USERNAME="kibana"
      - ELASTICSEARCH_PASSWORD="kibanapwd"
      - xpack.security.encryptionKey="capwd"
      - xpack.security.secureCookies=true
      - NODE.NAME=kibana01
    networks:
      - elknet
    logging:
      driver: "json-file"
      options:
        max-size: "100m"
        max-file: "5"
    deploy:
      replicas: 1
      placement:
        constraints: [node.labels.kibana01 == true]
networks:
    elknet:
        external: true
        name: elknet

根据上面的配置,我们需要执行如下命令准备网络,

docker network create --driver=overlay --subnet=192.168.16.0/20 elknet

根据上面的配置,我们需要执行如下命令标记运行节点

docker node update --label-add  kibana01=true hd01.cmdschool.org

2.2.2 部署服务

docker stack deploy -c /data/docker/yml/kibana7132-01-stack.yml es-cluster

2.2.3 排错方法

In hd0[1-3]

docker exec -it $(docker container ls | grep es-cluster_kibana01 | awk '{print $1}') /bin/bash

然后可以使用如下命令查看ElasticSearch的日志,

tail -f /usr/share/elasticsearch/logs/gc.log

2.3 部署kibana代理

2.3.1 部署ssl配置

In hd01

mkdir -p /etc/nginx/public
vim /etc/nginx/public/cmdschool.org_ssl.conf

加入如下配置,

ssl_certificate wildcard.cmdschool.org.crt;
ssl_certificate_key wildcard.cmdschool.org.key;
ssl_protocols TLSv1.2;
ssl_ciphers ECDHE-RSA-AES256-GCM-SHA512:DHE-RSA-AES256-GCM-SHA512:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384;
ssl_prefer_server_ciphers on;

根据上面的需求,你需要将证书存放到如下路径,

/etc/nginx/wildcard.cmdschool.org.crt
/etc/nginx/wildcard.cmdschool.org.key

2.3.2 部署kibana代理配置

In hd01

vim /etc/nginx/conf.d/web.cmdschool.org_15601.conf 

加入如下配置,

server {
        listen 15601 ssl;
        listen [::]:15601 ssl;
        server_name web.cmdschool.org;
        include /etc/nginx/public/cmdschool.org_ssl.conf;

        location / {
                proxy_pass http://kibana01:5601;
        }
}

根据上面的配置,你需要创建如下别名解析,

web.cmdschool.org --> hd01.cmdschool.org

2.3.3 同步配置到其他节点

In hd01

nginxtool sync

如果你已经安装集群管理工具,则使用以上命令,否则使用如下命令手动同步配置,

rsync -avP --delete /data/docker/container-data/nginx/conf/ hd02:/data/docker/container-data/nginx/conf/
rsync -avP --delete /data/docker/container-data/nginx/conf/ hd03:/data/docker/container-data/nginx/conf/

需要注意的是,之前我们已经将“/data/docker/container-data/nginx/conf”软连接到“/etc/nginx”

2.3.4 应用节点配置

In hd0[1-3]

nginxtool reload

如果你已经安装集群管理工具,则使用以上命令,否则使用如下命令手动重载配置,

docker exec -it $(docker container ls | grep nginx | awk '{print $1}') bash
nginx -t
/etc/init.d/nginx reload

2.3.5 配置端口映射

In hd01

vim /data/docker/yml/nginx-stack.yml

增加如下配置,

  nginx:
    image: 'hd01.cmdschool.org:5000/nginx:1.20.2'
    ports:
      - target: 443
        published: 443
      - target: 80
        published: 80
      - target: 15601
        published: 15601

然后你需要执行如下命令重启服务使配置生效,

nginxtool restart

如果你已经安装集群管理工具,则使用以上命令,否则使用如下命令手动重启,

docker stack rm nginx
docker stack deploy -c /data/docker/yml/nginx-stack.yml nginx

然你,你需要使用浏览器测试如下连接的访问,
https://web.cmdschool.org:15601/

没有评论

发表回复

Docker
如何部署Docker MySQL 8.0?

1 基础知识 一个问题,一篇文章,一出故事。 本章将实现Docker MySQL 8.0的部署。 2 …

Docker
如何部署Docker Nginx 1.20.2?

1 前言 一个问题,一篇文章,一出故事。 本章将完成Docker Nginx的基础部署。 2 最佳实 …

Docker
如何打包Docker Nginx 1.20.2?

1 前言 一个问题,一篇文章,一出故事。 由于docker hub原版本的nginx镜像过于精简,于 …