elk:日志搜集平台
ELK由ElasticSearch、Logstash和Kibana三个开源工具组成:
一、组件介绍
1、Elasticsearch:
ElasticSearch是一个基于Lucene的开源分布式搜索服务。只搜索和分析日志 。
特点:分布式,零配置,自动发现,索引自动分片,索引副本机制,多数据源等。它提供了一个分布式多用户能力的全文搜索引擎。Elasticsearch是用Java开发的,并作为Apache许可条款下的开放源码发布,是第二流行的企业搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。 在elasticsearch中,所有节点的数据是均等的。
索引:
索引(库)-->类型(表)-->文档(记录)
2、Logstash:
Logstash是一个完全开源工具,可以对你的日志进行收集、过滤、分析,并将其存储供以后使用(如,搜索),logstash带有一个web界面,搜索和展示所有日志。 只收集和过滤日志,和改格式
简单来说logstash就是一根具备实时数据传输能力的管道,负责将数据信息从管道的输入端传输到管道的输出端;与此同时这根管道还可以让你根据自己的需求在中间加上滤网,Logstash提供很多功能强大的滤网以满足你的各种应用场景。
Logstash的事件(logstash将数据流中等每一条数据称之为一个event)处理流水线有三个主要角色完成:inputs –> filters –> outputs:
logstash整个工作流分为三个阶段:输入、过滤、输出。每个阶段都有强大的插件提供支持:
Input 必须,负责产生事件(Inputs generate events),常用的插件有
-
file 从文件系统收集数据
-
syslog 从syslog日志收集数据
-
redis 从redis收集日志
-
beats 从beats family收集日志(如:Filebeats)
Filter常用的插件,负责数据处理与转换(filters modify them)
- grok是logstash中最常用的日志解释和结构化插件。:grok是一种采用组合多个预定义的正则表达式,用来匹配分割文本并映射到关键字的工具。
-
mutate 支持事件的变换,例如重命名、移除、替换、修改等
-
drop 完全丢弃事件
-
clone 克隆事件
output 输出,必须,负责数据输出(outputs ship them elsewhere),常用的插件有
-
elasticsearch 把数据输出到elasticsearch
-
file 把数据输出为普通的文件
3、Kibana:
Kibana 是一个基于浏览器页面的Elasticsearch前端展示工具,也是一个开源和免费的工具,Kibana可以为 Logstash 和 ElasticSearch 提供的日志分析友好的 Web 界面,可以帮你汇总、分析和搜索重要数据日志。
二、环境介绍
安装软件 | 主机名 | IP地址 | 系统版本 |
Elasticsearch/ | mes-1-zk | 192.168.246.234 | centos7.4--3G |
zookeeper/kafka/Logstash | es-2-zk-log | 192.168.246.231 | centos7.4--2G |
head/Kibana | es-3-head-kib-zk-File | 192.168.246.235 | centos7.4---2G |
所有机器关闭防火墙,selinux
三、版本说明
Elasticsearch: 6.5.4 #https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.5.4.tar.gz
Logstash: 6.5.4 #https://artifacts.elastic.co/downloads/logstash/logstash-6.5.4.tar.gz
Kibana: 6.5.4 #https://artifacts.elastic.co/downloads/kibana/kibana-6.5.4-linux-x86_64.tar.gz
Kafka: 2.11-2.1 #https://archive.apache.org/dist/kafka/2.1.0/kafka_2.11-2.1.0.tgz
Filebeat: 6.5.4
相应的版本最好下载对应的插件
相关地址:
实施部署
一、 Elasticsearch部署
1、安装配置jdk8
ES运行依赖jdk8 -----三台机器都操作,先上传jdk1.8
[root@mes-1 ~]# tar xzf jdk-8u191-linux-x64.tar.gz -C /usr/local/
[root@mes-1 ~]# cd /usr/local/
[root@mes-1 local]# mv jdk1.8.0_191/ java
[root@mes-1 local]# echo '
JAVA_HOME=/usr/local/java
PATH=$JAVA_HOME/bin:$PATH
export JAVA_HOME PATH
&#