1. es
-
目录结构
-
在/opt下创建es文件夹
-
在es文件夹下创建如下目录:data(映射数据)、logs(映射日志)、plugins(映射插件)、conf(映射配置文件及证书)
-
证书自己生成
-
-
在/opt/es/conf 目录下创建配置文件 elasticsearch.yml
#集群名称 所有节点名称一致 (集群/单机配置)
cluster.name: bin-es-clusters
#当前该节点的名称,每个节点不能重复scan-es-node-1,scan-es-node-2,scan-es-node-3...
# (集群/单机配置)
node.name: bin-es-node-1
#当前该节点是不是有资格竞选主节点 (集群配置,单机注释)
#node.master: true
#当前该节点是否存储数据 (集群配置,单机注释)
#node.data: true
#设置为公开访问 (集群/单机配置)
network.host: 0.0.0.0
#设置其它节点和该节点交互的本机器的ip地址 (集群/单机配置)
network.publish_host: 192.168.xxx.xxx
# 设置映射端口(集群/单机配置)
http.port: 9200
# 内部节点之间沟通端口 (集群配置,单机注释)
#transport.tcp.port: 9300
#支持跨域访问 (集群/单机配置)
http.cors.enabled: true
http.cors.allow-origin: "*"
#安全控制 (集群/单机配置)
#开启es密码配置及https访问
xpack.security.enabled: true
#es从8.x开始,如果要开启es密码配置,下面配置也必须设置为true,此时还需要配置证书
xpack.security.transport.ssl.enabled: true
#开启https访问
xpack.security.http.ssl.enabled: true
xpack.security.http.ssl.key: /usr/share/elasticsearch/config/certs/server.key
xpack.security.http.ssl.certificate: /usr/share/elasticsearch/config/certs/server.crt
xpack.security.http.ssl.certificate_authorities: [ "/usr/share/elasticsearch/config/certs/server.crt" ]
xpack.security.transport.ssl.verification_mode: certificate
xpack.security.transport.ssl.key: /usr/share/elasticsearch/config/certs/server.key
xpack.security.transport.ssl.certificate: /usr/share/elasticsearch/config/certs/server.crt
xpack.security.transport.ssl.certificate_authorities: [ "/usr/share/elasticsearch/config/certs/server.crt" ]
#若只需要配置密码,不需要https访问,则如下配置即可
#xpack.security.enabled: true
#xpack.security.transport.ssl.enabled: true
#xpack.security.transport.ssl.key: /usr/share/elasticsearch/config/certs/server.key
#xpack.security.transport.ssl.certificate: /usr/share/elasticsearch/config/certs/server.crt
#配置集群的主机地址 (集群配置,单机注释)
#discovery.seed_hosts: ["192.168.xxx.xxx"]
#初始主节点,使用一组初始的符合主条件的节点引导集群 (集群/单机配置)
cluster.initial_master_nodes: ["bin-es-node-1"]
#节点等待响应的时间,默认值是30秒,增加这个值,从一定程度上会减少误判导致脑裂 (集群配置,单机注释)
#discovery.zen.ping_timeout: 30s
#配置集群最少主节点数目,通常为 (可成为主节点的主机数目 / 2) + 1 (集群配置,单机注释)
#discovery.zen.minimum_master_nodes: 1
#禁用交换内存,提升效率 (集群/单机配置)
bootstrap.memory_lock: true
# http传输内容的最大容量 (集群/单机配置)
http.max_content_length: 200mb
-
给/opt/es目录赋权限
chmod -R 777 /opt/es
-
配置服务器硬件信息
-
修改/etc/security/limits.conf,添加如下,提高进程及资源使用限制上限
* soft nofile 65536 * hard nofile 65536 * soft nproc 32000 * hard nproc 32000 * hard memlock unlimited * soft memlock unlimited
-
执行命令使其生效
source /etc/profile
-
修改/etc/systemd/system.conf,添加如下
DefaultLimitNOFILE=65536 DefaultLimitNPROC=32000 DefaultLimitMEMLOCK=infinity
-
重启服务器,或执行下面两个命令使其配置生效
systemctl daemon-reload systemctl daemon-reexec
-
修改虚拟内存最大映射数
系统虚拟内存默认最大映射数为65530,无法满足ES系统要求,需要调整为262144以上。vim /etc/sysctl.conf #添加参数 vm.max_map_count = 262144
-
重新加载/etc/sysctl.conf配置
sysctl -p
-
-
docker-compose-es.yml
version: '3'
services:
elasticsearch:
image: docker.elastic.co/elasticsearch/elasticsearch:8.15.0
container_name: elasticsearch
restart: always
environment:
- "ES_JAVA_OPTS=-Xms16g -Xmx16g"
ports:
- "9200:9200"
- "9300:9300"
network_mode: host
volumes:
- "/opt/es/data:/usr/share/elasticsearch/data"
- "/opt/es/logs:/usr/share/elasticsearch/logs"
- "/opt/es/plugins:/usr/share/elasticsearch/plugins"
- "/opt/es/conf/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml"
- "/opt/es/conf/certs:/usr/share/elasticsearch/config/certs"
- 修改elastic密码
docker exec -it elasticsearch /usr/share/elasticsearch/bin/elasticsearch-reset-password -i -u elastic
- 设置kibana_system内置用户的密码
docker exec -it elasticsearch /usr/share/elasticsearch/bin/elasticsearch-reset-password -i -u kibana_system
-
访问验证
https://ip:9200
会弹窗输入用户名密码。用户名是elastic,密码是自己设置的。
2. kibana
-
目录结构
- 在/opt下创建kibana文件夹
- 在kibana文件夹下创建如下目录:conf(映射配置文件及证书)
- 证书使用和es一样的证书
-
在/opt/kibana/conf 目录下创建配置文件 kibana.yml
server.port: 5601
# 国际化
i18n.locale: "zh-CN"
# es连接地址,部署es时配了https就用https,没有配https就用http
elasticsearch.hosts: ["https://192.168.xxx.xxx:9200"]
# 访问ES服务器的账号 密码
elasticsearch.username: "kibana_system"
# 密码就是上面生成的kibana_system的密码
elasticsearch.password: "xxxxxxxx"
# 设置证书路径
elasticsearch.ssl.certificateAuthorities: ["/usr/share/kibana/config/certs/server.crt"]
# 禁用证书验证,因为这是自签名证书
elasticsearch.ssl.verificationMode: none
# 服务主机名
server.host: "0.0.0.0"
server.shutdownTimeout: "5s"
monitoring.ui.container.elasticsearch.enabled: true
- docker-compose-kibana.yml
version: '3'
services:
kibana:
image: docker.elastic.co/kibana/kibana:8.15.0
container_name: kibana
restart: always
ports:
- "5601:5601"
network_mode: host
volumes:
- "/opt/kibana/conf/kibana.yml:/usr/share/kibana/config/kibana.yml"
- "/opt/kibana/conf/certs:/usr/share/kibana/config/certs"
-
访问验证
http://ip:5601
需要输入用户名密码。用户名是elastic,密码是自己设置的。