前言
Elasticsearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java语言开发的,并作为Apache许可条款下的开放源码发布,是一种流行的企业级搜索引擎。Elasticsearch用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。官方客户端在Java、.NET(C#)、PHP、Python、Apache Groovy、Ruby和许多其他语言中都是可用的。
官网:https://www.elastic.co/cn/elasticsearch/
前提
安装JDK https://blog.csdn.net/javanbme/article/details/111573731
安装步骤
1. 进入安装目录
cd /usr/local
2. 下载源码
官网下载:https://www.elastic.co/guide/en/elasticsearch/reference/7.6/targz.html
方式一: 链接: https://pan.baidu.com/s/1fSwBOKStOW9R38xEHnMXCA 密码: c9no 下载后放至上述目录
方式二:
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.6.2-linux-x86_64.tar.gz
3. 解压安装包
tar -zxvf elasticsearch-7.6.2-linux-x86_64.tar.gz
4. 重命名
mv elasticsearch-7.6.2/ elasticsearch
5. 修改配置文件
cd elasticsearch/config/
进入到es安装目录下的config文件夹中,修改elasticsearch.yml 文件
vi elasticsearch.yml
英文输入状态下 按 i 进入insert模式 修改如下配置
cluster.name: test-elastic
node.name: node-1
path.data: /usr/local/elasticsearch/data
path.logs: /usr/local/elasticsearch/logs
bootstrap.system_call_filter: false
network.host: 0.0.0.0
http.port: 9200
http.cors.enabled: true
http.cors.allow-origin: "*"
cluster.initial_master_nodes: ["node-1"]
按esc输入 :wq 保存并退出
6. 补齐目录
mkdir -p /usr/local/elasticsearch/data
7. 因为安全问题elasticsearch 不让用root用户直接运行,所以要创建新用户
useradd elk
passwd elk
再输入两次密码(自定义) elk
8. 为用户赋权限
chown -R elk:elk /usr/local/elasticsearch
9. 开放防火墙端口(9200)
10. 切换用户启动ES (验证是否初步安装成功)
cd
su elk
cd /usr/local/elasticsearch
bin/elasticsearch &
11. 设置x-park (密码访问)
服务器中执行
curl -H "Content-Type:application/json" -XPOST http://127.0.0.1:9200/_xpack/license/start_trial?acknowledge=true
12. 添加配置
进入到es安装目录下的config文件夹中,修改elasticsearch.yml 文件
cd /usr/local/elasticsearch/config/
vi elasticsearch.yml
英文输入状态下 按 i 进入insert模式 新增如下配置
xpack.security.enabled: true
xpack.security.transport.ssl.enabled: true
按esc输入 :wq 保存并退出
13. 重启es
查找es进程
ps -ef|grep "elastic"
杀掉进程 (找PID 上图我的进程是27543)
kill -9 27543
杀掉进程后、启动命令执行上述的第10个步骤
14. 设置一系列密码
cd /usr/local/elasticsearch/
bin/elasticsearch-setup-passwords interactive
密码设置为 2021admin 复制粘贴上去即可
15. 如果想修改密码的话可执行以下命令(可忽略)
服务器中执行
curl -H "Content-Type:application/json" -XPOST -u elastic 'http://127.0.0.1:9200/_xpack/security/user/elastic/_password' -d '{ "password" : "123456" }'
16. 生成CA证书
进入es目录 运行以下命令 遇到【Y/N】 输入y 回车
遇到输入密码 直接回车 !
如提示权限不足 chmod 660 /usr/local/elasticsearch/config/certs/
bin/elasticsearch-certutil ca --ca-dn "CN=WolfBolin Elatic CA" --out /usr/local/elasticsearch/config/certs/wolfbolin-elastic-ca.p12
bin/elasticsearch-certutil cert -ca /usr/local/elasticsearch/config/certs/wolfbolin-elastic-ca.p12 --out /usr/local/elasticsearch/config/certs/wolfbolin-elastic-certificates.p12
17. 添加CA配置
cd /usr/local/elasticsearch/config/
vi elasticsearch.yml
英文输入状态下 按 i 进入insert模式 新增如下配置
xpack.license.self_generated.type: basic
xpack.security.transport.ssl.verification_mode: certificate
xpack.security.transport.ssl.keystore.path: certs/wolfbolin-elastic-certificates.p12
xpack.security.transport.ssl.truststore.path: certs/wolfbolin-elastic-certificates.p12
按esc输入 :wq 保存并退出
18. 重启
重复上述第13步骤
19. 访问
url:9200
输入用户名密码 elastic/2021admin
拓展
安装Kibana:https://blog.csdn.net/javanbme/article/details/114888089
问题集锦
1. INFO: os::commit_memory(0x00000000ca660000, 899284992, 0) failed; error='Not enough space' (errno=12)
内存不够 修改配置文件 ES目录/config/jvm.options,改为512m
cd /usr/local/elasticsearch/config/
vi jvm.options
修改以下内容
-Xms512m
-Xmx512m
2. Likely root cause: java.nio.file.AccessDeniedException: /usr/local/elasticsearch/config/elasticsearch.keystore
切换root用户下 添加权限
chown -R elk:elk /usr/local/elasticsearch
3. max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
修改虚拟内存
vim /etc/sysctl.conf
添加以下内容
vm.max_map_count = 262144
保存之后执行
sysctl -p
4. java.lang.RuntimeException: can not run elasticsearch as root
切换es用户启动即可
su elk