频道栏目
首页 > 系统 > Linux > 正文
ELK日志处理之Filebeat工作原理
2017-04-20 10:28:00         来源:姚攀的博客  
收藏   我要投稿

一、Filebeat简介

Beats是Elastic Stack技术栈中轻量级的日志采集器,Beats家族包括以下五个成员:

Filebeat:轻量级的日志采集器,可用于收集文件数据。

Metricbeat:5.0版本之前名为Topbeat,搜集系统、进程和文件系统级别的 CPU 和内存使用情况等数据。

Packetbeat:收集网络流数据,可以实时监控系统应用和服务,可以将延迟时间、错误、响应时间、SLA性能等信息发送到Logstash或Elasticsearch。

Winlogbeat:搜集Windows事件日志数据。

Heartbeat:监控服务器运行状态。

二、Filebeat和Logstash

ELK架构中使用Logstash收集、解析日志,但是Logstash对内存、cpu、io等资源消耗比较高。相比 Logstash,Beats所占系统的CPU和内存几乎可以忽略不计。

Elasticsearch、Logstash、Kibana组合成为ELK Stack,Beats+ELK Stack=Elastic Stack

三、Filebeat工作原理

Filebeat是使用GO语言开发,工作原理如下:当Filebeat启动时,它会启动一个或者多个prospector监控日志路径或日志文件,每个日志文件会有一个对应的harvester,harvester按行读取日志内容并转发至后台程序。Filebeat维护一个记录文件读取信息的注册文件,记录每个harvester最后读取位置的偏移量。

这里写图片描述

四、Filebeat配置

下面是一个简单的Filebeat配置,采集2个文件夹下的日志并转发至Logstash。

filebeat:
  prospectors:
    -
      paths:
        - /dir1/access_log.*
      input_type: log
      document_type: dir1_log
    -
      paths:
        - /dir2/ofbiz.log.*
      input_type: log
      document_type: dir2_log
output:
  logstash:
    hosts: ["10.90.4.9:5044"]

在Logstash中根据 document_type定义解析日志的正则并输出到ELasticsearch集群。

input {
    beats{
     host => "192.2.11.145"
     port => 5044
   }
}
filter {
  if[type]=="dir1_log"{
    grok {
        match => { "message" => "%{COMBINEDAPACHELOG}"}
    }
  } else if ([type]=="dir2_log") {
    grok {
        match => { "message" => "%{TIMESTAMP_ISO8601:time}\s*%{NUMBER:logtime} \[\s*%{JAVAFILE:class}\:%{NUMBER:lineNumber}\s*\:%{LOGLEVEL:level}\s*\]\s*(?([\s\S]*))"}
    }
  }
}
output {
    elasticsearch {
      hosts => ["10.90.4.9","10.90.4.8","10.90.4.7"]
    }
}
点击复制链接 与好友分享!回本站首页
上一篇:aws - loadbalacing
下一篇:CentOS 7安装ownCloud
相关文章
图文推荐
点击排行

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站