每一个你不满意的现在,都有一个你不努力的曾经。
Elasticsearch——安装搭建单机版
版本信息
Product Version: 7.9
Operating System: Linux - Generic
OS Version: Linux - Generic (glibc 2.12) (x86, 64-bit)
以下为 Elasticsearch 目录及主要配置文件介绍
目录|文件 描述
bin/ 二进制脚本包含启动节点的elasticsearch
|-- elasticsearch elasticsearch的启动命令,Linux下加”-d”参数以服务的形式后台运行。
|-- …
config/ 配置文件目录(elasticsearch、log、jvm、role、user)
|-- elasticsearch.yml 配置文件中可进行端口、是否允许外部访问、端口等的设置。
|-- jvm.options jvm 配置文件
|-- log4j2.properties 日志配置文件
|-- …
data/ 在节点上申请的每个index/shard的数据文件的位置,可容纳多个位置
jdk/ jdk包(7.0版本以后自带jdk环境,如果已经配置了jdk,会优先使用外部 jdk 环境)
lib/ 引用的相关类库的存放目录,elasticsearch.jar本身也放于该目录
logs/ 日志文件位置
modules/ 功能模块的存放目录,如aggs、reindex、geoip、xpack、eval。。。
plugins/ 插件文件位置。每个插件将包含在一个子目录中
README.asciidoc readme文档
LICENSE.txt 证书
NOTICE.txt 通知
注意事项:
es依赖jdk环境,7.0以后的es压缩包中自带有jdk。
若已提前安装了jdk环境,则es启动时,会优先找linux中的jdk。若此时jdk的版本不一致,就会造成jdk不能正常运行。
若Linux服务本来没有配置jdk,则会直接使用es目录下默认的jdk,反而不会报错。
1.下载相应版本
https://www.elastic.co/cn/downloads/past-releases#elasticsearch
https://www.elastic.co/cn/downloads/past-releases/elasticsearch-7-17-7
[root@localhost ~]# cd /opt
[root@localhost opt]# mkdir packages
[root@localhost opt]# cd packages
[root@localhost packages]# wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.17.7-linux-x86_64.tar.gz
2.解压创建相关用户
[root@localhost packages]# tar -zxvf elasticsearch-7.17.7-linux-x86_64.tar.gz
[root@localhost packages]# mv elasticsearch-7.17.7 /usr/local
[root@localhost packages]# useradd elk
[root@localhost packages]# chown -R elk.elk /usr/local/elasticsearch-7.17.7
3.修改配置
[root@localhost packages]# cd /usr/local/elasticsearch-7.17.7
[root@localhost elasticsearch-7.17.7]# vim config/elasticsearch.yml
将 network.host 配置项的值改为 0.0.0.0
network.host: 0.0.0.0
4.启动elasticsearch
使用之前创建好的用户启动 elasticsearch
[root@localhost elasticsearch-7.17.7]# su elk
[elk@localhost elasticsearch-7.17.7]$ ./bin/elasticsearch
启动是出现了4个error
ERROR: [4] bootstrap checks failed. You must address the points described in the following [4] lines before starting Elasticsearch.
bootstrap check failure [1] of [4]: max file descriptors [4096] for elasticsearch process is too low, increase to at least [65535]
bootstrap check failure [2] of [4]: max number of threads [3766] for user [elk] is too low, increase to at least [4096]
bootstrap check failure [3] of [4]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
bootstrap check failure [4] of [4]: the default discovery settings are unsuitable for production use; at least one of [discovery.seed_hosts, discovery.seed_providers, cluster.initial_master_nodes] must be configured
ERROR: Elasticsearch did not exit normally - check the logs at /usr/local/elasticsearch-7.17.7/logs/elasticsearch.log
上面出现了4条 ERROR 提示我们逐步解决:
1.弹性搜索过程的最大文件为 [4096] 太少,至少增加到 [65535];
2.用户 [elk] 的最大线程数 [3766] 太少,至少增加到 [4096];
3.最大虚拟内存区域 vm.max_map_count[65530] 过低,至少增加到[262144];
4.开放 Elasticsearch 的远程访问,Elasticsearch 就认为当前环境是生产环境,要求配置参与集群选主的节点列表。
解决第一、二个 ERROR,调整进程打开的文件数上限和 elk 这个 user 可以创建的线程数上限,* 代表所有用户。
[root@localhost elasticsearch-7.17.7]# vim /etc/security/limits.conf
添加以下配置:
#增加下面这2行是为了实现 elasticsearch 允许远程访问,允许进程打开的最大文件数。
elk soft nofile 65535
elk hard nofile 65535
#增加下面这2行是为了实现 elasticsearch 允许远程访问,允许进程打开的最大线程数。
elk soft nproc 4096
elk hard nproc 4096
解决第三个 ERROR;将虚拟内存调大
[root@localhost elasticsearch-7.17.7]# vim /etc/sysctl.conf
#elasticsearch允许远程访问时,必须配置该项,默认的65530太小。
vm.max_map_count=262144
重新加载配置文件,让配置生效:
[root@localhost elasticsearch-7.17.7]# sysctl -p
vm.max_map_count = 262144
解决第4个 ERROR
添加以下配置项,将运行模式指定为单节点模式,
discovery.type: single-node
或者
discovery.seed_hosts : 127.0.0.1
解决完后加 -d 参数后台运行:
[elk@localhost elasticsearch-7.17.7]$ ./bin/elasticsearch -d
curl 一下ip端口
[root@localhost opt]# curl -X GET http://127.0.0.1:9200
{
"name" : "localhost.localdomain",
"cluster_name" : "elasticsearch",
"cluster_uuid" : "fXlv8_62SoSmIRqw0laBrw",
"version" : {
"number" : "7.17.7",
"build_flavor" : "default",
"build_type" : "tar",
"build_hash" : "78dcaaa8cee33438b91eca7f5c7f56a70fec9e80",
"build_date" : "2022-10-17T15:29:54.167373105Z",
"build_snapshot" : false,
"lucene_version" : "8.11.1",
"minimum_wire_compatibility_version" : "6.8.0",
"minimum_index_compatibility_version" : "6.0.0-beta1"
},
"tagline" : "You Know, for Search"
}
每一个你不满意的现在,都有一个你不努力的曾经。