1、ElasticSearch7.8.0下载
elasticsearch:
官方下载地址:https://www.elastic.co/cn/downloads/elasticsearch
链接: https://pan.baidu.com/s/1wAKQoB3nhLhcnBlPfVOLxQ 提取码: t83n
kibana:
链接: https://pan.baidu.com/s/156aD9zDdvUv8LFgDEIPoSw 提取码: jkw2
ik:
链接: https://pan.baidu.com/s/1jUZpDmTwcaaMalNWmTWWgw 提取码: 9d45
2、解压
- 解压elasticsearch-7.8.0-linux-x86_64.tar.gz到/usr/local/目录:
- # tar -zxvf elasticsearch-7.8.0.tar.gz -C /usr/local/
3、创建es用户 (直接用ZjZhenghe用户启动,或者有其他用户也可以,但不能用root启动。可以不用执行本操作)
如果使用root用户启动elasticsearch,会报 can not run elasticsearch as root,故创建es用户及用户组来运行elasticsearch
# groupadd eszh #新建一个es的用户组
# useradd -g eszh eszh #在es用户组下面建立一个es的用户
# passwd eszh #修改用户密码 密码:ZH!#$.QWUf.d23fdsd231
在eszh用户目录/home/eszh下创建data,logs文件夹,用于存放es数据和es日志,这里修改或者使用默认的,如果修改,需要增加ZjZhenghe的权限,或者 chown -R ZjZhenghe:ZjZhenghe 路径名
4、配置elasticsearch.yml
# vim /usr/local/elasticsearch7.8.0/config/elasticsearch.yml
# 数据和日志的存储目录,个人觉得放在es用户目录下较好,其实可以随便放在哪
path.data: /home/es/elasticsearch-7.8.0/data
path.logs: /home/es/elasticsearch-7.8.0/logs
# 设置绑定的ip,设置为0.0.0.0以后就可以让任何计算机节点访问到了
network.host: 0.0.0.0
# 端口
http.port: 9200
# 集群名称
cluster.name: my-application
# 节点名称
node.name: node-1
# 设置在集群中的所有节点名称,这个节点名称就是之前所修改的,当然你也可以采用默认的也行,目前是单机,放入一个节点即可
cluster.initial_master_nodes: ["node-1"]
# 支持跨域,跨域配置是为了kibana,head连接
http.cors.enabled: true
http.cors.allow-origin: "*"
# 设置为true锁住内存,当服务混合部署了多个组件及服务时,应开启此操作,允许es占用足够多的内存。
bootstrap.memory_lock: false
# es优化,是否支持过滤掉系统调用
bootstrap.system_call_filter: false
5、修改配置jvm.options 默认1g就行,不需要修改
elasticsearch使用java的jvm默认是使用1G的内存的,如果你机器的内存过小,启动可能会报错或者直接killed(es进程直接被杀),在jvm.options中将es使用内存调低即可,由于我实在太穷,买不起大内存服务器,所以索性调到128m,你如果有钱可以设置高点
-Xms512m
-Xmx512m
6、配置sysctl.conf
elasticsearch最小需要max_map_count为262144,而虚拟机默认只有65536。
加大vm.max_map_count(进程可以拥有的VMA(虚拟内存区域)的数量,虚拟内存区域是一个连续的虚拟地址空间区域)
#
在sysctl.conf中添加
vm.max_map_count=262144
# sysctl -p #重启生效
--------------------------------sysctl.conf配置完毕-------------------------
配置原因:
1)资源问题:每个打开的文件都需要消耗内存来管理,而内存是有限的。
2)安全问题:如果不限制的话,有不怀好心的人启动一个进程来无限的创建和打开新的文件,会让服务器崩溃。
3)bootstrap.memory_lock: false;bootstrap.system_call_filter: false配置必须
限制资源使用的配置文件是 /etc/security/limits.conf,和/etc/security/limits.d/目录,/etc/security/limits.d/里面配置会覆盖/etc/security/limits.conf的配置
# vim /etc/security/limits.conf
es soft nproc 65536:单个用户可用的最大进程数量(超过会警告);
es hard nproc 65536:单个用户可用的最大进程数量(超过会报错);
es soft nofile 4096:可打开的文件描述符的最大数(超过会警告);
es hard nofile 4096:可打开的文件描述符的最大数(超过会报错);
# vim /etc/security/limits.d/20-nproc.conf
es soft nproc 4096
7、启动
elasticsearch是不能用root启动,那我们切换es用户启动即可
(1)先改elasticsearch7.8.0文件夹所属为es
# chown -R ZjZhenghe:ZjZhenghe /usr/local/elasticsearch-7.8.0/
(2)切换ZjZhenghe用户
# su ZjZhenghe
(3)启动elasticsearch
# cd /usr/local/elasticsearch-7.8.0
# ./elasticsearch -d # 加-d为后台启动
8、访问服务
访问地址服务http://xx.xx.xx.xx:9200/
{
"name" : "node-1",
"cluster_name" : "elasticsearch",
"cluster_uuid" : "wWnUb6BFQWKNJXkQ_vgDIA",
"version" : {
"number" : "7.8.0",
"build_flavor" : "default",
"build_type" : "tar",
"build_hash" : "757314695644ea9a1dc2fecd26d1a43856725e65",
"build_date" : "2020-06-14T19:35:50.234439Z",
"build_snapshot" : false,
"lucene_version" : "8.5.1",
"minimum_wire_compatibility_version" : "6.8.0",
"minimum_index_compatibility_version" : "6.0.0-beta1"
},
"tagline" : "You Know, for Search"
}
9、安装kibana
(1)下载kibana7.8.0到linux,解压
# tar -zxvf kibana-7.8.0-linux-x86_64.tar.gz -C /usr/local/kibana-7.8.0
(2)配置kibana.yml
# vim /usr/local/kibana-7.8.0/config/kibana.yml
server.port: 5601 # kibana服务端口
server.host: "0.0.0.0" # 任何ip皆可访问
elasticsearch.url: "http://elasticsearch的ip:9200" # 连接elasticsearch
i18n.locale: "zh-CN" # 汉化
(3)启动(/usr/local/kibana-7.8.0/bin) 也需要使用 ZjZhenghe启用
# ./kibana
# 后台启动
# nohup ./kibana
(4)ip:5601就可以访问了。
10、es添加密码
(1)在 elasticsearch.yml 中添加如下配置
http.cors.allow-headers: Authorization xpack.security.enabled: true xpack.security.transport.ssl.enabled: true
(2)重启es服务
ps -ef |grep elasticsearch 查出进程,kill 进程号 杀死进程。
(3)设置密码:
/usr/local/elasticsearch-7.8.0/bin/elasticsearch-setup-passwords interactive
(根据提示输入密码:Zhes.13DSWJWE3dfdd9098 )用户名:elastic
需要设置 elastic,apm_system,kibana,kibana_system,logstash_system,beats_system, remote_monitoring_user 这些用户的密码。
(4)重启es
11、kibana配置文件添加密码登录
vi kibana.yml 添加配置文件
elasticsearch.username: "elastic"
elasticsearch.password: "Zhes.13DSWJWE3dfdd9098"
启动kibana
注意:es kibana 端口(9200,5601),尽量不对外网开放,属于高危端口,如果必须开放,一定添加IP白名单,只有白名单内的IP,可以访问这2个服务的端口
ssl证书添加 第一步:在ES的根目录生成CA证书 bin/elasticsearch-certutil ca 中间需要设置密码,直接回车可以不设置(慎重考虑)。 第二步:使用第一步生成的证书,产生p12密钥 bin/elasticsearch-certutil cert --ca elastic-stack-ca.p12 此时文件大概如下: 第三步:在config目录创建certs目录 第四步:拷贝p12文件至certs目录 第五步:修改设置 修改后的配置如下: xpack.security.enabled: true xpack.license.self_generated.type: basic xpack.security.transport.ssl.enabled: true xpack.security.transport.ssl.verification_mode: certificate xpack.security.transport.ssl.keystore.path: certs/elastic-certificates.p12 xpack.security.transport.ssl.truststore.path: certs/elastic-certificates.p12 第六步:重启ES,错误消失 |