php安装部署elasticsearch流程

目录

一、根据自己的服务器操作系统下载对应安装包

二、按照文档进行安装elasticSearch

(一)rpm安装(推荐)

1.按照官方的命令安装es 

2.修改配置文件 /etc/elasticsearch/elasticsearch.yml

3.因为我们指定了es数据和日志存储目录,所以添加目录

4.安装后默认添加了elasticsearch用户,所以将新增的目录权限给elasticsearch

5.修改/etc/elasticsearch/jvm.options文件

6.执行systemctl edit elasticsearch,输入以下内容

7.启动es,查看启动状态和端口情况

rmp安装常见问题:

8.如果是谷歌或者Edge浏览器,可以安装elasticsearch扩展,这里就可以看到安装启动成功信息。

(二)tar包安装 (问题多)

启动elasticsearch遇到的问题

1.修改config/elasticsearch.yml后出现如下问题

2.启动出现如下问题

三、安装kibana

(一)rpm安装 (推荐)

1.修改配置文件:

2.启动kibana

3.查看5601端口

(二)tar.gz安装

(三)访问kibana控制台

遇到的问题及解决方法

1.这里注意我的上面配置文件格式有问题会报以下错误,因为yml文件冒号后面需要有空格

2.elasticsearch.hosts: ["http://192.168.2.251:9200"\]我写成了

3.修改es相关配置时报


对phper来说,接触java相关的配置很都需要好好记录下来。

因为项目需求,现在要自己搭建es环境

java环境请先自行安装,这里主要讲es安装

安装前,es首页默认时最新版,比如我现在默认最新是8.0.0 。

重要!重要!重要!请先根据自己操作系统选择支持的版本 :【链接:】 支持矩阵 | Elastic

一、根据自己的服务器操作系统下载对应安装包

选择版本:【链接:】Elasticsearch Guide | Elastic

进入下载页:

这里有每一种操作系统的完整安装引导

8.0的linux链接:Install Elasticsearch from archive on Linux or MacOS | Elasticsearch Guide [8.0] | Elastic

二、按照文档进行安装elasticSearch

这里分两种形式安装,一种是tar.gz包安装,一种是rpm安装

(一)rpm安装(推荐)

1.按照官方的命令安装es 

执行命令:
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.17.1-x86_64.rpm
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.17.1-x86_64.rpm.sha512
yum install perl-Digest-SHA
shasum -a 512 -c elasticsearch-7.17.1-x86_64.rpm.sha512 
sudo rpm --install elasticsearch-7.17.1-x86_64.rpm
复制代码

[root@localhost opt]# shasum -a 512 -c elasticsearch-7.17.1-x86_64.rpm.sha512
elasticsearch-7.17.1-x86_64.rpm: OK
[root@localhost opt]# sudo rpm --install elasticsearch-7.17.1-x86_64.rpm
警告:elasticsearch-7.17.1-x86_64.rpm: 头V4 RSA/SHA512 Signature, 密钥 ID d88e42b4: NOKEY
Creating elasticsearch group... OK
Creating elasticsearch user... OK
### NOT starting on installation, please execute the following statements to configure elasticsearch service to start automatically using systemd
 sudo systemctl daemon-reload
 sudo systemctl enable elasticsearch.service
### You can start elasticsearch service by executing
 sudo systemctl start elasticsearch.service
Created elasticsearch keystore in /etc/elasticsearch/elasticsearch.keystore
复制代码

2.修改配置文件 /etc/elasticsearch/elasticsearch.yml

[root@localhost opt]# vim /etc/elasticsearch/elasticsearch.yml
[root@localhost opt]# grep -Ev "^#" /etc/elasticsearch/elasticsearch.yml
cluster.name: forpastime
node.name: node-249
path.data: /data/elasticsearch
path.logs: /data/log/elasticsearch
bootstrap.memory_lock: true
network.host: 192.168.2.249
http.port: 9200
discovery.seed_hosts: ["192.168.2.249"]
cluster.initial_master_nodes: ["node-249"]
复制代码

查看修配置文件生效的命令:grep -Ev "^#" /etc/elasticsearch/elasticsearch.yml

3.因为我们指定了es数据和日志存储目录,所以添加目录

[root@localhost /]# mkdir data
[root@localhost /]# mkdir data/log
[root@localhost /]# mkdir data/elasticsearch
[root@localhost /]# mkdir data/log/elasticsearch
复制代码

4.安装后默认添加了elasticsearch用户,所以将新增的目录权限给elasticsearch

