ES集群安装
部署ES集群,用于ELK日志分析平台的构建
主机名称 | IP地址 | 角色 | 规格 |
---|---|---|---|
es-0001 | 192.168.1.71 | Elasticsearc第一个节点 | 1CPU/2G内存 |
es-0002 | 192.168.1.72 | Elasticsearc第二个节点 | 1CPU/2G内存 |
es-0003 | 192.168.1.73 | Elasticsearc第三个节点 | 1CPU/2G内存 |
kibana | 192.168.1.74 | Kibana | 1CPU/2G内存 |
logstash | 192.168.1.75 | Logstash | 2CPU/2G内存 |
es-0001主机更改/etc/hosts
[root@ es-0001 ~]# vim /etc/hosts
192.168.1.71 es-0001
192.168.1.72 es-0002
192.168.1.73 es-0003
192.168.1.74 kibana
192.168.1.75 logstash
将最新的/etc/hosts配置文件更新到所有的云主机上
[root@ es-0001 ~]# scp /etc/hosts 192.168.1.72:/etc
[root@ es-0001 ~]# scp /etc/hosts 192.168.1.73:/etc
[root@ es-0001 ~]# scp /etc/hosts 192.168.1.74:/etc
[root@ es-0001 ~]# scp /etc/hosts 192.168.1.75:/etc
将相关软件包做好YUM仓库
[root@jump-server ~]# mkdir /var/ftp/localrepo/elk
[root@jump-server ~]# cp /root/project3/ELK/*.rpm /var/ftp/localrepo/elk/
[root@jump-server ~]# createrepo --update /var/ftp/localrepo/
集群安装配置,安装基础环境软件
es-0001,es-0002,es-0003检查yum源,确定可以使用
[root@es-0001 ~]# cat /etc/yum.repos.d/local.repo
[local_repo]
name=CentOS-$releasever – Localrepo
baseurl=ftp://192.168.1.252/localrepo
enabled=1
gpgcheck=0
[root@es-0001 ~]# scp /etc/yum.repos.d/local.repo 192.168.1.72:/etc/yum.repos.d
[root@es-0001 ~]# scp /etc/yum.repos.d/local.repo 192.168.1.73:/etc/yum.repos.d
[root@es-0001 ~]# scp /etc/yum.repos.d/local.repo 192.168.1.74:/etc/yum.repos.d
[root@es-0001 ~]# scp /etc/yum.repos.d/local.repo 192.168.1.75:/etc/yum.repos.d
[root@es-0001 ~]# yum -y install java-1.8.0-openjdk-devel
[root@es-0002 ~]# yum -y install java-1.8.0-openjdk-devel
[root@es-0003 ~]# yum -y install java-1.8.0-openjdk-devel
[root@kibana ~]# yum -y install java-1.8.0-openjdk-devel
[root@logstash ~]# yum -y install java-1.8.0-openjdk-devel
#检测JDK环境安装是否成功
[root@es-0001 ~]# java -version
openjdk version "1.8.0_252"
OpenJDK Runtime Environment (build 1.8.0_252-b09)
......
es-0001,es-0002,es-0003安装elasticserach
[root@es-0001 ~]# yum -y install elasticsearch
配置es-0001
[root@es-0001 ~]# vim /etc/elasticsearch/elasticsearch.yml
cluster.name: es #17行,集群的名称。
node.name: es-0001 #23行,该节点主机名。
network.host: 192.168.1.71 #55行,该节点主机的IP地址。
http.port: 9200 #59行,对外服务的http端口。
discovery.zen.ping.unicast.hosts: ["es-0001", "es-0002", "es-0003"] #68行,集群节点主机列表
discovery.zen.minimum_master_nodes: 2 #72行,最少主节点数。
[root@es-0001 ~]# systemctl enable --now elasticsearch
[root@es-0001 ~]# systemctl status elasticsearch
配置es-0002
[root@es-0002 ~]# vim /etc/elasticsearch/elasticsearch.yml
cluster.name: es #17行,集群的名称。
node.name: es-0002 #23行,该节点主机名。
network.host: 192.168.1.72 #55行,该节点主机的IP地址。
http.port: 9200 #58行,对外服务的http端口。
discovery.zen.ping.unicast.hosts: ["es-0001", "es-0002", "es-0003"] #68行,集群节点主机列表
discovery.zen.minimum_master_nodes: 2 #72行,最少主节点数。
[root@es-0002 ~]# systemctl enable --now elasticsearch
配置es-0003
[root@es-0003 ~]# vim /etc/elasticsearch/elasticsearch.yml
cluster.name: es #17行,集群的名称。
node.name: es-0003 #23行,该节点主机名。
network.host: 192.168.1.73 #55行,绑定的IP地址。
http.port: 9200 #58行,对外服务的http端口。
discovery.zen.ping.unicast.hosts: ["es-0001", "es-0002", "es-0003"] #68行,集群节点主机列表
discovery.zen.minimum_master_nodes: 2 #72行,最少主节点数。
[root@es-0003 ~]# systemctl enable --now elasticsearch
查看ES集群信息
[root@ecs-proxy ansible]# curl -XGET http://192.168.1.71:9200/_cluster/health?pretty
{
"cluster_name" : "my-es",
"status" : "green",
"timed_out" : false,
"number_of_nodes" : 3,
"number_of_data_nodes" : 3,
"active_primary_shards" : 0,
"active_shards" : 0,
"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
}
安装head插件
ES官方没有为ES提供界面管理工具,仅仅提供了后台服务。elasticsearch-head是一个为ES开发的web页面客户端工具。
head提供了以下安装方式:
A、源码安装,通过npm run start 启动
B、通过docker安装(推荐)
C、通过chrome插件安装
部署插件
由于前后端分离开发,所以会存在跨域问题,需要在服务端做CORS的配置。
(前后端分离:前端所有用到的数据都是后端通过异步接口的方式提供的,前端只管页面的展示及效果。)
在配置文件末尾手动添加以下内容即可
[root@es-0001 ~]# vim /etc/elasticsearch/elasticsearch.yml
http.cors.enabled: true
http.cors.allow-origin: "*"
[root@es-0001 ~]# systemctl restart elasticsearch
[root@es-0001 ~]# scp 192.168.1.251:/root/project3/ELK/elasticsearch-head.tar /root/
[root@es-0001 ~]# yum -y install docker-ce
[root@es-0001 ~]# systemctl enable --now docker
[root@es-0001 ~]# docker load -i elasticsearch-head.tar
[root@es-0001 ~]# docker run --name es-head -td -p 9100:9100 elasticsearch-head:5
914e41f15e9de8873a57e2a53e250231592ed18e635fdd227733e99542f42218
[root@es-0001 ~]# netstat -antpu | grep :9100
tcp6 0 0 :::9100 :::* LISTEN 12971/docker-proxy
创建监听器(9200),添加后端服务器群组
【服务器列表】—>【弹性负载均衡ELB】—>【(自定义ELB名称)】—>【监听器】—>【添加监听器】
更改监听器名称,并且配置前端协议端口为9200
配置后端服务器组,更改名称,点击完成。如图-3所示
点击【后端服务器群组】,找到我们刚才添加的【server_group-es】,并单击。【添加】后端真实服务器。如图-4所示。
添加 es-0001 为后端服务器成员,点击下一步。如图-5所示。
配置后端服务器提供服务的端口 9200 点击完成。如图-6所示。
创建监听器 (9100) 添加后端服务器群组
访问head插件:http://公网IP:9100
默认打开是未连接状态。将http://localhost:9200/改为http://公网IP:9200,并点击连接。
部署kibana
Kibana是一款开源的数据分析和可视化平台,它是 Elastic Stack 成员之一。可以使用 Kibana 对 Elasticsearch 索引中的数据进行搜索、查看、交互操作。可利用图表、表格等对数据进行多元化的分析和显现。
安装kibana软件包
[root@kibana ~]# yum -y install kibana
更改kibana服务配置文件
[root@kibana ~]# vim /etc/kibana/kibana.yml
server.port: 5601 #2行,提供服务的端口。
server.host: "192.168.1.74" #7行,服务器监听地址。
elasticsearch.hosts: ["http://192.168.1.71:9200"] #28行,用于查询es实例主机地址,集群里面任选一个
即可。
启动服务器并查看端口是否启用
[root@knbana ~]# systemctl enable --now kibana
[root@kibana ~]# netstat -antpu | grep 5601
tcp 0 0 0.0.0.0:5601 0.0.0.0:* LISTEN 8840/node
通过浏览器访问kibana,创建监听器,并添加后端服务器。
【服务器列表】—>【弹性负载均衡ELB】—>【(自定义ELB名称)】—>【监听器】—>【添加监听器】
此次监听端口为5601
访问kibana界面:http://公网IP:5601
用 head 插件访问 es 集群,会查看到 .kibana 的索引信息