docker-compose deploy 高可用 elasticsearch TLS

news/2024/7/7 5:49:23 标签: docker, elasticsearch, 容器

文章目录

    • 1.sysctl
    • 2. swap
    • 3. hosts
    • 4. 配置 instances.yaml
    • 5. 创建证书
    • 6. 部署
    • 7. 修改 kibanna 密码
    • 8. 清理

1.sysctl

[root@github es_tls]# cat /etc/sysctl.conf 
# sysctl settings are defined through files in
# /usr/lib/sysctl.d/, /run/sysctl.d/, and /etc/sysctl.d/.
#
# Vendors settings live in /usr/lib/sysctl.d/.
# To override a whole file, create a new file with the same in
# /etc/sysctl.d/ and put new settings there. To override
# only specific settings, add a file with a lexically later
# name in /etc/sysctl.d/ and put new settings there.
#
# For more information, see sysctl.conf(5) and sysctl.d(5).

net.ipv4.ip_forward = 1
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1

net.netfilter.nf_conntrack_max = 262144
net.nf_conntrack_max = 262144


fs.aio-max-nr = 1065535
kernel.pid_max = 600000
net.ipv4.tcp_max_syn_backlog = 30000
net.core.somaxconn = 65535
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_timestamps = 1
net.ipv4.ip_forward = 1
net.ipv4.ip_local_reserved_ports = 30000-32767
net.ipv4.ip_local_port_range = 1024 65000
net.core.netdev_max_backlog = 300000
net.ipv4.tcp_rmem = 4096 87380 134217728
net.ipv4.tcp_wmem = 4096 87380 134217728
net.ipv4.tcp_sack = 0
net.ipv4.tcp_fin_timeout = 20
net.ipv6.conf.default.forwarding = 1
net.ipv6.conf.all.forwarding = 1
net.ipv6.route.max_size = 2147483647
net.ipv6.conf.all.accept_redirects = 0
net.ipv6.conf.default.accept_redirects = 0
vm.swappiness = 0
vm.max_map_count = 262144
fs.inotify.max_user_watches=1048576


2. swap

swapoff -a

3. hosts

echo "10.253.219.1 es01 es02 es03 kib01" >>  /etc/hosts

4. 配置 instances.yaml

$ vim instances.yaml
instances:
  - name: es01
    dns:
      - es01 
    ip:
      - 10.253.219.1

  - name: es02
    dns:
      - es02
    ip:
      - 10.253.219.1

  - name: es03
    dns:
      - es03
    ip:
      - 10.253.219.1

  - name: 'kib01'
    dns:
      - kib01
    ip:
      - 10.253.219.1


$ cat .env
COMPOSE_PROJECT_NAME=es 
CERTS_DIR=/usr/share/elasticsearch/config/certificates 
VERSION=7.17.6

$ mkdir -p /usr/share/elasticsearch/config/certificates

5. 创建证书

$ sudo docker-compose -f create-certs.yml run --rm create_certs
[+] Creating 1/0
 ✔ Volume "es_certs"  Created                                                                                                                                           0.0s 
Archive:  /certs/bundle.zip
   creating: /certs/ca/
  inflating: /certs/ca/ca.crt        
   creating: /certs/es01/
  inflating: /certs/es01/es01.crt    
  inflating: /certs/es01/es01.key    
   creating: /certs/es02/
  inflating: /certs/es02/es02.crt    
  inflating: /certs/es02/es02.key    
   creating: /certs/es03/
  inflating: /certs/es03/es03.crt    
  inflating: /certs/es03/es03.key    
   creating: /certs/kib01/
  inflating: /certs/kib01/kib01.crt  
  inflating: /certs/kib01/kib01.key  
$ sudo docker volume ls|grep es
local               es_certs

$ sudo ls /apps/data/docker/volumes/es_certs/_data
bundle.zip  ca	es01  es02  es03  kib01


6. 部署

$ sudo  docker-compose up -d
[+] Running 7/7
 ✔ Volume "es_data03"  Created                                                                                                                                          0.0s 
 ✔ Volume "es_data01"  Created                                                                                                                                          0.0s 
 ✔ Volume "es_data02"  Created                                                                                                                                          0.0s 
 ✔ Container es02      Started                                                                                                                                         10.8s 
 ✔ Container es01      Healthy                                                                                                                                         43.9s 
 ✔ Container es03      Started                                                                                                                                         10.8s 
 ✔ Container kib01     Started                                                                                                                                         40.6s 
