Elasticsearch是基于Apache Lucene的开源搜索服务器。 我们可以使用它来执行超快速全文本和其他复杂的搜索。 它还包含一个REST API,使我们能够轻松发出创建,删除,更新和检索数据的请求。
随着大数据和数据挖掘的发展,搜索引擎已经成为了我们生活中必不可少的工具。而Elasticsearch就是一个快速、开放、可扩展的搜索和分析引擎,它能够轻松地进行全文检索、数据分析和实时数据的存储与查询。
虚拟机环境:
PHP:8.3.1
MySQL:MariaDB-10.2.7
Nginx:1.14.0
Elasticsearch:8.12.1
9200 端口为浏览器访问的 http协议 RESTful 端口。 http port
9300 端口为 Elasticsearch 集群间组件的通信端口 tcp port
1.首先安装
Elasticsearch8版本不需要jdk环境,就是JVAV的环境,他本身的压缩文件里就包含了固定的jdk。
Elasticsearch 的官方地址: https://www.elastic.co/cn/
中文文档:https://www.elastic.co/guide/cn/index.html
https://www.elastic.co/cn/virtual-events/getting-started-elasticsearch
Elasticsearch Clients: https://www.elastic.co/guide/en/elasticsearch/client/index.html
最新版:https://www.elastic.co/cn/downloads/
其他版本下载地址:https://www.elastic.co/cn/downloads/past-releases#elasticsearch
查看elasticsearch安装信息:http://192.168.241.142:9200
查看集群健康状态:http://192.168.241.142:9200/_cat/health?v
查看节点分片信息: http://192.168.241.142:9200/_cat/shards
登录Kibana查看: http://192.168.241.142:5601/app/dev_tools#/console
https://blog.csdn.net/weixin_44488927/article/details/125731329
我这里下载的是elasticsearch-8.12.1-linux-x86_64.tar.gz,
[root@bogon src]# wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-8.12.1-linux-x86_64.tar.gz [root@bogon src]# tar -zxvf elasticsearch-8.12.1-linux-x86_64.tar.gz [root@bogon src]# mv elasticsearch-8.12.1 /usr/local/
目录结构:
目录 | 描述 |
bin | 脚本文件,包括启动elasticsearch,安装插件,运行统计数据等 |
config | 配置文件目录,如elasticsearch配置、角色配置、jvm配置等。 |
jdk | 7.x 以后特有,自带的 java 环境,8.x版本自带 jdk 17 |
data | 默认的数据存放目录,包含节点、分片、索引、文档的所有数据,生产环境需要修改。 |
lib | elasticsearch依赖的Java类库 |
logs | 默认的日志文件存储路径,生产环境需要修改。 |
modules | 包含所有的Elasticsearch模块,如Cluster、Discovery、Indices等。 |
plugins | 已安装插件目录 |
2.更改文件夹所属者:
#添加elasticsearch用户和组 groupadd elasticsearch useradd -g elasticsearch elasticsearch #设置权限 chown -R elasticsearch:elasticsearch elasticsearch-6.6.0 [root@bogon src]# useradd cc [root@bogon src]# chown -R cc:cc /usr/local/elasticsearch-8.12.1/ [root@bogon src]# cd elasticsearch-8.12.1/ 查看文件目录结构: [root@bogon elasticsearch-8.12.1]# ll 总用量 2228 drwxr-xr-x 2 cc cc 4096 2月 1 21:13 bin drwxr-xr-x 3 cc cc 210 2月 22 14:49 config drwxr-xr-x 8 cc cc 96 2月 1 21:13 jdk drwxr-xr-x 5 cc cc 4096 2月 1 21:13 lib -rw-r--r-- 1 cc cc 3860 2月 1 21:06 LICENSE.txt drwxr-xr-x 2 cc cc 6 2月 1 21:08 logs drwxr-xr-x 81 cc cc 4096 2月 1 21:13 modules -rw-r--r-- 1 cc cc 2251484 2月 1 21:08 NOTICE.txt drwxr-xr-x 2 cc cc 6 2月 1 21:08 plugins -rw-r--r-- 1 cc cc 8426 2月 1 21:06 README.asciidoc
3.修改配置
3.1)、问题1:
config/elasticsearch.yml
在elasticsearch.yml,修改 不使用密码,ssl认证改为false, network.host: 0.0.0.0;打开端口,http.port: 9200
[root@bogon elasticsearch-8.12.1]# vim config/elasticsearch.yml xpack.security.enabled: false xpack.security.http.ssl: enabled: false network.host: 0.0.0.0 #默认只允许本机访问,修改为0.0.0.0后则可以远程访问 http.port: 9200
3.2). 问题2:
conf/jvm.options
默认配置如下:
-Xms4g
-Xmx4g
默认的配置占用内存太多了,调小一些:
-Xms256m
-Xmx256m
[root@bogon elasticsearch-8.12.1]# vim config/jvm.options -Xms256m -Xmx256m
3.3). 问题3: bootstrap check failure [2] of [2]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]"
虚拟内存区域的最大数量 (vm.max_map_count) 设置过低,在/etc/sysctl.conf文件末添加如下内容 vm.max_map_count = 655360
[root@bogon elasticsearch-8.12.1]# vim /etc/sysctl.conf 然后在文末添加如下内容 vm.max_map_count = 655360 [root@bogon elasticsearch-8.12.1]# sysctl -p vm.max_map_count = 655360
3.4). 问题4:bootstrap check failure [1] of [1]: max file descriptors [4096] for elasticsearch process is too low, increase to at least [65535]
Elasticsearch 在启动时执行了引导检查,并发现文件描述符的最大数量过低。为了解决这个问题,你需要增加系统中允许 Elasticsearch 进程使用的最大文件描述符数量。
编辑 /etc/security/limits.conf,追加以下内容
[root@bogon elasticsearch-8.12.1]# vi /etc/security/limits.conf * soft nofile 65536 * hard nofile 65536
3.5). 问题5: received plaintext http traffic on an https channel, closing connection Netty4HttpChannel{localAddress=/192.168.241.139:9200, remoteAddress=/192.168.241.1:60629}
这是因为在 Elasticsearch 中启用 HTTPS 并设置基本身份验证(Basic Authentication)后,你需要提供有效的用户名和密码以访问 9200 端口。默认情况下,Elasticsearch 不提供预配置的用户名和密码,因此你需要创建相应的用户。
此时如果你以https前缀访问9200端口,会提示你身份认证,你需要在安装目录下的bin目录下执行以下命令:
./elasticsearch-users useradd <desired_username> -p <desired_password> -r superuser
#这会创建一个具有超级用户权限的用户。请替换 <desired_username> 和 <desired_password> 为你希望使用的实际用户名和密码。
[root@bogon elasticsearch-8.12.1]$ cd bin [root@bogon bin]$ ./elasticsearch-users useradd cc -p 123456 -r superuser
4. 启动服务
[root@bogon bin]$ su cc [cc@bogon bin]$ ./elasticsearch /bin/elasticsearch 如果加上-d就表示后台运行,不加上你关掉终端就会关闭elasticsearch
5. 查看状态是否正常;
6. 然后在浏览器输入你的Ip:9200(如果出现如下图就表示成功,如果不出现查看下阿里云或者腾讯云的安全组有没有添加上9200的端口)
问题1:high disk watermark [90%] exceeded on [6UfoOc1-QaCrrRlhLngSkA]
超过磁盘水位线上限[90%][...]碎片将从该节点中移出:每当您遇到系统中可用磁盘空间不足时,这个错误就会出现。
问题原因:磁盘空间不足,配置了集群的话,索引会不健康。所以,为了克服这个问题,我不得不清理一些数据以腾出更多磁盘空间,我当前的可用空间是40GB,运行正常。
报错信息汇总:
linux系统elasticsearch的详细安装配置教程(超级详细)
参考:
linux 下安装和使用Elasticsearch8+php的操作
window关于PHP 使用 Elastic Search8的相关经历
本文为崔凯原创文章,转载无需和我联系,但请注明来自冷暖自知一抹茶ckhttp://www.cksite.cn