ELK简要部署文档
文档组件版本
Elasticsearch-7.2.1
Kibana-7.2.1
最新版为7.3.0 以下文档是根据7.3.0书写,7.2.1通用
服务器初步考虑
开发、测试环境àCpu 8 核 ,内存8G 、硬盘200G à3台
生产环境(待讨论确定)
部署准备
如已设置则可无须考虑该部署准备操作,文档中所有涉及到IP PORT的信息,请根据实际情况更换。
1、创建用户 elk ( Elasticsearch 默认不允许在root用户下启动) ,并指定权限,后续
操作需使用elk用户进行操作。
2、修改 /etc/sysctl.conf 在最后一行添加 vm.max_map_count = 262144
使用sysctl –p 生效 , 使用sysctl -a|grep vm.max_map_count 验证。
3、修改 /etc/security/limits.conf 在最后一行开始添加
es(指定elk服务的#{username}) hard nofile 65536>
es(指定elk服务的#{username}) soft nofile 65536
JDK设置
Elasticsearch无须提前做jdk配置了,可使用其自带的openJdk,无须额外配置。
Elasticsearch集群搭建
解压tar包,到指定目录,这里暂定/app/software/elasticsearch-7.3.0
在Elasticsearch主节点上配置TLS.
- 进入es文件目录/app/software/elasticsearch-7.2.1
- 生成证书文件
- 文件根目录下执行 bin/elasticsearch-certutil ca
- 依次输入回车(文件使用默认名),密码
- 之后执行bin/elasticsearch-certutil cert --ca elastic-stack-ca.p12
- 依次输入上一个步骤的密码。回车(文件使用默认名),密码(建议与上一步密码相同)
- 执行bin/elasticsearch-keystore add xpack.security.transport.ssl.keystore.secure_password 并输入第一步输入的密码
- 执行bin/elasticsearch-keystore add xpack.security.transport.ssl.truststore.secure_password 并输入第一步输入的密码
- 将生成的elastic-certificates.p12、elastic-stack-ca.p12文件mv到config目录下,并连同elasticsearch.keystore 文件 scp到其他节点的config目录中。
- bin/elasticsearch-setup-passwords interactive
- node配置
- 修改config/jvm.options 如下图,修改完成后,scp到其余节点的该目录下覆盖。
-
- 修改config/elasticsearch.yml 如下图,修改完成后,scp到其余节点的该目录下覆盖,并修改node.name为节点名称,多个节点必须名称不同。
-
- 继续修改config/elasticsearch.yml 后半部分,如下图:全部修改完毕后,将文件scp到各个预置节点同目录下覆盖,并修改network.host
- network.host 配置本机IP
- http.port 配置9200 , 默认为9200,不是单机器多节点的情况不建议修改
- discovery.seed_hosts 修改可能要部署的所有节点,端口对应9300通信端口,可以写多个。[薛2]
- cluster.initial_master_nodes 至少需要配置一个节点,只配置Ip即可。可以初始化选举的master节点,此处只关系初始化选举master,待集群有新的可以选举为master的节点加入时,该节点也会加入可选举的列表。
- node.master 默认为true.指该节点加入集群可被选举为master节点。集群如有三台,建议3台均配置node.master:true.如果超过三台,则建议至少有三台可选举为mater的节点。(也可所有的都配置node.master:true)
- 新增如下配置,粘贴在文件最后,请注意编码问题
- 继续修改config/elasticsearch.yml 后半部分,如下图:全部修改完毕后,将文件scp到各个预置节点同目录下覆盖,并修改network.host
http.cors.enabled: true http.cors.allow-origin: "*" transport.tcp.compress: true node.master: true xpack.security.enabled: true xpack.security.transport.ssl.enabled: true xpack.security.transport.ssl.verification_mode: certificate xpack.security.transport.ssl.keystore.path:elastic-certificates.p12 xpack.security.transport.ssl.truststore.path:elastic-certificates.p12 |
-
- 执行bin/elasticsearch 前台启动测试,如果启动成功后,可以ctrl+c退出执行bin/elasticsearch -d -p node.pid
- node.pid可以查看进程号。
- 启动成功后执行bin/elasticsearch-setup-passwords interactive
- 该执行命令作用为在该节点设置集群默认用户的密码。
- 建议开始可以都设置为elastic之后可以在UI界面上进行密码的修改。
- 过程务必记录密码,以防丢失或忘记。
- 逐步启动其他节点。
- 启动完毕后浏览器或curl http://任意节点IP:9200/_cat/node?v 可以查看集群节点情况,建议浏览器,方便做auth认证。如果显示如下,节点列表则成功部署。
- 执行bin/elasticsearch 前台启动测试,如果启动成功后,可以ctrl+c退出执行bin/elasticsearch -d -p node.pid
kibana搭建
- 解压kibana tar 包,并进入目录
- 修改config/kibana.yml
- 执行 nohup bin/kibana >/dev/null 2>&1 & echo $! > kibana.pid
- 因为kibana的日志较多,故而命令取消了日志的打印,如有需要可自行修改。
- 命令会将pid打印到当前目录的kibana.pid的文件内。供后续kill 使用
[1]-Xms -Xmx 请根据机器配置设置,一般申请机器预留系统运行内存,其余内存值写入该处。
比如8G内存机器,2G预留系统运行内存,此处则写6g。
[2]此处后续新增节点时,可增加也可不增加,es机制为连接到任何一个节点即可获取集群所有节点信息。
[3]elasticsearch.username kibanaà内部通信用户名elasticsearch.password kibanaà内部通信密码写默认用户elastic 的用户名和密码即可