原文发表于cu:2017-02-10
参考文档:
-
-
-
-
本文通过yum的方式安装ELK Stack各套件,并做简单配置。
一.环境准备
1. 操作系统
CentOS-7-x86_64-Everything-1511
2. JDK版本
# 官方文档写得很明确:elasticsearch与logstash至少需要java 8支持,其中logstash5.x版本也不支持java 9,这里部署openjdk,使用“yum provides java”命令选取合适的版本进行安装。
[root@elk-node1 ~]# yum install java-1.8.0-openjdk-1.8.0.121-0.b13.el7_3.x86_64 -y
[root@elk-node1 ~]# java -version
openjdk version "1.8.0_121"
OpenJDK Runtime Environment (build 1.8.0_121-b13)
OpenJDK 64-Bit Server VM (build 25.121-b13, mixed mode)
3. ELK版本
Elasticsearch 5.2: https://www.elastic.co/downloads/elasticsearch
Logstash 5.2:https://www.elastic.co/downloads/logstash
Kibana 5.2:https://www.elastic.co/downloads/kibana
4. 拓扑图
1) 物理拓扑
-
验证环境部署2台设备,均为VMware ESXi虚拟出的vm,部署在相同网段;
-
每台vm上均部署elk的3个组件,只是配置文件根据节点不同而略有不同(以下部署配置过程只针对node1,node2安装配置可参照node1)。
2) 逻辑流程
-
数据源只需要输入到某1个logstash节点;
-
经过logstash处理的数据需要输出到elasticsearch集群中的所有节点,elasticsearch分布式集群通过自身处理,每个节点均能获取全部数据;
-
kibana展示只需要从本机所在elasticsearch节点即可获取全部数据。
二.Elasticsearch部署
1. 导入elasticsearch PGP key
2. 创建yum源文件
[root@elk-node1 ~]# vim /etc/yum.repos.d/elasticsearch.repo
[elasticsearch-5.x]
name=Elasticsearch repository for5.x packages
baseurl=https://artifacts.elastic.co/packages/5.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md
3. 安装elasticsearch
[root@elk-node1 ~]# yum install elasticsearch -y
4. 设置开机启动
[root@elk-node1 ~]# systemctl daemon-reload
[root@elk-node1 ~]# systemctl enable elasticsearch.service
Created symlink from /etc/systemd/system/multi-user.target.wants/elasticsearch.service to /usr/lib/systemd/system/elasticsearch.service.
5. 配置hosts文件
# 根据实际环境配置,将节点主机名加入hosts文件
[root@elk-node1 ~]# echo "10.11.4.151 elk-node1" >> /etc/hosts
[root@elk-node1 ~]# echo "10.11.4.152 elk-node2" >> /etc/hosts
6. 配置elasticsearch.yml
[root@elk-node1 src]# cat /etc/elasticsearch/elasticsearch.yml | grep -v “#”
cluster.name: elk #自定义集群名,相同集群内的节点设置相同的集群名
node.name: elk-node1 #自定义节点名,建议统一采用节点hostname
path.data: /var/lib/elasticsearch #data存储路径,可不取消注释,默认即此路径
path.logs: /var/log/elasticsearch #log存储路径,可不取消注释,默认即此路径
network.host: 0.0.0.0 #es监听地址,采用”0.0.0.0”,允许所有设备访问
http.port: 9200 #es监听端口,可不取消注释,默认即此端口
discovery.zen.ping.unicast.hosts: ["elk-node1", "elk-node2"] # 集群节点发现列表,也可采用ip的形式
discovery.zen.minimum_master_nodes: 2 #集群可做master的最小节点数,生产环境建议节点数至少3个且为基数
# 以下两项设置es5.x版本的head插件可以访问es http.cors.enabled: true #开启跨域访问支持,默认为false http.cors.allow-origin: "*" #跨域访问允许的域名地址,使用正则表达式
7. 配置head插件
elasticsearch5.x版本没有提供直接安装head插件的方法,作者在github上给出了方法:https://github.com/mobz/elasticsearch-