如何部署Docker Kibana 7.13.2?
- By : Will
- Category : Docker, Elastic Stack
1 前言
一个问题,一篇文章,一出故事。
本章将实现启用Docker Kibana 7.13.2的部署。
2 部署Kibana
2.1 部署前的准备
2.1.1 部署Docker环境
以下测试基于带安全验证的ElasticSearch集群,如果你尚未准备该环境,请参阅如下章节,
2.1.2 部署Nginx 反向代理境
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/
没有评论