elasticsearch 6.8集群配置
资源下载
版本 6.8.23
elasticsearch下载
kibana 下载
elasticsearch IK分词器下载
elasticsearch 比较全的下载地址(https://elasticsearch.cn/download/#seg-3),所有历史版本包括 kibana、logstash等等
安装环境
系统: linux centos7
${ES_HOME}为ES安装目录
部署步骤
- 下载安装包
- 可选-生成证书(要安装xpack才是必须的)
- elasticsearch 配置
- 可选-kibana安装
部署
下载
到 elasticsearch下载 对应版本的 es。
部署
解压安装包
tar -xzf xxx.tar.gz
单机部署
启动配置
vm.max_map_count
[2022-07-27T15:40:46,016][INFO ][o.e.d.DiscoveryModule ] [node-1] using discovery type [zen] and host providers [settings]
[2022-07-27T15:40:47,103][INFO ][o.e.n.Node ] [node-1] initialized
[2022-07-27T15:40:47,103][INFO ][o.e.n.Node ] [node-1] starting ...
[2022-07-27T15:40:47,441][INFO ][o.e.t.TransportService ] [node-1] publish_address {172.18.0.1:9300}, bound_addresses {[::]:9300}
[2022-07-27T15:40:47,461][INFO ][o.e.b.BootstrapChecks ] [node-1] bound or publishing to a non-loopback address, enforcing bootstrap checks
ERROR: [2] bootstrap checks failed
[1]: max file descriptors [4096] for elasticsearch process is too low, increase to at least [65535]
[2]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
vi /etc/security/limits.conf:
* soft nofile 65535
* hard nofile 65535
* soft nproc 4096
* hard nproc 4096
其中 :
nofile : 一个进程最多能打开的的文件数
nproc : 一个用户最多能创建的进程数
————————————————
版权声明:本文为CSDN博主「这是谁的博客?」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/a13662080711/article/details/112800370
启动
进入 ${ES_HOME} 中
# 启动
./bin/elasticsearch
# -d 后台启动运行, -p 运行是的进程id 写到当前目录的 pid 文件中
./bin/elasticsearch -d -p pid
集群部署
- 单机集群
用于测试,其他配置使用默认值。
# 集群默认名 elasticsearch,如需要指定 增加 -E cluster.name=elasticsearch。
./bin/elasticsearch -d -E node.name=node-1 -E path.data=data1 -E path.logs=logs1 -p pid1
./bin/elasticsearch -d -E node.name=node-2 -E path.data=data2 -E path.logs=logs2 -p pid2
./bin/elasticsearch -d -E node.name=node-3 -E path.data=data3 -E path.logs=logs3 -p pid3
启动时会自动使用端口,按启动顺序分配,9200、9201、9202,对应的 9300、9301、9302
- 多服务器集群
一个节点一台服务器
cluster.name: elasticsearch # 不配置,默认elasticsearch
node.name: node-1 # 每个节点配置不同,不配置默认使用主机名,同一太服务器未设置则都是去主机名
network.host: 0 # 等同 0.0.0.0
discovery.zen.ping.unicast.hosts: ["hosts1", "hosts2", "hosts3"] # es8.1.x 使用 discovery.seed_hosts
# 跨域
http.cors.enabled: true
http.cors.allow-origin: "*"
# http.port: 9200 # 使用默认端口可不配置
# transport.tcp.port: 9300 # 使用默认端口可不配置
启用XPACK
1.生成证书
第一次启动 elasticsearch前
# 生成默认名称为 elastic-stack-ca.p12 的文件
bin/elasticsearch-certutil ca
# 生成 elastic-certificates.p12 文件
bin/elasticsearch-certutil cert --ca elastic-stack-ca.p12
# 将文件移动到 ${ES_HOME}/config/certs 目录下
mkdir ${ES_HOME}/config/certs
mv elastic-stack-ca.p12 elastic-certificates.p12 ${ES_HOME}/config/certs、
- bin/elasticsearch-certutil ca
该命令输出单个文件,默认名称为elastic-stack-ca.p12. 此文件是一个 PKCS#12 密钥库,其中包含 CA 的公共证书和用于签署每个节点的证书的私钥。 - bin/elasticsearch-certutil cert --ca elastic-stack-ca.p12
生成的文件名: elastic-certificates.p12。输出是单个 PKCS#12 密钥库,其中包括节点证书、节点密钥和 CA 证书
密码为空无需此步骤
如果您使用密码保护了节点的证书,请将密码添加到您的 Elasticsearch 密钥库:如果签名证书是 PKCS#12 格式,请使用以下命令:
bin/elasticsearch-keystore add xpack.security.transport.ssl.keystore.secure_password
bin/elasticsearch-keystore add xpack.security.transport.ssl.truststore.secure_password
没有密码无需执行此命令
2. 修改elasticsearch.yml配置
# 加密节点间通信-每个节点容器都要添加
xpack.security.enabled: true
xpack.security.transport.ssl.enabled: true
xpack.security.transport.ssl.verification_mode: certificate
xpack.security.transport.ssl.keystore.path: certs/elastic-certificates.p12
xpack.security.transport.ssl.truststore.path: certs/elastic-certificates.p12
es 6.8.x 中 配置安全后,es 9200端口仍然时http访问方式,只是内部通信使用了 https的安全通信。
kibana 6.8.x对应的配置默认访问是https
设置内建用户密码
需要有 elasticsearch.kestore 文件,这个文件在 elasticsearch 启动时会自动生成在 ${ES_HOME}/config/ 目录下。
# 交互式修改密码,执行此密码需要启动 xpack.security.enabled: true
${ES_HOME}/bin/elasticsearch-setup-passwords interactive
elasticsearch.yml 配置
kibana配置
未启用XPACK
kibana.yml
配置修改
server.host: "0" # 等同 0.0.0.0 外部可访问,默认值 localhost 只能本机访问
# 默认 en
i18n.locale: "zh-CN" # 必须配置
启动
命令
# -H 0 等同 0.0.0.0 , -p 默认 5601
./bin/kibana -H 0.0.0.0 -p 5601
# 后台启动
nohup ./bin/kibana &
启用XPACK
kibana.yml 配置修改
server.host: "0" # 等同 0.0.0.0 外部可访问,默认值 localhost 只能本机访问
# 默认 en
i18n.locale: "zh-CN" # 必须配置
elasticsearch.hosts: ["http://localhost:9200"]
elasticsearch.username: "kibana"
elasticsearch.password: "xxxxxx" # 前面设置的内置用户密码
使用脚本
修改密码
kibana修改
可以通过 kibana 中界面设置修改密码
登录其中一台ES服务器修改用户密码即可:
curl -H "Content-Type:application/json" -XPOST -u elastic 'http://172.18.252.101:9301/_xpack/security/user/用户名/_password' -d '{ "password" : "修改后的密码xxxx" }'
中间会提示让输入elastic的密码。
示例:文章来源:https://www.toymoban.com/news/detail-447604.html
#将elastic密码改为123321
curl -H "Content-Type:application/json" -XPOST -u elastic 'http://172.18.252.101:9301/_xpack/security/user/elastic/_password' -d '{ "password" : "123321" }'
ES怎样修改账号密码 原文链接:https://blog.csdn.net/yabingshi_tech/article/details/121474154文章来源地址https://www.toymoban.com/news/detail-447604.html
配置IP白名单
Elasticsearch 配置IP白名单
Elassticsearch实现IP白名单有两种方式,一种是使用xpack提供的Http Filter功能来实现,另外一种是使用Nginx实现IP的过滤,其中第一种为Elasticsearch的收费功能。下面对两种实现方式进行详细介绍。
本次使用的Elasticsearch版本为6.8.3。
使用xpack提供的HTTP Filter功能实现IP白名单
注意:但此功能是白金和黄金许可的一部分,是收费功能。
elasticsearch.yml 配置示例:
复制代码
xpack.security.http.filter.enabled: true
xpack.security.http.filter.allow: "172.31.6.21"
xpack.security.http.filter.deny: "172.31.6.0/24"
xpack.security.http.filter.allow: [ "172.31.6.20", "172.31.6.21", "172.31.6.22"]
xpack.security.http.filter.deny: _all
xpack.security.transport.filter.enabled: true
xpack.security.transport.filter.allow: [ "172.31.6.20", "172.31.6.21", "172.31.6.22"]
xpack.security.transport.filter.deny: _all
复制代码
使用Nginx反向代理实现IP过滤
有三种方式可以实现IP过滤,具体内容如下。
利用$remote_addr参数进行访问的分发限制
配置示例:
复制代码
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
listen 19200;
server_name localhost;
# 白名单及代理转发
if ($remote_addr !~ ^(100.110.15.16|100.110.15.17|100.110.15.18|127.0.0.1)) {
rewrite ^.*$ /maintence.php last;
}
location / {
# Elasticsearch服务代理
proxy_pass http://172.31.6.21:9200;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
server {
listen 15601;
server_name localhost;
# 白名单及代理转发
if ($remote_addr !~ ^(100.110.15.16|100.110.15.17|100.110.15.18|127.0.0.1)) {
rewrite ^.*$ /maintence.php last;
}
location / {
# Kibana服务代理
proxy_pass http://172.31.6.21:5601;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
复制代码
使用$http_x_forwarded_for参数进行访问的分发限制
配置示例:
复制代码
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
listen 19200;
server_name localhost;
# 白名单及代理转发
if ($http_x_forwarded_for !~ ^(100.110.15.16|100.110.15.17|100.110.15.18|127.0.0.1)) {
rewrite ^.*$ /maintence.php last;
}
location / {
# Elasticsearch服务代理
proxy_pass http://172.31.6.21:9200;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
server {
listen 15601;
server_name localhost;
# 白名单及代理转发
if ($http_x_forwarded_for !~ ^(100.110.15.16|100.110.15.17|100.110.15.18|127.0.0.1)) {
rewrite ^.*$ /maintence.php last;
}
location / {
# Kibana服务代理
proxy_pass http://172.31.6.21:5601;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
复制代码
利用nginx的allow、deny参数进行访问限制
配置示例:
复制代码
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
listen 19200;
server_name localhost;
# 白名单及代理转发
allow 172.31.6.22; #白名单
allow 192.168.0.0/24; #白名单
allow 127.0.0.1; #白名单
deny all; #拒绝其他访问
location / {
# Elasticsearch服务代理
proxy_pass http://172.31.6.21:9200;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
server {
listen 15601;
server_name localhost;
# 白名单及代理转发
allow 172.31.6.22; #白名单
allow 192.168.0.0/24; #白名单
allow 127.0.0.1; #白名单
deny all; #拒绝其他访问
location / {
# Kibana服务代理
proxy_pass http://172.31.6.21:5601;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
到了这里,关于elasticsearch 6.8集群配置(推荐)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!