$ sudo  docker-compose ps
NAME                IMAGE                                                  COMMAND                  SERVICE             CREATED             STATUS                    PORTS
es01                docker.elastic.co/elasticsearch/elasticsearch:7.17.6   "/bin/tini -- /usr/l…"   es01                53 seconds ago      Up 42 seconds (healthy)   0.0.0.0:9200->9200/tcp, 9300/tcp
es02                docker.elastic.co/elasticsearch/elasticsearch:7.17.6   "/bin/tini -- /usr/l…"   es02                53 seconds ago      Up 42 seconds             9200/tcp, 9300/tcp
es03                docker.elastic.co/elasticsearch/elasticsearch:7.17.6   "/bin/tini -- /usr/l…"   es03                53 seconds ago      Up 42 seconds             9200/tcp, 9300/tcp
kib01               docker.elastic.co/kibana/kibana:7.17.6                 "/bin/tini -- /usr/l…"   kib01               46 seconds ago      Up 6 seconds              0.0.0.0:5601->5601/tcp


$ sudo docker exec es01 /bin/bash -c "bin/elasticsearch-setup-passwords auto --batch --url https://es01:9200"
Changed password for user apm_system
PASSWORD apm_system = 6Je1ftTgEv7DrFzhNMDf

Changed password for user kibana_system
PASSWORD kibana_system = ZYbQBQXHHPYJvq6r2RVM

Changed password for user kibana
PASSWORD kibana = ZYbQBQXHHPYJvq6r2RVM

Changed password for user logstash_system
PASSWORD logstash_system = e7a3mdoDvEstm74ym4SK

Changed password for user beats_system
PASSWORD beats_system = SkNQ624TS29y5EAD9bXP

Changed password for user remote_monitoring_user
PASSWORD remote_monitoring_user = D965EMle8bVNHh17dl2K

Changed password for user elastic
PASSWORD elastic = fQkkGPlAaQld61gRr8GK

测试

$ sudo curl --cacert /apps/data/docker/volumes/es_certs/_data/ca/ca.crt -u elastic:fQkkGPlAaQld61gRr8GK  https://10.253.219.1:9200/_cat/nodes?v
ip         heap.percent ram.percent cpu load_1m load_5m load_15m node.role   master name
172.22.0.2            6          76  19   19.73   19.07    19.65 cdfhilmrstw -      es01
172.22.0.4           14          76  19   19.73   19.07    19.65 cdfhilmrstw -      es02
172.22.0.3           12          76  19   19.73   19.07    19.65 cdfhilmrstw *      es03

7. 修改 kibanna 密码

修改 docker-compose.yaml

......
      ELASTICSEARCH_PASSWORD: ZYbQBQXHHPYJvq6r2RVM
.....

重启

$ sudo docker-compose stop
[+] Stopping 4/4
 ✔ Container es02   Stopped                                                                                                                                             1.8s 
 ✔ Container kib01  Stopped                                                                                                                                             2.0s 
 ✔ Container es03   Stopped                                                                                                                                             1.8s 
 ✔ Container es01   Stopped   

$ sudo docker-compose up -d
[+] Running 4/4
 ✔ Container es03   Started                                                                                                                                             6.6s 
 ✔ Container es01   Healthy                                                                                                                                            38.1s 
 ✔ Container es02   Started                                                                                                                                             6.6s 
 ✔ Container kib01  Started 

$ sudo docker-compose ps
NAME                IMAGE                                                  COMMAND                  SERVICE             CREATED              STATUS                        PORTS
es01                docker.elastic.co/elasticsearch/elasticsearch:7.17.6   "/bin/tini -- /usr/l…"   es01                About an hour ago    Up About a minute (healthy)   0.0.0.0:9200->9200/tcp, 9300/tcp
es02                docker.elastic.co/elasticsearch/elasticsearch:7.17.6   "/bin/tini -- /usr/l…"   es02                About an hour ago    Up About a minute             9200/tcp, 9300/tcp
es03                docker.elastic.co/elasticsearch/elasticsearch:7.17.6   "/bin/tini -- /usr/l…"   es03                About an hour ago    Up About a minute             9200/tcp, 9300/tcp
kib01               docker.elastic.co/kibana/kibana:7.17.6                 "/bin/tini -- /usr/l…"   kib01               About a minute ago   Up 30 seconds                 0.0.0.0:5601->5601/tcp
                                                      
sudo curl --cacert /apps/data/docker/volumes/es_certs/_data/ca/ca.crt -u  kibana_system:ZYbQBQXHHPYJvq6r2RVM  https://10.253.219.1:5601

