本片文章记录的大概是18年ELK的搭建过程,现在找个时间记录下来。由于当时业务没有涉及到Logstash组件的应用,下文介绍不包括Logstash的搭建。
1:JDK1.8
基础环境 配置
JDK配置
Java8或更高版本
export JAVA_HOME=/app/bi/public_script/app_data/decrypt_appmsg/java1.8
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
软件包
下载es,kibana,head,node相关安装包
1️. es下载
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.2.2.tar.gz
2️. kibana下载
wget https://artifacts.elastic.co/downloads/kibana/kibana-6.2.2-linux-x86_64.tar.gz
3️. node下载
wget https://npm.taobao.org/mirrors/node/latest/node-v10.1.0-linux-x64.tar.gz
4️. head下载
https://github.com/mobz/elasticsearch-head
Elasticsearch配置
1️. elasticsearch.yml
cluster.name: youyu-es-cluster
node.name: es-master
node.master: true
node.data: true
path.data: /home/es/elasticsearch/elasticsearch-data/data/data
path.logs: /home/es/elasticsearch/elasticsearch-data/data/logs
network.host: 192.168.83.90
http.port: 9200
http.cors.enabled: true
http.cors.allow-origin: "*"
http.cors.allow-headers: Authorization,X-Requested-With,Content- Length,Content-Type
discovery.zen.ping.unicast.hosts: ["192.168.83.90","192.168.83.91","192.168.83.92"]
discovery.zen.minimum_master_nodes: 2
bootstrap.memory_lock: false
bootstrap.system_call_filter: false
2️. jvm.options
修改JVM相关的配置,内存大小等等
vim /home/es/elasticsearch/elasticsearch-6.2.2/config/jvm.options
-Xms4g
-Xmx4g
node配置
1. node安装包下载:
wget https://npm.taobao.org/mirrors/node/latest/node-v10.1.0-linux-x64.tar.gz
配置环境变量(在es用户下配置的环境) 如图1:
2️. node配置
export NODE_HOME=/app/service/elasticsearch/node/node-v10.1.0-linux-x64
export PATH=$NODE_HOME/bin:$PATH
3️. 使node生效
source ~/.bash_profile
4️. 查看node是否安装成功
node -v
npm -v
head配置
1️. ead安装包下载:
2️. head安装文档:
注意:安装node需要在root用户下安装
3️. node.js 安装
安装head 前要安装node.js,只需要解压安装配置环境变量就OK
node地址:
1> [https://npm.taobao.org/mirrors/node/](https://npm.taobao.org/mirrors/node/)
2> wget https://npm.taobao.org/mirrors/node/latest/node-v10.1.0-linux-x64.tar.gz
4️. 启动head需要grunt命令执行:
安装grunt需要进入head目录下安装,root用户下安装
sudo npm install -g grunt-cli
5️. 在head的目录下面执行,安装head 需要grunt命令启动
npm install grunt --save-dev
npm install
6️. 修改Gruntfile.js文件,增加hostname属性,设置为*
修改 vim _site/app.js 文件:修改head的连接地址
注意:head访问要加上用户名和密码
kibana配置
server.port: 5601
server.host: "0.0.0.0"
elasticsearch.url: "http://192.168.83.90:9200"
注意kibana.yml解决启动警告的现象
xpack.reporting.encryptionKey: "a_random_string"
xpack.security.encryptionKey: "something_at_least_32_characters"
解决启动请求es超时的现象
elasticsearch.requestTimeout: 50000
遇到问题相关文档问题
解决6.2版本权限认证问题
创建用户
bin/x-pack/users useradd admin -p 123456 -r superuser
elasticsearch忘记用户名密码,重置三步走:
1️⃣创建超级用户admin 密码123456
> bin/x-pack/users useradd admin -p 123456 -r superuser
2️⃣用超级用户给elastic创建密码
curl -u admin -XPUT 'http://192.168.83.91:9200/_xpack/security/user/elastic/_password?pretty' -H 'Content-Type: application/json' -d' { "password" : "123456" }'
3️⃣验证
curl -u elastic 'http://192.168.83.92:9200/_xpack/security/_authenticate?pretty'
注意
线上环境各个节点的es的用户名 密码都是elastic:123456
http://192.168.83.91:9100/?auth_user=elastic&auth_password=123456
破解x-pack证书
参考博客☞
将elasticsearch 6.2.2安装包的/plugins/x-pack/x-pack-core/x-pack-core-6.2.2.jar 这个x-pack-core-6.2.2.jar进行解压
1️. 重新编译XPackBuild和LicenseVerifier文件
-
将博客相应内容拷贝到下面的文件中
vim XPackBuild.java
-
编译XPackBuild.java
javac -cp "/app/service/elasticsearch/elastic/elasticsearch-6.2.2/lib/elasticsearch-6.2.2.jar:/app/service/elasticsearch/elastic/elasticsearch-6.2.2/lib/lucene-core-7.2.1.jar:/app/service/elasticsearch/elastic/elasticsearch-6.2.2/lib/elasticsearch-core-6.2.2.jar:app/service/elasticsearch/elastic/elasticsearch-6.2.2/plugins/x-pack/x-pack-core/x-pack-core-6.2.2.jar" XPackBuild.java
-
将博客相应内容拷贝到下面的文件中
vim LicenseVerifier.java
-
编译LicenseVerifier.java
javac -cp "/app/service/elasticsearch/elastic/elasticsearch-6.2.2/lib/elasticsearch-6.2.2.jar:/app/service/elasticsearch/elastic/elasticsearch-6.2.2/lib/lucene-core-7.2.1.jar:/app/service/elasticsearch/elastic/elasticsearch-6.2.2/plugins/x-pack/x-pack-core/x-pack-core-6.2.2.jar" LicenseVerifier.java
2️. 创建一个临时文件夹mytest解压jar
-
解压
jar -xvf x-pack-core-6.2.2.jar
-
解压后删除
rm -rf x-pack-core-6.2.2.jar
-
将原先包内的老.class文件用新的替换掉
XPackBuild.class路径:/app/service/elasticsearch/elastic/mytest/org/elasticsearch/xpack/core
mv XPackBuild.class /app/service/elasticsearch/elastic/mytest/org/elasticsearch/xpack/core/.
LicenseVerifier.class路径:/app/service/elasticsearch/elastic/mytest/org/elasticsearch/license
mv LicenseVerifier.class /app/service/elasticsearch/elastic/mytest/org/elasticsearch/license/.
3️. 重新打包x-pack-core-6.2.2.jar
jar -cvf x-pack-core-6.2.2.jar ./*
4️. 将新打的x-pack-core-6.2.2.jar包,拷贝到其他节点的es中相应的位置
-
拷贝到91节点:
scp /app/service/elasticsearch/elastic/elasticsearch-6.2.2/plugins/x-pack/x-pack-core/x-pack-core-6.2.2.jar es@192.168.83.91:/app/service/elasticsearch/elastic/elasticsearch-6.2.2/plugins/x-pack/x-pack-core/.
-
拷贝到92节点:
scp /app/service/elasticsearch/elastic/elasticsearch-6.2.2/plugins/x-pack/x-pack-core/x-pack-core-6.2.2.jar es@192.168.83.92:/app/service/elasticsearch/elastic/elasticsearch-6.2.2/plugins/x-pack/x-pack-core/.
-
激活x-pack:
curl -XPUT -u admin:123456 'http://192.168.83.90:9200/_xpack/license?acknowledge=true' -H "Content-Type: application/json" -d @license.json
安全认证
注意:在es和x-pack安装完成启动正常的前提下,需要使用者继续按照如下操作进行
第一步:在es集群的每个节点的配置文件elasticsearch.yml中添加下面配置使得x-pack认证机制生效
xpack.security.audit.enabled: true
第二步:开启 xpack的 安全机制。 需要在 kibana.yml中同样加入
xpack.security.enabled: true
xpack.graph.enabled: true
xpack.watcher.enabled: true
xpack.monitoring.enabled: true
第三步:因为我们导入的不是试用版的license 所以如果我们要开启安全验证 必须要配置集群内部通讯的TLS/SSL,实现过程如下:
1️. 为es集群的每个节点创建证书颁发机构,执行bin/x-pack/certutil ca 会产生一个文件elastic-stack-ca.p12,默认的名称是elastic-stack-ca.p12,也可以自己指定,执行的过程中,需要的密码为:es123456
bin/x-pack/certutil ca
2️. 为集群中的每个节点生成证书和私钥,执行下面命令,会生成一个elastic-certificates.p12,在生成的过程中需要输入生成的文件名和需要的密码,密码为:es123456
bin/x-pack/certutil cert --ca elastic-stack-ca.p12
3️. 在config目录下面创建一个文件夹certs,将生成的elastic-certificates.p12拷贝进去,并且要将步骤2️⃣产生的证书要拷贝到其他节点的相应位置上;
4️. 启用TLS并指定访问节点证书所需的信息,下面的配置在所有节点的elasticsearch.yml下都要加上
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
5️. 如果使用密码保护节点的证书,将密码添加到elasticsearch秘钥库;密码为:es123456
bin/elasticsearch-keystore add xpack.security.transport.ssl.keystore.secure_password
bin/elasticsearch-keystore add xpack.security.transport.ssl.truststore.secure_password
6️. 最后可以初始化es kibana logstach的密码,执行如下命令:
./bin/x-pack/setup-passwords interactive(6.2版本)
./bin/elasticsearch-setup-passwords interactive(6.3版本)
注意执行上面的命令后,数据相关组件的密码后,记住es的密码和用户名,因为这个账号和密码需要配置到kibana文件中去
安全验证相关文章