[root@localhost /]# chown -R elasticsearch:elasticsearch /data/elasticsearch
[root@localhost /]# chown -R elasticsearch:elasticsearch /data/log/elasticsearch
复制代码

5.修改/etc/elasticsearch/jvm.options文件

[root@localhost log]# vim /etc/elasticsearch/jvm.options

增加如下代码
-Xms512m
-Xmx512m
复制代码

如果此时启动es,会无法成功,查看日志:

tail -n 1000 /data/log/elasticsearch/elasticsearch.log 
或其他日志文件
复制代码

遇到memory is not locked,需要作如下6的操作:

6.执行systemctl edit elasticsearch,输入以下内容

[root@localhost log]# systemctl edit elasticsearch
输入:
[Service]
LimitMEMLOCK=infinity
复制代码

Ctrl + O提示是否写入,Enter回车 

Ctrl + X 

7.启动es,查看启动状态和端口情况

[root@localhost log]# systemctl daemon-reload
[root@localhost log]# systemctl start elasticsearch.service
[root@localhost log]# systemctl status elasticsearch
● elasticsearch.service - Elasticsearch
   Loaded: loaded (/usr/lib/systemd/system/elasticsearch.service; disabled; vendor preset: disabled)
  Drop-In: /etc/systemd/system/elasticsearch.service.d
           └─override.conf
   Active: active (running) since 三 2022-03-02 11:09:27 CST; 12s ago
     Docs: https://www.elastic.co
 Main PID: 19592 (java)
    Tasks: 69
   CGroup: /system.slice/elasticsearch.service
           ├─19592 /usr/share/elasticsearch/jdk/bin/java -Xshare:auto -Des.networkaddress.cache.ttl=60 -Des.networkaddress.cache.negative.ttl=10
           └─19796 /usr/share/elasticsearch/modules/x-pack-ml/platform/linux-x86_64/bin/controller

3月 02 11:09:18 localhost.localdomain systemd[1]: Starting Elasticsearch...
3月 02 11:09:27 localhost.localdomain systemd[1]: Started Elasticsearch.
[root@localhost log]# ss -lntup|grep 9200
tcp    LISTEN     0      128      [::ffff:192.168.2.249]:9200               [::]:*                   users:(("java",pid=19592,fd=295))
复制代码

rmp安装常见问题:

一般情况9200端口应该是禁用的,所以开放一下9200端口

[root@localhost log]# vim /etc/sysconfig/iptables
追加:
-A INPUT -m state --state NEW -m tcp -p tcp --dport 9200 -j ACCEPT
重启防火墙[root@localhost log]# systemctl restart iptables.service
复制代码

注意:服务器重启后重启服务可能要重启防火墙配置,否则9200还是没法访问

systemctl restart iptables.service
复制代码

生产环境配置遇到问题及日志打印问题:

解决办法:

服务器安全组开启9200端口,elasticsearch.yml配置文件内的参数network.host配置为内网ip或0.0.0.0

8.如果是谷歌或者Edge浏览器,可以安装elasticsearch扩展,这里就可以看到安装启动成功信息。

(二)tar包安装 (问题多)

wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-8.0.0-linux-x86_64.tar.gz
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-8.0.0-linux-x86_64.tar.gz.sha512
shasum -a 512 -c elasticsearch-8.0.0-linux-x86_64.tar.gz.sha512
复制代码

如果没有安装 shasum 无法执行第三条命令,需要安装一下perl-Digest-SHA,linux执行以下命令

yum install perl-Digest-SHA
复制代码

接着执行命令

tar -xzf elasticsearch-8.0.0-linux-x86_64.tar.gz
cd elasticsearch-8.0.0/
##以下是运行elasticSearch命令
./bin/elasticsearch
复制代码

第一次执行./bin/elasticsearch会报错,原因是不能以root运行

新增用户或者修改为其他用户,并将目录修改为对应用户权限

再次执行启动es命令

./bin/elasticsearch
复制代码

查看打印日志发现:

下图中的参数很重要:!!!!

复制出来

━
✅ Elasticsearch security features have been automatically configured!
✅ Authentication is enabled and cluster connections are encrypted.

ℹ️  Password for the elastic user (reset with `bin/elasticsearch-reset-password -u elastic`):
  7FB6Cmd0_GTxJ=_Sa5JD

ℹ️  HTTP CA certificate SHA-256 fingerprint:
  aa1fc51876c2605769cd8d87b1f7391e27cf7b9117369a52a375f7b5e90278ca

