上传软件包到/usr/local/src下
配置elasticsearch环境
同步三台节点机的系统时间
[root@master ~]# yum install -y ntpdate
[root@master ~]# ntpdate ntp1.aliyun.com
关闭三台节点的iptables和selinux
[root@master ~]# systemctl stop firewalld
[root@master ~]# systemctl disable firewalld
[root@master ~]# firewall-cmd --state
[root@master ~]# setenforce 0
[root@master ~]# getenforce
Permissive
[root@master ~]# vim /etc/sysconfig/selinux
SELINUX=disabled
安装elasticsearch
[root@master ~]# cd /usr/local/src/
解压elasticsearch
[root@master src]# mkdir /usr/local/elk
[root@master src]# tar xf elasticsearch-7.6.2.tar.gz -C /usr/local/elk/
[root@master src]# cd /usr/local/elk/elasticsearch-7.6.2/
创建es data/log文件
[root@master elasticsearch-7.6.2]# mkdir -p /data/es/{data,log}
修改elasticsearch.yaml文件 Tip:注意前边加空格
[root@master elasticsearch-7.6.2]$ cp config/elasticsearch.yml config/elasticsearch.yml.bak
[root@master elasticsearch-7.6.2]$ vim config/elasticsearch.yml
cluster.name: hudyang-elk #集群名称,同一个集群的标识.
node.name: master #节点名称
path.data: /data/es/data # 数据路径
path.logs: /data/es/log # 日志路径
network.host: 0.0.0.0
http.port: 9200 # 端口
discovery.zen.minimum_master_nodes: 2 # 设置这个参数来保证集群中的节点可以知道其它N个有master资格的节点.默认为1,对于大的集群来说,可以设置大一点的值(2-4)
discovery.seed_hosts: ["192.168.248.128","192.168.248.129"] #集群主机IP
cluster.initial_master_nodes: ["192.168.248.128","192.168.248.129"] #集群中首次启动时可被选举为master的节点
安装x-pack (可以不使用)
xpack.security.enabled: true
xpack.security.audit.enabled: true
xpack.license.self_generated.type: basic #basic表示xpack使用基础版license,否则无法启动
xpack.security.transport.ssl.enabled: true
node.master: true #允许一个节点可以成为一个master节
node.data: true #允许该节点存储数据(默认开启)
http.cors.enabled: true #允许跨域访问,head使用
http.cors.allow-origin: "*" #允许跨域访问,head使用
http.cors.allow-credentials: true # 是否返回设置的跨域Access-Control-Allow-Credentials头,如果设置为true,那么会返回给客户端。
http.cors.allow-methods: OPTIONS,HEAD,GET,POST,PUT,DELETE
http.cors.allow-headers: WWW-Authenticate,X-Requested-With,X-Auth-Token,Content-Type,Content-Length,Authorization,X-User # 配置插件
修改jvm.options文件 默认是1g官方建议对jvm进行一些修改,不然很容易出现OOM,参考官网改参数配置最好不要超过内存的50%
JVM 内存建议不要低于 2G,否则有可能因为内存不足导致 ES 无法正常启动或内存溢出,JVM 建议不要超过 32G,否则 JVM 会禁用内存对象指针压缩技术,造成内存浪费。机器内存大于 64G 内存时,推荐配置 -Xms30g -Xmx30g。JVM 堆内存较大时,内存垃圾回收暂停时间比较长,建议配置 ZGC 或 G1 垃圾回收算法
[root@master elasticsearch-7.6.2]$ vim config/jvm.options
-Xms1g 修改为 ===> -Xms2g
-Xmx1g 修改为 ===> -Xmx2g
修改/etc/security/limits.conf配置
[root@master elasticsearch-7.6.2]# vim /etc/security/limits.conf
* soft nofile 65536
* hard nofile 131072
* soft nproc 2048
* hard nproc 4096
修改/etc/sysctl.conf文件配置, 单进程可以使用的最大map内存区域数量
[root@master elasticsearch-7.6.2]# vim /etc/sysctl.conf
vm.max_map_count = 655360
fs.file-max=655360
启动sysctl配置
[root@master elasticsearch-7.6.2]# sysctl -p
设置环境变量
[root@master elasticsearch-7.6.2]# vim /etc/profile
####### elasticsearch ######
export ES_HOME=/usr/local/elk/elasticsearch-7.6.2
export PATH=$PATH:$ES_HOME/bin
加载环境变量
[root@master elasticsearch-7.6.2]# source /etc/profile
#切换用户 es不能使用root启动 data目录授权
[root@master elasticsearch-7.6.2]# groupadd elk
[root@master elasticsearch-7.6.2]# useradd -g elk elk
[root@master elasticsearch-7.6.2]# chown -R elk:elk /usr/local/elk/elasticsearch-7.6.2
[root@master elasticsearch-7.6.2]# sudo chmod -R 777 /data/es
设置开机自启动
创建elasticsearch服务
[elk@master elasticsearch-7.6.2]# vim /usr/lib/systemd/system/elasticsearch.service
[Unit]
Description=elasticsearch
After=network.target
[Service]
Type=forking
User=elk
Group=elk
ExecStart=/usr/local/elk/elasticsearch-7.6.2/bin/elasticsearch -d
PrivateTmp=true
# 指定此进程可以打开的最大文件数
LimitNOFILE=65535
# 指定此进程可以打开的最大进程数
LimitNPROC=65535
# 最大虚拟内存
LimitAS=infinity
# 最大文件大小
LimitFSIZE=infinity
# 超时设置 0-永不超时
TimeoutStopSec=0
# SIGTERM是停止java进程的信号
KillSignal=SIGTERM
# 信号只发送给给JVM
KillMode=process
# java进程不会被杀掉
SendSIGKILL=no
# 正常退出状态
SuccessExitStatus=143
[Install]
WantedBy=multi-user.target
给脚本赋权限:
[elk@master elasticsearch-7.6.2]# chmod +x /usr/lib/systemd/system/elasticsearch.service
重新加载systemd的守护线程
[elk@master elasticsearch-7.6.2]# sudo systemctl daemon-reload
开机启动生效
[elk@master elasticsearch-7.6.2]# sudo systemctl enable elasticsearch.service
启动elasticsearch.service
[elk@master elasticsearch-7.6.2]# sudo systemctl start elasticsearch.service
查看elasticsearch.serivce状态
[elk@master elasticsearch-7.6.2]$ sudo systemctl status elasticsearch.service
如果出现错误可以使用如下命令查看日志
[elk@master elasticsearch-7.6.2]$ sudo journalctl -u elaticsearch.service
如果配置x-pack设置密码
[root@master elasticsearch-7.6.2]# cd bin/
[root@master bin]# elasticsearch-setup-passwords interactive
安装IK分词器插件
iK分词器地址: https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.6.2/elasticsearch-analysis-ik-7.6.2.zip
安装参考文档 https://github.com/medcl/elasticsearch-analysis-ik/blob/master/README.md
版本对应地址: https://github.com/medcl/elasticsearch-analysis-ik/releases/tag/v7.6.2
安装ik分词器(安装ik分词器版本一定要与所安装es版本一致)
[root@master ~]# cd /usr/local/elk/elasticsearch-7.6.2/
[root@master elasticsearch-7.6.2]#
./bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.6.2/elasticsearch-analysis-ik-7.6.2.zip
重启ES
[elk@master elasticsearch-7.6.2]# sudo systemctl restart elasticsearch.service
安装SQL插件
SQL插件安装参考文档: https://github.com/NLPchina/elasticsearch-sql
版本对应地址: https://github.com/NLPchina/elasticsearch-sql/archive/refs/tags/7.6.2.0.zip
安装SQL插件(安装SQL插件版本一定要与所安装es版本一致)
[root@master elasticsearch-7.6.2]#
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/7.6.2.0/elasticsearch-sql-7.6.2.0.zip
[root@master elasticsearch-7.6.2]# cd /usr/local/src/
[root@master src]# unzip es-sql-site-standalone.zip -d /usr/local/elk/es-sql-site-standalone
[root@master src]# cd /usr/local/elk/es-sql-site-standalone/site-server/
[root@master site-server]# npm install express --savnpm install express --save
修改端口
[root@origin site-server]# vim site_configuration.json
node node-server.js(如果卡住则配置成功,否则报错)
```bash
[root@origin site-server]# node node-server.js
[root@origin site-server]# nohup node node-server.js &
重启ES
[elk@master site-server]# sudo systemctl restart elasticsearch.service