8. 清理

docker-compose stop
docker-compose rm

清理容器

$  sudo cat /etc/systemd/system/docker.service.d/docker-options.conf
[Service]
Environment="DOCKER_OPTS= --insecure-registry=0.0.0.0/0  --data-root=/apps/data/docker --log-opt max-size=50m --log-opt max-file=5 --live-restore=true --pidfile=/apps/run/docker/docker.pid --iptables=true"

$  sudo ls /apps/data/docker/volumes/es_certs/_data/
bundle.zip  ca	es01  es02  es03  kib01

$ sudo docker volume ls|grep es
local               es_certs
local               es_data01
local               es_data02
local               es_data03

sudo docker volume rm es_certs
sudo docker volume rm es_data01
sudo docker volume rm es_data02
sudo docker volume rm es_data03

$ sudo ls /apps/data/docker/volumes/es_certs/_data/
ls: cannot access /apps/data/docker/volumes/es_certs/_data/: No such file or directory

参考:

  • Running the Elastic Stack on Docker
  • Encrypting communications in an Elasticsearch Docker Containere

http://www.niftyadmin.cn/n/5011000.html

相关文章

【大虾送书第八期】揭秘分布式文件系统大规模元数据管理机制——以Alluxio文件系统为例

目录 ✨写在前面 ✨分布式文件系统元数据的常见类型 🍓文件(inode)元数据 🍓数据块(block)元数据 🍓MountTable 🍓Worker元数据 ✨分布式文件系统元数据的存储模式 🍓元数…

论文阅读 (100):Simple Black-box Adversarial Attacks (2019ICML)

文章目录 1 概述1.1 要点1.2 代码1.3 引用 2 背景2.1 目标与非目标攻击2.2 最小化损失2.3 白盒威胁模型2.4 黑盒威胁模型 3 简单黑盒攻击3.1 算法3.2 Cartesian基3.3 离散余弦基3.4 一般基3.5 学习率 ϵ \epsilon ϵ3.6 预算 1 概述 1.1 要点 题目:简单黑盒对抗攻…

c++中的对齐问题

c中的对齐问题 需要对齐的原因 尽管内存是以字节为单位,但是大部分处理器并不是按字节块来存取内存的.它一般会以双字节,四字节,8字节,16字节甚至32字节为单位来存取内存,我们将上述这些存取单位称为内存存取粒度. 现在考虑4字节存取粒度的处理器取in…

avue怎么保存用户自定义列表项(显隐,排序,冻结等)配置到本地(基于tj-vue2-tools工具集)

主题 avue怎么保存用户自定义列表项(显隐,排序,冻结等)配置到本地,下次打开或重登录后保持上一次的设置(基于tj-vue2-tools工具集) tj-vue2-tools 项目地址 tj-vue2-tools工具集 使用方法 …

将函数实现放到CPP报“无法解析的外部符号...”,系VS Bug

发现一个现象,就是项目中有一个类,如果将函数实现全部放到头文件中,编译不报错,如果将函数实现放到CPP中则始终提示“无法解析的外部符号...”,考虑到放到头文件中能正常编译运行,显然这里不符合“无法解析…

HTML的段落中怎么样显示出标签要使用的尖括号<>?

很简单&#xff1a; 符号 < 用 < 替代&#xff1b; 符号 > 用 > 替代。 示例代码如下&#xff1a; <!DOCTYPE html> <html> <head><meta charset"UTF-8"><title>HTML中怎样打出尖括号</title> </head> <b…

VBA技术资料MF54:VBA_EXCEL实时获取鼠标位置

【分享成果&#xff0c;随喜正能量】若人散乱心&#xff0c;乃至以一花&#xff0c;供养于画像&#xff0c;渐见无数佛。所以发一幅释迦牟尼佛像&#xff0c;与同修善友一起每日在微博上供养&#xff0c;只要有供养之心&#xff0c;便可积累功德。以此回向&#xff0c;愿求者如…

【漏洞库】Fastjson_1.2.47_rce

文章目录 漏洞描述漏洞编号漏洞评级影响版本漏洞复现- 利用工具- 漏洞环境- 漏洞扫描- 漏洞验证- 深度利用- GetShell- EXP 编写 漏洞挖掘- 寻找入口点- 指纹信息 修复建议- 漏洞修复 漏洞原理 漏洞描述 Fastjson是阿里巴巴公司开源的一款json解析器&#xff0c;其性能优越&am…