ℹ️  Configure Kibana to use this cluster:
• Run Kibana and click the configuration link in the terminal when Kibana starts.
• Copy the following enrollment token and paste it into Kibana in your browser (valid for the next 30 minutes):
  eyJ2ZXIiOiI4LjAuMCIsImFkciI6WyIxOTIuMTY4LjIuMjUxOjkyMDAiXSwiZmdyIjoiYWExZmM1MTg3NmMyNjA1NzY5Y2Q4ZDg3YjFmNzM5MWUyN2NmN2I5MTE3MzY5YTUyYTM3NWY3YjVlOTAyNzhjYSIsImtleSI6InlNcHlMMzhCMHVybmw5V1htV3c4OlNCUThvczJZVEFlUE91MzlFRkFHcVEifQ==

ℹ️  Configure other nodes to join this cluster:
• On this node:
  ⁃ Create an enrollment token with `bin/elasticsearch-create-enrollment-token -s node`.
  ⁃ Uncomment the transport.host setting at the end of config/elasticsearch.yml.
  ⁃ Restart Elasticsearch.
• On other nodes:
  ⁃ Start Elasticsearch with `bin/elasticsearch --enrollment-token <token>`, using the enrollment token that you generated.
复制代码

启动elasticsearch遇到的问题

1.修改config/elasticsearch.yml后出现如下问题

ERROR: [2] bootstrap checks failed. You must address the points described in the following [2] lines before starting Elasticsearch.
bootstrap check failure [1] of [2]: max file descriptors [4096] for elasticsearch process is too low, increase to at least [65535]
bootstrap check failure [2] of [2]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
ERROR: Elasticsearch did not exit normally - check the logs at /opt/elasticsearch-8.0.0/logs/elasticsearch.log
复制代码

解决办法:

sudo su - 
#查看软限制 #查看硬限制ulimit -H -n
ulimit -S -n
复制代码

ulimit -S -n默认软限制1024,硬限制默认4096,修改**/etc/security/limits.conf**

vim /etc/security/limits.conf
复制代码

文件末追加:

* soft nofile 65535* hard nofile 65537
复制代码

退出用户登陆重新登陆

2.启动出现如下问题

ERROR: [1] bootstrap checks failed. You must address the points described in the following [1] lines before starting Elasticsearch.
bootstrap check failure [1] of [1]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
ERROR: Elasticsearch did not exit normally - check the logs at /opt/elasticsearch-8.0.0/logs/my-application.log
复制代码

解决办法

vim /etc/sysctl.conf
#文件末追加下面代码
vm.max_map_count = 262145
#执行
sysctl -p
复制代码

三、安装kibana

官网地址:Download Kibana Free | Get Started Now | Elastic

(一)rpm安装 (推荐)

【地址:】Install Kibana with RPM | Kibana Guide [7.17] | Elastic

注意同样需要把5601端口防火墙配置允许访问

1.修改配置文件:

[root@localhost elasticsearch]# vim /etc/kibana/kibana.yml
复制代码

去掉多行配置前面的‘#’,然后执行 grep -Ev "^#" /etc/kibana/kibana.yml

[root@localhost elasticsearch]# grep -Ev "^#" /etc/kibana/kibana.yml
server.port: 5601

server.host: "192.168.2.249"

server.name: "forpastime-kibana"

elasticsearch.hosts: ["http://192.168.2.249:9200"]

kibana.index: ".kibana"

kibana.defaultAppId: "home"
复制代码

2.启动kibana

[root@localhost elasticsearch]# sudo -i service kibana start
复制代码

**关闭kibana命令:

[root@localhost elasticsearch]# sudo -i service kibana stop
复制代码

3.查看5601端口

[root@localhost elasticsearch]# lsof -i:5601
COMMAND  PID   USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
node    6298 kibana   51u  IPv4  87238      0t0  TCP localhost.localdomain:esmagent (LISTEN)
复制代码

(二)tar.gz安装

获取到地址后下载到服务器解压,修改config/kibana.yml 进行配置

(三)访问kibana控制台

使用devtool

之后即可使用这个工具配合php进行文档和索引增删改查。

遇到的问题及解决方法

1.这里注意我的上面配置文件格式有问题会报以下错误,因为yml文件冒号后面需要有空格

**can not read a block mapping entry; a multiline key may not be an implicit key
**

2.elasticsearch.hosts: ["http://192.168.2.251:9200"\]我写成了

elasticsearch.host: ["http://192.168.2.251:9200"\] 就报错了

3.修改es相关配置时报

“ERROR: Failed to determine the health of the cluster.”
复制代码

解决办法:先启动es服务

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

沙漠中海

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值