设置了两个主节点跑Es,一个节点跑kibana。按照以下步骤是无坑的,一路顺畅。
本文使用的是7.16.3 官网文档地址
一、elasticsearch集群下载按照
一般要保证Es和Java版本匹配,但是直接下载es会一起下载一个适配的jdk版本。如果你本机也有没关系,es会选择自己的jdk。版本关系
1、下载
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.16.3-linux-x86_64.tar.gz
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.16.3-linux-x86_64.tar.gz.sha512
shasum -a 512 -c elasticsearch-7.16.3-linux-x86_64.tar.gz.sha512
tar -xzf elasticsearch-7.16.3-linux-x86_64.tar.gz
cd elasticsearch-7.16.3/
// 如果没有shasum
yum install perl-Digest-SHA
这个官方下载链接,shasum是用来确认你下载的包是完整的,完整会输出ok。
2、基础环境配置
修改服务打开文件数
vim /etc/security/limits.conf
root soft nofile 65535 (这个不需要修改成262144,无需改动)
root hard nofile 65535 (这个不需要修改成262144,无需改动)
* soft nofile 262144
* hard nofile 262144
防止进程虚拟内存不足
vim /etc/sysctl.conf
#文件尾部设置
vm.max_map_count=262144
使上面的设置生效
sysctl -p
3、修改es 配置文件elasticsearch.yml
在es安装目录下的config目录下。每个节点都配置
#集群名称,三台集群,要配置相同的集群名称!!!
cluster.name: wit
#节点名称
node.name: node-1 #每个节点的名称不能相同
node.master: true
#是否存储数据
node.data: true
network.host: 0.0.0.0
#端⼝
http.port: 9200
#内部节点之间沟通端⼝
transport.tcp.port: 9300
#写ip地址,不包含端口
discovery.seed_hosts: ["es1 IP","es2 IP","es3 IP"]
#填写集群中的节点的name
cluster.initial_master_nodes: ["node-1", "node-2","node-3"]
#数据和存储路径
path.data: /data/esdata (可以自己创建,可以设置在ES解压目录中)
path.logs: /data/eslogs (可以自己创建,可以设置在ES解压目录中)
4、修改jvm启动参数
config/jvm.options配置文件来设定JVM的相关设定 不要设置的不一样,会导致es启动失败
#设置jvm最大最小占用内存。
-Xmx1g
-Xms1g
5、启动Es
添加一个用户,来启动es es目前不允许root启动,并为这个账户赋予相应的权限来启动elasticsearch集群
#useradd es
分配权限
chown -R es:es es安装目录
切换至es用户su - es启动ES
- bin/elasticsearch --前台启动
- bin/elasticsearch -d --后台启动
6、验证Es集群
curl localhost:9200/_cluster/health?pretty
输出
{
"cluster_name" : "elasticsearch-Wty",
"status" : "green",
"timed_out" : false,
"number_of_nodes" : 2,
"number_of_data_nodes" : 2,
"active_primary_shards" : 9,
"active_shards" : 18,
"relocating_shards" : 0,
"initializing_shards" : 0,
"unassigned_shards" : 0,
"delayed_unassigned_shards" : 0,
"number_of_pending_tasks" : 0,
"number_of_in_flight_fetch" : 0,
"task_max_waiting_in_queue_millis" : 0,
"active_shards_percent_as_number" : 100.0
}
curl http://localhost:9200
输出
{
"name" : "node-1",
"cluster_name" : "elasticsearch-Wty",
"cluster_uuid" : "4hU7tklbSrCUqurLzWvnOQ",
"version" : {
"number" : "7.16.3",
"build_flavor" : "default",
"build_type" : "tar",
"build_hash" : "4e6e4eab2297e949ec994e688dad46290d018022",
"build_date" : "2022-01-06T23:43:02.825887787Z",
"build_snapshot" : false,
"lucene_version" : "8.10.1",
"minimum_wire_compatibility_version" : "6.8.0",
"minimum_index_compatibility_version" : "6.0.0-beta1"
},
"tagline" : "You Know, for Search"
}
外网访问,需要你在腾讯云控制台防火墙开放端口。
7、配置中文分词器ik
github地址 在安装目录下使用,注意选择自己es的版本的ik
./bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.16.3/elasticsearch-analysis-ik-7.16.3.zip
安装kibana
1、下载
curl -O https://artifacts.elastic.co/downloads/kibana/kibana-7.16.3-linux-x86_64.tar.gz
curl https://artifacts.elastic.co/downloads/kibana/kibana-7.16.3-linux-x86_64.tar.gz.sha512 | shasum -a 512 -c -
tar -xzf kibana-7.16.3-linux-x86_64.tar.gz
cd kibana-7.16.3-linux-x86_64/
2、修改配置文件
安装目标下config里面的kibana.yml
server.port: 5601
server.host: "0.0.0.0"
server.name: tanklog
elasticsearch.hosts: ["http://host1:9200/","http://host2:9200/"]
#启动的kibana是英文版的,可用设置参数修改为中文版
i18n.locale: "zh-CN"
3、启动
创建一个用户,要不然启动不了
useradd kibana
授权
chown -R kibana:kibana kibana目录
切换账户
su - kibana
进入bin目录,后台启动kibana
nohup ./kibana &
腾讯云控制台开放5601端口,访问
http://IP:5601/app/kibana
查看集群状态
在kibana里面有一个堆栈监控
4. 配置es日志
刚启动几个小时就100多m系统日志,将日志级别提高, 日志记录
PUT /_cluster/settings
{
"transient" : {
"logger.discovery" : "DEBUG"
}
}
参考资料
看参考资料一般会带来更多的收获
- elasticsearch7 集群搭建(三个master节点)
- 官网7.16.3文档