1 elasticsearch安装

【0】官网参考

https://www.elastic.co/guide/en/elasticsearch/reference/7.11/targz.html

【1】Centos7 下载安装

【1.1】下载

官网:Download Elasticsearch | Elastic

选择好自己想要的相关版本即可;

【2】Centos7.X 前置环境配置(ulimit,vm.max_map_count,JDK)

1)ulimit

它至少要65535

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

* soft nproc 65535

* hard nproc 65535

* soft nofile 65535

* hard nofile 65535

* soft stack 65535

* hard stack 65535

ulimit -a,如下图,发现没有生效

退出登录重登后生效;su root

(2)vm.max_map_count >= 262144

复制代码
vim /etc/sysctl.conf

然后在里面加上参数:

复制代码
vm.max_map_count=2655350

保存,然后重新加载参数:

复制代码
sysctl -p

(3)JDK安装,1.8+

检查是否有JAVA环境:

如果没有,参考下面文档

参考安装文档:

如何在linux下安装jdk - 郭大侠1 - 博客园

注意,Elasticsearch7.x版本 建议使用 jdk 11版本以上,但其实1.8版本及以上也够了,如果没有设置 $JAVA_HOME 环境变量,那么将会默认使用自带jdk(自带11版本的);

所以其实不装问题也不大,设置一下$JAVA_HOME 环境变量在这个目录即可

(4)Swapping 设置

vim /etc/sysctl.conf

复制代码
vm.swappiness=1

【3】Centos7.X下载安装 Elasticsearch7.X

【3.1】下载解压

(1)手动下载

那很明显,我们下载的就是这个

LINUX X86_64shaasc

(1)自动下载

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

【3.2】建立ES启动账户elk、授权

不知道从什么版本开始,elasticsearch 认为用 root 启动不安全,所以需要额外建立账户

复制代码
groupadd elk
useradd elk -g elk
chown -R elk:elk ./elasticsearch-7.11.1
mv elasticsearch-7.11.1 /usr/local/elasticsearch

【3.3】配置 ElasticSearch 配置文件

cd /usr/local/elasticsearch

vim config/elasticsearch.yml

#添加配置

discovery.seed_hosts: ["127.0.0.1"]

network.host: 0.0.0.0

cluster.initial_master_nodes: ["node-1"]

【3.4】启动:使用守护进程

复制代码
# -d 是作为守护进程运行 , -p 是把进程id 存到文件
su - elk -c "exec /usr/local/elasticsearch/bin/elasticsearch -d -p /tmp/elasticsearch.pid" 

【3.5】核验安装是否成功

(1)查看9200端口是否启用、监听

(2)访问本机 9200 端口

You can test that your Elasticsearch node is running by sending an HTTP request to port 9200 on localhost:

就是说默认是本机9200端口,用就完事了;如下图:这就表示成功了!

(3)URL上访问

注意,如果这个不行,请注意查看防火墙、配置文件中的 network.host: 0.0.0.0 是否配置

【3.6】怎么关闭退出?

(1)pkill -F /tmp/elasticsearch.pid (推荐,但前提是前面启动时使用了 -p 并文件是这个位置 )

(2)直接 kill pid

#重启

复制代码
su - elk -c "exec /usr/local/elasticsearch/bin/elasticsearch -d -p /tmp/elasticsearch.pid" 

【3.7】查阅:日志位置

这里面有很多日志,框出来的是错误日志,启动报错之类的信息看这里就好了;

至于其他的,gc 垃圾回收日志,slowlog 慢日志,audit.json 审计信息;

我这里有 log2 data2,是因为我之前有开多个实例;

【3.8】elasticsearch linux二进制版本目录介绍

目录结构说明,在配置文件里操作使用

• home目录 :使用$ES_HOME表示,如上图,就是 /usr/local/elasticsearch

• bin/ : 位置 $ES_HOME/bin,包含了elasticsearch和elasticsearch-plugin等脚本

• conf/ :位置 $ES_HOME/config,包含了 配置文件 elasticsearch.yml 和 log4j2.properties,使用 path.conf 指定

• data/ :位置 $ES_HOME/data,包含了每个index/shard的数据文件,可以指定多个位置,使用 path.data 指定

• logs/ : 位置 $ES_HOME/logs,使用 path.logs 指定

• plguins/ : 位置$ES_HOME/plugins

• repo/ :使用 path.repo指定,没有默认位置,表示共享文件系统repository的位置。可以指定多个位置。

• script/ :位置$ES_HOME/scripts,使用 path.scripts 指定。

【4】基本查询使用

(1)查看健康情况(_cat/health)

(2)查看所有索引(_cat/indices)

(3)查看所有节点(_cat/nodes)

