Elasticsearch-7.5.2搭建流程

(1) 首先下载软件包(采用二进制包,非编译安装):

Elasticsearch:https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.5.2-linux-x86_64.tar.gz

(2) 解压Elasticsearch安装包,解压路径以/data/elasticsearch为例,下同,编辑解压文件中的config/elasticsearch.yml配置文件,添加或调整以下配置:

#elasticsearch集群名称

cluster.name: HD_ES_cluster1

#当前节点名称
node.name: ELKelasticsearch01

#表示节点是否具有成为主节点的资格
node.master: true

#表示节点是否存储数据
node.data: true

#ES是搜索引擎,会创建文档,建立索引,此路径是索引的存放目录,如果我们的日志数据较为庞大,那么索引所占用的磁盘空间也是不可小觑的
#这个路径建议是专门的存储系统,如果不是存储系统,最好也要有冗余能力的磁盘,此目录还要对elasticsearch的运行用户有写入权限
#path可以指定多个存储位置,分散存储,有助于性能提升,以至于怎么分散存储请看详解
https://www.dockerc.com/elk-theory-elasticsearch/
path.data: /data/ELK/elasticsearch_data/data 

#日志目录
path.logs: /data/ELK/elasticsearch_data/logs 

#锁定物理内存地址,防止es内存被交换出去,也就是避免es使用swap交换分区,频繁的交换,会导致IOPS变高
bootstrap.memory_lock: true

#当前节点的IP地址
network.host: 192.168.193.154

#开启或关闭 TCP 无延迟设置。默认值为 true
network.tcp.no_delay: true

#开启或关闭 TCP 长连接,默认值为 true
network.tcp.keep_alive: true

#一个地址是否可以被重用。在非 windows 机子上默认值为 true
network.tcp.reuse_address: true

#发送缓冲区大小(以size unit指定)。没有默认值
network.tcp.send_buffer_size: 256mb

#接收缓冲区大小(以size unit指定)。没有默认值。
network.tcp.receive_buffer_size: 256mb

#节点间通信端口。接收单值或者一个范围。如果指定一个范围,该节点将会绑定范围的第一个可用顶点。默认值9300-9400
transport.tcp.port: 9300

#设置是否压缩tcp传输时的数据,默认为false,不压缩
transport.tcp.compress: true

#设置内容的最大容量,默认100mb
http.max_content_length: 200mb

#是否支持跨域,默认为false
http.cors.enabled: true

#当设置允许跨域,默认为*,表示支持所有域名,如果我们只是允许某些网站能访问,那么可以使用正则表达式。比如只允许本地地址。 /https?:\/\/localhost(:[0-9]+)?/
http.cors.allow-origin: "*"

#是否返回设置的跨域Access-Control-Allow-Credentials头,如果设置为true,那么会返回给客户端
http.cors.allow-credentials: true

#允许跨域的请求方式,默认OPTIONS,HEAD,GET,POST,PUT,DELETE
http.cors.allow-methods: OPTIONS, HEAD, GET, POST, PUT, DELETE

#跨域允许设置的头信息,默认为X-Requested-With,Content-Type,Content-Length
http.cors.allow-headers: Authorization,X-Requested-With,Content-Length,Content-Type

#如果启用了 HTTP 端口,那么此属性指定由 Elasticsearch 服务使用的端口
http.port: 9200

#Elasticsearch7新增参数,写入候选主节点的设备地址,来开启服务时就可以被选为主节点,由discovery.zen.ping.unicast.hosts:参数改变而来
discovery.seed_hosts: ["192.168.193.154:9300","192.168.193.155:9300","192.168.193.156:9300"]

#当有2个master候选节点时,才可以选举出一个master,防止脑裂问题
discovery.zen.minimum_master_nodes: 2

#Elasticsearch7新增参数,写入候选主节点的设备地址,来开启服务时就可以被选为主节点
cluster.initial_master_nodes: ["192.168.193.154:9300","192.168.193.155:9300","192.168.193.156:9300"]

#Elasticsearch7新增参数,设置每个节点在选中的主节点的检查之间等待的时间。默认为1秒
cluster.fault_detection.leader_check.interval: 15s

#Elasticsearch7新增参数,启动后30秒内,如果集群未形成,那么将会记录一条警告信息,警告信息未master not fount开始,默认为10秒
discovery.cluster_formation_warning_timeout: 30s

#Elasticsearch7新增参数,节点发送请求加入集群后,在认为请求失败后,再次发送请求的等待时间,默认为60秒
cluster.join.timeout: 30s

#Elasticsearch7新增参数,设置主节点等待每个集群状态完全更新后发布到所有节点的时间,默认为30秒
cluster.publish.timeout: 90s

#集群内同时启动的数据任务个数,默认是2个
cluster.routing.allocation.cluster_concurrent_rebalance: 16

#添加或删除节点及负载均衡时并发恢复的线程个数,默认4个
cluster.routing.allocation.node_concurrent_recoveries: 16

