Elasticsearch 集群搭建及认证
准备
-
虚拟机或主机(最少3台);基于VirtualBox搭建Linux(CentOS 7)虚拟机环境(学习必备技能):https://lupf.cn/articles/2020/04/04/1586001434581.html 如果有独立主机的,也需要看一下这部分;将其中基础的,如
网络
、免密登录
、hosts
、hostname
等操作配置一下 -
软件下载
// 这里包含了es的各个版本,建议找到链接之后,拷贝到迅雷下载 https://www.elastic.co/cn/downloads/past-releases#elasticsearch // 如:6.8.9的版本;把下面的地址拷贝到迅雷,下载速度会快很多 https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.8.9.tar.gz
-
JDK下载
// 可以直接去官网下载 // 这里云盘包含了几个 链接:https://pan.baidu.com/s/1svl3pgIQQdEcyRyvt14HGw 提取码:t0bn
软件安装
JDK配置(每台机器都做)
-
将JDK上传到所有机器的
/usr/local/src
目录下 -
解压
cd /usr/local/src tar -zxvf jdk-8u241-linux-x64.tar.gz mv jdk1.8.0_241/ /usr/local/
-
修改环境变量
vim ~/.bash_profile // 添加以下配置 export JAVA_HOME=/usr/local/jdk1.8.0_241 // PATH变量后面追加 :$JAVA_HOME/bin // 刷新环境变量 source ~/.bash_profile // 验证 java -version // 如下图说明配置成功
Elasticsearch部署
-
解压
cd /usr/local/src tar -zxvf elasticsearch-6.8.9.tar.gz mv elasticsearch-6.8.9 ../elasticsearch-6.8.9
-
创建文件夹
// 创建数据目录 mkdir -p /var/elasticsearch/data // 创建日志目录 mkdir -p /var/elasticsearch/logs // 用于保存配置相关文件 mkdir -p /etc/elasticsearch
-
创建用户
// 添加用户 adduser elasticsearch // 设置密码 密码自行记住即可 passwd elasticsearch
-
设置权限
chown -R elasticsearch /usr/local/elasticsearch-6.8.9 chown -R elasticsearch /var/elasticsearch/data chown -R elasticsearch /var/elasticsearch/logs
-
修改最大的线程数
vim /etc/security/limits.conf // 添加以下配置 * soft nofile 65536 * hard nofile 65536 // 对应的错误如下
-
修改最大的虚拟连接数
vim /etc/sysctl.conf // 添加以下配置 vm.max_map_count=655360 // 保存并查看 sysctl -p
-
修改es配置
vim /usr/local/elasticsearch-6.8.9/config/elasticsearch.yml // 1.集群名称 cluster.name: lupf-elasticsearch //2.当前节点名称 // 每个节点给一个他所在集群的唯一名称 node.name: elasticsearch0000 // 3.数据目录 path.data: /var/elasticsearch/data // 4.日志目录 path.logs: /var/elasticsearch/logs // 绑定的ip // 如果是多网卡,这里需要设置当前机器的具体IP,如果设置为0.0.0.0可能由于选择的网段导致集群构建失败 network.host: 0.0.0.0 //端口 http.port: 9200 //unicast的列表,通过这个节点,可以交换感知所有节点的列表信息 // 后面会节点主机列表 discovery.zen.ping.unicast.hosts: ["elasticsearch0000", "elasticsearch0001", "elasticsearch0002"] // 防止脑裂配置 // 计算公式: master-eligible nodes / 2 + 1 如3个master候选节点这个参数就是:3/2+1 = 2 discovery.zen.minimum_master_nodes: 2
-
启动服务
// 切换到ES的用户 su elasticsearch // 进入elastic的目录 cd /usr/local/elasticsearch-6.8.9 // 启动 默认会使用统计./config/elasticsearch.yml的配置文件 // 前台执行 ./bin/elasticsearch // 守护进程执行 ./bin/elasticsearch -d
-
查看集群
// 查看节点状态 curl -XGET elasticsearch0000:9200/_cat/nodes?v // 查看集群健康状况 curl -XGET elasticsearch0000:9200/_cat/health?v
-
设置TSL证书及密码
-
生成ca证书
cd /usr/local/elasticsearch-6.8.9 bin/elasticsearch-certutil ca // 会提示你输入要输出的文件名: elastic-stack-ca.p12 // 然后设置ca密码(记住密码)
-
生成x.509证书
cd /usr/local/elasticsearch-6.8.9 bin/elasticsearch-certutil cert --ca elastic-stack-ca.p12 // 输入ca的密码 // 设置x.509的密码
-
创建证书目录
cd /usr/local/elasticsearch-6.8.9 // 集群的每台机器都创建 mkdir -p config/certs/ // 将证书拷贝到对应的目录 cp elastic-certificates.p12 config/certs/
-
将证书拷贝到集群其他各台机器
scp -r elastic-certificates.p12 root@elasticsearch0001:/usr/local/elasticsearch-6.8.9/config/certs/ // 有多少拷贝多少
-
配置elasticsearch.yml
vi /usr/local/elasticsearch-6.8.9/config/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
-
重启所有节点
-
设置密码
./elasticsearch-setup-passwords interactive
-
测试
http://elasticsearch0000:9200 // 输入用户名: elastic 密码: 上面设置的密码
-
Kibana
-
下载
// 迅雷下载,保持和es相同版本 https://artifacts.elastic.co/downloads/kibana/kibana-6.8.9-linux-x86_64.tar.gz
-
上传解压
// 上传到服务器 /usr/local/src tar -zxvf kibana-6.8.9-linux-x86_64.tar.gz mv kibana-6.8.9-linux-x86_64 /usr/local/kibana-6.8.9
-
修改配置
cd /usr/local/kibana-6.8.9 vim config/kibana.yml // 修改以下配置,默认是localhost 除本机外其他机器无法访问 server.host: "0.0.0.0" // 汉化配置 i18n.locale: "zh-CN"
-
如果es配置了认证,需添加一下配置
elasticsearch.username: "kibana" elasticsearch.password: "上面es中配置的kibana的密码" // 如果不想显示的加在配置文件中,可以通过以下指令设置 cd /usr/local/kibana-6.8.9/ ./bin/kibana-keystore add elasticsearch.username ./bin/kibana-keystore add elasticsearch.password
-
启动或重启
cd /usr/local/kibana-6.8.9 ./bin/kibana 1>/dev/null 2>&1 &
-
测试
http://elasticsearch0000:5601
-
查看kibana的进程
ps aux | grep node
汉化
kibana是日常使用比较多的管理平台;汉化后方便我们日常使用
-
6.X之前版本汉化
// 下载汉化工具 wget https://mirrors.yangxingzhen.com/kibana/Kibana_Hanization.tar.gz // 解压 tar -zxvf Kibana_Hanization.tar.gz // 进入目录 cd Kibana_Hanization/old // 汉化;后面是kibana的目录 python main.py /usr/local/kibana/
-
6.x版本汉化
// 同样下载上面的汉化工具 cd Kibana_Hanization // 将translations文件夹拷贝到src/legacy/core_plugins/kibana/目录下;如果没有对应目录就改用上面的方式汉化 cp -rf translations /usr/local/kibana/src/legacy/core_plugins/kibana/ // 找到kibana的配置文件 vim /usr/local/kibana/config/kibana.yml // 修改: #i18n.locale: "en" 为以下 i18n.locale: "zh-CN"
-
7.x版本配置中文
// 找到kibana的配置文件 vim /usr/local/kibana/config/kibana.yml // 修改: #i18n.locale: "en" 为以下 i18n.locale: "zh-CN"