【错误处理】

(1)FileAlreadyExistsException:/root/elasticsearch/........

表示之前可能启动过一次,但是被中止或者失败了;

后续的路径文件已经生产,删掉这个文件即可;

(2)uncaught exception in thread [main]org.elasticsearch.bootstrap.StartupException:

寻找主要信息:failed to obtain node locks

导致的原因可能是因为之前运行的es还没有正常关闭。

第一步:通过命令:ps aux | grep 'elastic' 进行查看

ES可能已经起了两个进程,把进程kill掉之后重新启动就可以了。

第二步:通过命令: kill -9 进程号 关闭此进程。

第三步:重新启动es。./bin/elasticsearch

(3)ElasticsearchUncaughtExceptionHandler

这是因为不知从哪个版本后,elasticsearch为了安全性,是不能用root用户启动的。

解决的办法:当然是创建一个用户,用创建的用户启动啦,注意权限的问题,目录也应该改为创建的用户权限!

复制代码
我是用elk的用户启动,exec参数指定命令,这样就可以了
su - elk -c "exec /opt/appl/elasticsearch-6.5.4/bin/elasticsearch -d

(4)【bootstrap checks failed】max file descriptors [4096] for elasticsearch process is too low, increase to at least [65535]

每个进程最大同时打开文件数太小:解决,见【2】中(1)

[root@DB1 config]# ERROR: [3] bootstrap checks failed

[1]: max file descriptors [4096] for elasticsearch process is too low, increase to at least [65535]

[2]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

[3]: 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.11.1/logs/elasticsearch.log

(5)【bootstrap checks failed】max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

elasticsearch用户拥有的内存权限太小,至少需要262144

(6)【bootstrap checks failed】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

看提示可知:缺少默认配置,至少需要配置discovery.seed_hosts/discovery.seed_providers/cluster.initial_master_nodes中的一个参数.

discovery.seed_hosts: 集群主机列表

discovery.seed_providers: 基于配置文件配置集群主机列表

cluster.initial_master_nodes: 启动时初始化的参与选主的node,生产环境必填

复制代码
vim config/elasticsearch.yml
 
 
#添加配置
discovery.seed_hosts: ["127.0.0.1"]
 
cluster.initial_master_nodes: ["node-1"]

(7)could not find java; set JAVA_HOME or ensure java is in PATH

JAVA 缺失,确定装了JDK

【开发模式与生产模式】

默认情况下,Elasticsearch假定您正在开发模式下工作。如果上述任何设置的配置不正确,都会在日志文件中写入警告,但是您将能够启动和运行Elasticsearch节点。

一旦您配置了类似的网络设置network.host,Elasticsearch就会假设您即将投入生产,并将上述警告升级为异常。这些异常将阻止您的Elasticsearch节点启动。这是一项重要的安全措施,可确保不会因服务器配置错误而丢失数据。

请注意,可以通过http.host和单独配置HTTP和传输transport.host。这对于将单个节点配置为可通过HTTP进行访问以进行测试(而不触发生产模式)很有用。

设置开发者模式:(如果是具体IP,则是生产模式,他们的区别就是是否能够需要做启动自检)

复制代码
http.host: localhost
transport.bind_host: localhost
discovery.type: single-node 
开机启动检查相关参数:
相关推荐
昨天今天明天好多天1 小时前
【数据仓库】
大数据
油头少年_w1 小时前
大数据导论及分布式存储HadoopHDFS入门
大数据·hadoop·hdfs
Elastic 中国社区官方博客2 小时前
释放专利力量:Patently 如何利用向量搜索和 NLP 简化协作
大数据·数据库·人工智能·elasticsearch·搜索引擎·自然语言处理
力姆泰克2 小时前
看电动缸是如何提高农机的自动化水平
大数据·运维·服务器·数据库·人工智能·自动化·1024程序员节
力姆泰克2 小时前
力姆泰克电动缸助力农业机械装备,提高农机的自动化水平
大数据·服务器·数据库·人工智能·1024程序员节
QYR市场调研3 小时前
自动化研磨领域的革新者:半自动与自动自磨机的技术突破
大数据·人工智能
半部论语4 小时前
第三章:TDengine 常用操作和高级功能
大数据·时序数据库·tdengine
EasyGBS5 小时前
国标GB28181公网直播EasyGBS国标GB28181软件管理解决方案
大数据·网络·音视频·媒体·视频监控·gb28181
2403_875736875 小时前
道品科技的水肥一体化智能灌溉:开启现代农业的创新征程
大数据·人工智能·1024程序员节
河南查新信息技术研究院5 小时前
科技查新在医药健康领域的应用
大数据·科技·全文检索