#初始化数据恢复时,并发恢复线程的个数,默认4个
cluster.routing.allocation.node_initial_primaries_recoveries: 16

#设置为true表示开启X-Pack来监控es节点
xpack.monitoring.enabled: true

#控制是否应该收集关于Elasticsearch集群的统计信息。默认是true,他跟xpack.monitoring.collection.enabled是不一样的,xpack.monitoring.collection.enabled表示禁用或者启用所有监控收集,该设置只是禁用es的数据采集,但是其他的数据(像 Kibana, Logstash, Beats或者APM服务监控数据)可以通过该集群。

xpack.monitoring.elasticsearch.collection.enabled: true

#对elasticsearch开启xpack安全功能
xpack.security.enabled: true

#指定xpack证书类型为basic基础类型,非付费版本的xpack功能只支持basic基本认证功能,否则只能试用30天
xpack.license.self_generated.type: basic
xpack.security.transport.ssl.enabled: true
xpack.security.transport.ssl.verification_mode: certificate

#证书路径
xpack.security.transport.ssl.keystore.path: /data/elasticsearch/config/certs/elastic-certificates.p12
xpack.security.transport.ssl.truststore.path: /data/elasticsearch/config/certs/elastic-certificates.p12

(3) 编辑解压文件中的config/jvm.options配置文件,添加或调整以下配置

#elasticsearch运行最小JVM堆内存,根据实际可用内存调整,不宜过小否则服务无法正常启动

-Xms10g

#elasticsearch运行最大JVM堆内存,和最小堆内存Xms一致,避免频繁内存再分配增加系统性能开销

-Xmx10g

#JVM错误日志路径

-XX:ErrorFile=/data/ELK/elasticsearch_data/logs/hs_err_pid%p.log

#jdk8环境下JVM发生GC资源回收时输出的日志,根据所使用的jdk环境版本决定哪个生效,下同
8:
-Xloggc:/data/ELK/elasticsearch_data/logs/gc.log

#jdk9环境下JVM发生GC资源回收时输出的日志
9-:-Xlog:gc*,gc+age=trace,safepoint:file=/data/ELK/elasticsearch_data/logs/gc.log:utctime,pid,tags:filecount=32,filesize=64m

(4) 设置开机启动,这里采用添加系统systemd服务的方式,修改systemd服务配置文件vim /usr/lib/systemd/system/elasticsearch.service,内容如下:

[Unit]
Description=elasticsearch.service
After=network.target
[Service]
Type=forking
#使用这个账号操作
User=elk
Group=elk
LimitCORE=infinity
LimitMEMLOCK=infinity
LimitNOFILE=65536
LimitNPROC=65536
ExecStart=/data/elasticsearch/bin/elasticsearch -d
[Install]
WantedBy=multi-user.target

保存后使用命令

systemctl enable elasticsearch

激活elasticsearch服务并启用开机启动

(5) 更改文件从属,以便使用elk运行服务的时候不会出现读写权限问题:

chown -R elk:elk /data/elasticsearch

(6) 在所有服务器节点上执行以上操作

(7) 在任意一个节点上,使用以下命令生成xpack证书文件

/data/elasticsearch/bin/elasticsearch-certutil ca

根据提示,生成ca证书时候自定义密码,并记录下来,下面生成cert证书会用到

/data/elasticsearch/bin/elasticsearch-certutil cert --ca elastic-stack-ca.p12

根据提示,输入上一步提到的ca证书密码,之后再自定义cert证书密码,同样记录下来

证书创建完成之后,默认在elasticsearch的数据目录,这里统一放到新建的目录config/certs下,对应步骤(2)中的相关xpack证书配置项

mv elastic-certificates.p12 /data/elasticsearch/config/certs/

mv elastic-stack-ca.p12 /data/elasticsearch/config/certs/

更改文件从属

chown -R elk:elk /data/elasticsearch/config/certs

再把生成的两个证书文件拷贝到另外两台机器作为通信依据

/data/elasticsearch/bin/elasticsearch-keystore add xpack.security.transport.ssl.keystore.secure_password

/data/elasticsearch/bin/elasticsearch-keystore add xpack.security.transport.ssl.truststore.secure_password

之后在每个节点上执行上述两条命令,配置keystore访问证书的密码,改密码就是输入前面步骤中自定义的cert证书密码

(8) 之后在所有节点上使用命令

systemctl start elasticsearch

启动服务,观察服务启动日志是否异常。

(9) 在其中一台elasticsearch节点上使用

/data/elasticsearch/bin/elasticsearch-setup-passwords interactive

来配置内置的几个管理其他集成组件的账号即:apm_system, beats_system, elastic, kibana, logstash_system, remote_monitoring_user 的密码,其中elastic默认为超级管理员账号,权限最高

注意在设置用户elastic 和 logstash_system 密码的时候,需与logstash,kibana等配置文件中的密码变量保持一致,否则会出现密码认证失败的情况

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值