admin管理员组文章数量:1625110
es,kibana,ik的下载安装
下载地址
es下载地址:
https://www.elastic.co/cn/downloads/elasticsearch
kibana下载地址:https://www.elastic.co/cn/downloads/kibana
ik中文分词器下载地址:https://github/medcl/elasticsearch-analysis-ik
备注: 打开比较慢,ie下载要快点。3个版本需完全一致
一、elasticsearh的安装配置
1.elasticsearh的文件准备
1.1 前提是linux已经安装了jdk8或以上版本 解压es:
tar -zxvf elasticsearch-7.9.3-linux-x86_64.tar.gz
1.2 添加非root账号(es启动不能使用root账号):useradd esadmin
1.3 把文件目录归属赋予:chown esadmin -R /home/liaochao
1.4 把es自带的jdk目录改名(改成其他名字只要不叫jdk就行),使用系统安装的jdk
es目录含义:
2.设置服务器的配置
2.1 调整jvm内存大小
错误:
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=655360
查看:sysctl -p
2.2 调整用户对资源进行限制
错误:
max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]
原因:
ES因为需要大量的创建索引文件,需要大量的打开系统的文件,所以我们需要解除linux系统当中打开文件最大数目的限制,不然ES启动就会抛错
解决:
编辑:vim /etc/security/limits.conf
添加:
*
soft nofile 65536
*
hard nofile 65536注意前面有
*
3. 修改es的JVM配置
修改config/jvm.options配置文件,调整jvm堆内存大小
配置的建议:
1. Xms和Xms设置成—样
减轻伸缩堆大小带来的压力
2. Xmx不要超过机器内存的50%
因为ES内部的Lucene也要占据一部分物理内存
3. 不要超过32GB
由于Java语言的特性,堆内存超过32G会浪费大量系统资源,所以在内存足够的情况下,最终我们都会采用设置为31G
4.配置elasticsearch.yml
3.1编辑:
vim elasticsearch.yml
# 集群名,节点之间要保持一致
cluster.name: my-application
# 节点名,集群内要唯一
node.name: node-1
# 数据存储目录(需要手动创建和改变归属,授权)
path.data: /home/soft/elasticsearch/elasticsearch-7.9.3/data
# 日志存储目录(需要手动创建和改变归属,授权)
path.logs: /home/soft/elasticsearch/elasticsearch-7.9.3/logs
# 允许访问的ip,0.0.0.0代表允许任意ip访问
network.host: 0.0.0.0
# 设置对外服务的http端口,默认为9200
http.port: 9200
# 设置节点间交互的tcp端口,默认是9300
transport.tcp.port: 9300
# 指定该节点是否有资格被选举成为master,默认是true,es是默认集群中的第一台机器为master,如果这台机挂了就会重新选举master
node.master: true
# 指定该节点是否存储索引数据,默认为true
node.data: true
# 写入候选主节点的设备地址,在开启服务后可以被选为主节点
discovery.seed_hosts: ["192.168.200.135", "192.168.200.136","192.168.200.137"]
# 初始化一个新的集群时需要此配置来选举master
cluster.initial_master_nodes: ["192.168.200.135"]
# 设置集群中自动发现其它节点时ping连接超时时间,默认为3秒,对于比较差的网络环境可以高点的值来防止自动发现时出错
discovery.zen.ping_timeout: 10s
# 是否支持跨域,是:true
http.cors.enabled: true
# “*” 表示支持所有域名
http.cors.allow-origin: "*"
注意:同一集群内,不同节点之间的配置可以仅
node.name: node-1
不一样。其他都一样
集群状态
green
所有主分片和副本分片都正常
yellow
主分片全部正常,副本分片至少有一个不可用;不会有数据丢失,搜索结果依然是完整的。不过,集群高可用在某种程度上会被弱化。可以把yellow想象成一个warning,该情况不影响索引读写,一般会自动回复
red
,存在不可以用的主分片
3.2
注意:上面提到的data和log的目录需手动建立和改变归属
命令:
mkdir -p /home/soft/elasticsearch/elasticsearch-7.9.3/data
命令:mkdir -p /home/soft/elasticsearch/elasticsearch-7.9.3/logs
并赋权 命令:
chown eadmin:esadmin -R /home/soft/elasticsearch/elasticsearch-7.9.3/data
chown eadmin:esadmin -R /home/soft/elasticsearch/elasticsearch-7.9.3/logs
5.启动es
在bin目录下,切换到esadmin用户:
su esadmin
执行:./elasticsearch -d
6.访问
在浏览器访问 ip:9200,如果有数据出现则启动正常。(记得防火墙开端口)
二.ik分词器的安装
把ik分词器压缩包上传到
/home/liaochao/es/elasticsearch-7.9.3/plugins/ik
执行解压:unzip elasticsearch-analysis-ik-7.9.3.zip
赋权:chown esadmin:esadmin -R /home/liaochao/es/elasticsearch-7.9.3/plugins/ik
在es的bin目录下执行(如果当前是启动状态那就先停止 kill -9 进程号):./elasticsearch -d
三.安装kibana
安装kibana。 如果es相当于mysql,那么kibana就相当于navcat。
kibana可以安装在linux,也可以就在windows机器上解压启动。 在windows下解压kibana,配置kibana.yml
server.port: 5601
elasticsearch.hosts: ["http://192.168.183.130:9200"]
在bin目录下点击 kibana.bat(目前es还没配置密码,所以无需其他配置)
这样就可以访问 localhost:5601就可以看到操作界面。
找到界面点击左上角,找到Management下面的Dev Tools就能打开控制台界面
验证ik分词器:
ES的默认分词设置是standard,会单字拆分
#会将文本做最细粒度的拆分
GET _analyze
{
"analyzer":"ik_max_word",
"text":"我是中国人"
}
#会做最粗粒度的拆
GET _analyze
{
"analyzer":"ik_smart",
"text":"我是中国人"
}
这样就可以看到一句话被分词为多个词条
四.es设置密码(单机版)
4.1 修改elasticsearch.yml
添加:
xpack.security.transport.ssl.enabled: true
xpack.security.enabled: true
http.cors.allow-headers: "Authorization"
4.2. 在es启动状态下,在bin目录(非root账号)执行
./elasticsearch-setup-passwords interactive
然后多次输入密码(方便记忆都输一样的)
注意:
1.如果该es以前设置过密码,那么可以把 数据存储目录 /home/soft/elasticsearch/elasticsearch-7.9.3/data 和 /home/soft/elasticsearch/elasticsearch-7.9.3/logs 目录删干净再重启,再执行上面的设置密码步骤
2.设置密码时es是启动状态
4.3 kibana对应修改
elasticsearch.hosts: ["http://192.168.183.130:9200"]
elasticsearch.username: "elastic"
elasticsearch.password: "420188"
重启kibana再访问 localhost:5601就会要求输入密码
五.es集群设置密码
5.1 现在有两台服务器部署了es,且按上面
3.配置elasticsearch.yml
配置了es的文件,且形成了集群。 先把 data和logs目录删干净(如果有文件)
5.2 生成证书
在bin目录下执行./elasticsearch-certutil cert -out config/elastic-certificates.p12 -pass ""
那么他在es的config目录下会生成一个证书,名字叫:elastic-certificates.p12
5.3 把证书复制到每台服务器的config目录
5.4修改每台es的配置文件,添加到elasticsearch.yml末尾
xpack.security.transport.ssl.enabled: true
xpack.security.enabled: true
xpack.security.transport.ssl.verification_mode: certificate
xpack.security.transport.ssl.keystore.path: /home/liaochao/es/elasticsearch-7.9.3/config/elastic-certificates.p12
xpack.security.transport.ssl.truststore.path: /home/liaochao/es/elasticsearch-7.9.3/config/elastic-certificates.p12
这里的两个path就是自己的证书所在的文件目录
5.5 启动es(如果是启动状态先停止再启动) ./elasticsearch -d
5.6 设置密码
在其中任意一台上(bin目录下)执行,./elasticsearch-setup-passwords interactive
设置密码—这里与单机版设值密码一致。
5.7 kibana适配集群es带密码
修改kibana.yml
elasticsearch.hosts: ["http://192.168.183.130:9200","http://192.168.183.131:9200"]
elasticsearch.username: "elastic"
elasticsearch.password: "420188"
5.8 重启kiban
访问localhost:5601,在控制台执行
GET /_cat/nodes/ 就可以看到集群的所有节点信息
六、ES的master节点选举策略
①Elasticsearch 的选主是 ZenDiscovery 模块负责的,主要包含 Ping(节点之间通过这个 RPC 来发现彼此) 和 Unicast(单播模块包含一个主机列表以控制哪些节点需要 ping 通)这两部分
② 对所有可以成为 master 的节点(node.master: true)根据 nodeId 字典排序,每次选举每个节点都把自 己所知道节点排一次序,然后选出第一个(第 0 位)节点,暂且认为它是 master 节点。
③ 如果对某个节点的投票数达到一定的值(可以成为 master 节点数 n/2+1)并且该节点自己也选举自己, 那这个节点就是 master。否则重新选举一直到满足上述条件。
④master节点的职责主要包括集群、节点和索引的管理,不负责文档级别的管理;data 节点可以关闭 http 功能
discovery.zen.minimum_master_nodes
discovery.zen.minimum_master_nodes 1 设置在选举 Master 节点时需要参与的最少的候选主节点数,默认为 1。如果使用默认值,则当网络 不稳定时有可能会出现脑裂。 合理的数值为
(master_eligible_nodes/2)+1
,其中master_eligible_nodes
表示集群中的候选主节点数
本文标签: 归纳知识Elasticsearchkibanaes
版权声明:本文标题:elasticsearch 7.9.3知识归纳整理(一)之 es,kibana,ik的下载安装 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://www.elefans.com/dongtai/1728913640a1179420.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论