Loading

02_ElasticSearch安装

ElasticSearch安装运行

环境准备
运行Elasticsearch,需安装并配置JDK
设置$JAVA_HOME
Elasticsearch 5需要Java 8以上的版本,Elasticsearch 从6.5开始支持Java 11、7.0开始,内置了Java环境
ES比较耗内存,建议虚拟机4G或以上内存,jvm1g以上的内存分配
可以参考es的环境文件elasticsearch-env.bat

ES的jdk环境生效的优先级配置ES_JAVA_HOME>JAVA_HOME>ES_HOME
下载并解压ElasticSearch
选择版本:7.17.3

ElasticSearch文件目录结构

主配置文件elasticsearch.yml 

cluster.name

当前节点所属集群名称,多个节点如果要组成同一个集群,那么集群名称一定要配置成相同。默认值elasticsearch,生产环境建议根据ES集群的使用目的修改成合适的名字。

node.name

当前节点名称,默认值当前节点部署所在机器的主机名,所以如果一台机器上要起多个ES节点的话,需要通过配置该属性明确指定不同的节点名称。

path.data

配置数据存储目录,比如索引数据等,默认值 $ES_HOME/data,生产环境下强烈建议部署到另外的安全目录,防止ES升级导致数据被误删除。path.logs配置日志存储目录,比如运行日志和集群健康信息等,默认值 $ES_HOME/logs,生产环境下强烈建议部署到另外的安全目录,防止ES升级导致数据被误删除。

bootstrap.memory_lock

配置ES启动时是否进行内存锁定检查,默认值true。ES对于内存的需求比较大,一般生产环境建议配置大内存,如果内存不足,容易导致内存交换到磁盘,严重影响ES的性能。所以默认启动时进行相应大小内存的锁定,如果无法锁
定则会启动失败。非生产环境可能机器内存本身就很小,能够供给ES使用的就更小,如果该参数配置为true的话很可能导致无法锁定内存以致ES无法成功启动,此时可以修改为false。

network.host

配置能够访问当前节点的主机,默认值为当前节点所在机器的本机回环地址127.0.0.1 和[::1],这就导致默认情况下只能通过当前节点所在主机访问当前节点。可以配置为 0.0.0.0,表示所有主机均可访问。

http.port

配置当前ES节点对外提供服务的http端口,默认值 9200

discovery.seed_hosts

配置参与集群节点发现过程的主机列表,说白一点就是集群中所有节点所在的主机列表,可以是具体的IP地址,也可以是可解析的域名。

cluster.initial_master_nodes

配置ES集群初始化时参与master选举的节点名称列表,必须与node.name配置的一致。ES集群首次构建完成后,应该将集群中所有节点的配置文件中的cluster.initial_master_nodes配置项移除,重启集群或者将新节点加入某个已存在的集群时切记不要设置该配置项。 
#ES开启远程访问
2 network.host: 0.0.0.0
修改JVM配置
修改config/jvm.options配置文件,调整jvm堆内存大小
vim jvm.options
‐Xms4g
‐Xmx4g
配置的建议
Xms和Xms设置成—样
Xmx不要超过机器内存的50%不要超过30GB - https://www.elastic.co/cn/blog/a-heap-of-trouble 

启动ElasticSearch服务

Windows直接运行elasticsearch.bat
Linux(centos7)
ES不允许使用root账号启动服务,如果你当前账号是root,则需要创建一个专有账户 
# 非root用户
bin/elasticsearch
# ‐d 后台启动
bin/elasticsearch ‐d
注意:es默认不能用root用户启动,生产环境建议为elasticsearch创建用户。 
#为elaticsearch创建用户并赋予相应权限
adduser es
passwd es
chown ‐R es:es .
elasticsearch‐17.3

启动ES服务常见错误解决方案:

[1]: max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]
ES因为需要大量的创建索引文件,需要大量的打开系统的文件,所以我们需要解除linux系统当中打开文件最大数目的限制,不然ES启动就会抛错
#切换到root用户
vim /etc/security/limits.conf

末尾添加如下配置:
* soft nofile 65536
* hard nofile 65536
* soft nproc 4096
* hard nproc 4096
[2]: max number of threads [1024] for user [es] is too low, increase to at least [4096]
无法创建本地线程问题,用户最大可创建线程数太小 
vim /etc/security/limits.d/20‐nproc.conf

改为如下配置:
* soft nproc 4096
[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]: 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"]

#或者 单节点(集群单节点)
discovery.type: node‐single

Docker安装ElasticSearch

# 拉去镜像
docker pull docker.elastic.co/elasticsearch/elasticsearch:7.17.10
# 启动容器
docker run -di --name ElasticSearch -p 9200:9200 -p 9300:9300 docker.elastic.co/elasticsearch/elasticsearch:7.17.10
# 容器无法启动时需要修改配置文件,将文件copy到宿主机后进行修改
docker cp ElasticSearch:/usr/share/elasticsearch/config/elasticsearch.yml /home/elasticsearch.yml
# 编辑配置文件
vim /home/elasticsearch.yml
# 增加如下内容
node.name: node‐1
discovery.seed_hosts: ["127.0.0.1"]
cluster.initial_master_nodes: ["node‐1"]
network.host: 0.0.0.0
# 将配置文件copy到docker 容器
docker cp /home/elasticsearch.yml ElasticSearch:/usr/share/elasticsearch/config/elasticsearch.yml
# 启动容器
docker start ElasticSearch

客户端Kibana安装

Kibana是一个开源分析和可视化平台,旨在与Elasticsearch协同工作。
1)下载并解压缩Kibana
选择版本:7.17.3
2)修改Kibana.yml 
vim config/kibana.yml
# 配置如下内容:
server.port: 5601
server.host: "0.0.0.0"
elasticsearch.hosts: ["http://192.168.211.156:9200"] #elasticsearch的访问地址
monitoring.ui.container.elasticsearch.enabled: true
i18n.locale: "zh‐CN" #Kibana汉化
3)运行Kibana
注意:kibana也需要非root用户启动 
bin/kibana
#后台启动
nohup bin/kibana &

Docker安装kibana:

# 拉取镜像
docker pull docker.elastic.co/kibana/kibana:7.17.10
# 启动容器
docker run -di --name kibana -p 5601:5601 docker.elastic.co/kibana/kibana:7.17.10
# copy docker容器中的配置文件到宿主机
docker cp kibana:/usr/share/kibana/config/kibana.yml /home/kibana.yml
# 修改配置文件信息
vim /home/kibana.yml
# 增加如下配置:
server.host: "0.0.0.0"
server.port: 5601
server.shutdownTimeout: "5s"
elasticsearch.hosts: [ "http://192.168.211.156:9200"]
monitoring.ui.container.elasticsearch.enabled: true
i18n.locale: "zh‐CN" #Kibana汉化
# 将配置文件copy到容器中
docker cp /home/kibana.yml kibana:/usr/share/kibana/config/kibana.yml
# 启动docker容器
docker start kibana

docker 容器中安装vim编辑器:

# 进入到docker容器中
docker exec -it kibana /bin/bash
# 以root用户进入docker容器中
docker exec -u 0 -it kibana /bin/bash
# docker 容器中安装vim编辑器
apt-get update
apt-get install vim
修改配置文件信息
vim /usr/share/kibana/config/kibana.yml

 

posted @ 2023-06-23 10:55  1640808365  阅读(18)  评论(0编辑  收藏  举报