1. ELK概述
ELK即是Elasticsearch、Logstash、Kibana四者的结合,是一套开源的分布式日志管理方案.
Elasticsearch:负责日志存储、检索和分析
LogStash:负责日志的收集、处理,(此处我们用于收集的工具是FileBeat)
Kibana:负责日志的可视化
方案:
logstash的工作原理:
1.input 数据输入端,可以接收来自任何地方的源数据。
file:从文件中读取
syslog:监听在514端口的系统日志信息,并解析成RFC3164格式。 redis:从redis-server list 中获取 beat:接收来自Filebeat的事件
2.Filter 数据中转层,主要进行格式处理,数据类型转换、数据过滤、字段添加,修改等,常用的过滤器如下。
grok: 通过正则解析和结构化任何文本。Grok 目前是logstash最好的方式对非结构化日志数据解析成结构化和可查询化。logstash内置了120个匹配模式,满足大部分需求。
mutate: 在事件字段执行一般的转换。可以重命名、删除、替换和修改事件字段。
drop: 完全丢弃事件,如debug事件。
clone: 复制事件,可能添加或者删除字段。
geoip: 添加有关IP地址地理位置信息。
3.output 是logstash工作的最后一个阶段,负责将数据输出到指定位置,兼容大多数应用,常用的有
elasticsearch: 发送事件数据到 Elasticsearch,便于查询,分析,绘图。
file: 将事件数据写入到磁盘文件上。 mongodb:将事件数据发送至高性能NoSQL mongodb,便于永久存储,查询,分析,大数据分片。 redis:将数据发送至redis-server,常用于中间层暂时缓存。 graphite: 发送事件数据到graphite。 statsd: 发送事件数据到 statsd。
2.环境搭建
2.1 环境依赖
logstash和elasticsearch均依赖java,所以安装这两个之前,我们应该先安装好java。我此处java的版本(此处不在赘述):
2.2. 注意事项
后续所有软件需要版本一致,否则会出现不可预知的问题,此处描述均为6.x版本
2.3. Elasticsearch安装部署
1.下载地址:https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.2.4.zip
2.解压下载文件,进入elasticsearch/config目录修改elasticsearch.yml文件下network.host属性
network.host: 0.0.0.0
3.启动Elasticsearch,进入elasticsearch安装目录执行
bin/elasticsearch &
4.只涉及单机安装,集群安装请参考柴少鹏的官方网站-Elasticsearch集群部署(一)
2.4. logstash安装部署
2.
解压下载文件,进入logstash/config目录