> 技术文档 > 【Elasticsearch】Linux环境下安装Elasticsearch_linux实现连接elasticsearch

【Elasticsearch】Linux环境下安装Elasticsearch_linux实现连接elasticsearch


一,前言

Elasticsearch(简称 ES)是一个基于 ​​Apache Lucene​​ 构建的开源分布式搜索与分析引擎。它支持​​实时数据处理​​,提供近实时的全文搜索能力,并通过 ​​JSON 格式的 RESTful API​​ 实现数据索引与检索。其分布式架构设计可水平扩展至数百节点,适用于​​日志分析、全文检索、大数据实时查询​​等场景,是 Elastic Stack(ELK)生态的核心组件。

二,环境准备

  • 操作系统:Centos7
  • Java 版本:java 1.8
  • Elasticsearch 版本:7.10.2

注意:如果Elasticsearch为8.x的版本,需要jdk17及以上版本

三,优化服务器参数

Elasticsearch对服务器的一些参数有限制,需要调节参数适配es

1,修改limits.conf文件

vim /etc/security/limits.conf# 在文件底部添加如下配置* soft nofile 65536 * hard nofile 131072* soft nproc 2048* hard nproc 4096

2,调整vm.max_map_count参数

执行如下命令

# 设置参数值至少为 262144echo \"vm.max_map_count=262144\" | sudo tee -a /etc/sysctl.confsudo sysctl -p# 查看参数值sysctl vm.max_map_count# 预期输出:vm.max_map_count = 262144

四,安装Elasticsearch

1,创建es安装目录

mkdir -p /elk/elasticcd /elk/elastic

2,下载Elasticsearch安装包并解压

方式1:本地下载再上传服务器

下载地址:Elasticsearch 7.10.2 | Elastic

方式2:使用wget命令下载

wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.10.2-linux-x86_64.tar.gz

解压安装包

tar -zxvf elasticsearch-7.10.2-linux-x86_64.tar.gz 

3,修改jvm内存

Elasticsearch7.X版本默认的堆内存大小是1G,8.X版本默认的堆内存大小是4G,如果服务器内存不够启动会报错,可以将堆内存设置小一点

vim /efk/elastic/elasticsearch-7.10.2/config/jvm.options# 根据服务器的内存来设置,如果服务器内存小可以将值调小一点-Xms512m-Xmx521m

4,创建es的用户

// 创建用户组groupadd esgroup// 在esgroup用户组下创建es用户useradd es -g esgroup// 赋权限chown -R es:esgroup /efk/elastic/elasticsearch-7.10.2

5,修改es配置文件

vim /efk/elastic/elasticsearch-7.10.2/config/elasticsearch.yml内容如下:# 集群名称cluster.name: my-es-cluster# 节点名称node.name: node-1# 运行远程访问network.host: 0.0.0.0http.port: 9200# 单节点模式discovery.type: single-node # 跨域配置http.cors.enabled: true http.cors.allow-origin: \"*\"http.cors.allow-methods: OPTIONS, HEAD, GET, POST, PUT, DELETEhttp.cors.allow-headers: X-Requested-With, Content-Type, Content-Length

6,启动es

注意:如果安装的es版本为8.x,es会默认开启安全安全配置,第一次启动es时会自动生成如下的配置代码,如果需要访问es可以关闭安全认证后再访问

xpack.security.enabled: true  #  true表示开启安全认证,开启时访问es需要数据账号密码xpack.security.enrollment.enabled: truexpack.security.http.ssl:  enabled: false # 是否启用https,默认启用,手动关闭,如果为true,服务es需要使用 https  keystore.path: certs/elastic-certificates.p12  truststore.path: certs/elastic-certificates.p12xpack.security.transport.ssl:  enabled: true  verification_mode: certificate  keystore.path: certs/elastic-certificates.p12  truststore.path: certs/elastic-certificates.p12
后台启动essudo -u es bin/elasticsearch -d

浏览器访问ip+端口(9200)结果如下表示安装成功

7,将es配置到systemd中

创建 elasticsearch.service 文件

// 创建service文件vim /etc/systemd/system/elasticsearch.service内容如下:[Unit]Description=Elasticsearch ServiceAfter=network.target[Service]Type=simpleUser=es # es用户Group=esgroup # es用户组LimitNOFILE=100000LimitNPROC=100000ExecStart=/efk/elastic/elasticsearch-8.17.0/bin/elasticsearch # es安装路径ExecReload=/bin/kill -HUP $MAINPIDRestart=alwaysPrivateTmp=true[Install]WantedBy=multi-user.target

刷新配置

systemctl daemon-reload

基础命令 

systemctl status elasticsearch.service # 查看状态systemctl start elasticsearch.service # 启动systemctl stop elasticsearch.service # 关闭systemctl restart elasticsearch.service # 重启

8,开启安全认证

开启认证前需要先删除 /data 和 /logs 下的所有数据

[root@ali-kafka-vm1 elasticsearch-7.10.2]# rm -rf ./data/*[root@ali-kafka-vm1 elasticsearch-7.10.2]# rm -rf ./logs/*

1,编辑es配置文件

vim /efk/elastic/elasticsearch-7.10.2/config/elasticsearch.yml添加如下配置xpack.security.enabled: true

2,重启es

systemctl restart elasticsearch.service 

3,设置用户密码

Elasticsearch7.x版本设置密码

该命令会为所有内置用户设置密码,不能跳过

./bin/elasticsearch-setup-passwords interactive

Elasticsearch8.x版本设置密码

8.x版本可以指定设置内置用户 elastic 的密码

bin/elasticsearch-reset-password --username elastic -i

4,设置密码后访问es需要输入账号密码

至此安装成功!