ELFK-Filebeta 日志收集

1.Filebeta介绍

Filebeat是一个开源的日志收集器,它能够收集并解析各种日志数据。Filebeat在系统日志、Web服务器日志、应用程序日志等方面有着广泛的应用。Filebeat具有高可用性、可扩展性、高效性等特点,能够满足大规模的日志收集需求。

1.1 特点

Filebeat的主要特点包括:

  1. 轻量级:Filebeat是一个轻量级的代理,对系统资源的消耗非常低,设计用于高性能和低延迟,可以在各种环境中运行,包括服务器、容器和虚拟机。
  2. 多源收集:Filebeat支持从各种来源收集数据,包括日志文件、系统日志、Docker容器日志、Windows事件日志等。它具有多个输入模块,可以轻松配置用于不同数据源的数据收集。
  3. 模块化:Filebeat采用模块化的方式组织配置,每个输入类型都可以作为一个模块,易于扩展和配置。这使得添加新的数据源和日志格式变得更加简单。
  4. 自动发现:Filebeat支持自动发现服务,可以在容器化环境中自动识别新的容器和服务,并开始收集其日志数据。
  5. 可视化:Filebeat可以解析多种常见的日志格式,简化用户操作。它还内置多个模块(如auditd、Apache、NGINX、System、MySQL等),将常见日志格式的收集、解析和可视化简化成了一个单独命令。
  6. 容器应用日志收集:Filebeat支持容器应用的日志收集,并且能通过libbeat的autodiscover特性检测新加入的容器并使用对应的模块(module)或输入。

1.2 原理

Filebeat的工作流程如下:

  1. 启动Filebeat时,它会启动一个或多个探测器(prospectors)去检测你指定的日志目录或文件。
  2. 对于探测器找出的每一个日志文件,Filebeat都会启动一个收割进程(harvester)。
  3. 每个收割进程会读取一个日志文件的新内容,并发送这些新的日志数据到处理程序(spooler)。
  4. 处理程序会聚集这些事件,最后Filebeat会发送聚集的数据到你指定的地点。

2.Filebeta基本使用

2.1 Filebeta安装

filebeta的安装比较简单,直接官网下载安装包,直接解压到相对应的目录,然后通过命令启动

#windwos 启动命令  
filebeat -e -c D:\work\filebeat\filebeat.yml
#linux启动命令
sudo service filebeat start

3.Filebeta 配置

3.1 收集日志输出到kafka配置

#日志收集配置
filebeat.inputs:
#收集类型,可以是log,kafka,redis,tcp,udp,Http endpoint等等,每个类型配置并不一样,更多可以参考官网
- type: log
  #收集项唯一id,自定义,收集网关服务日志
  id: gateway-server-id
  #开启收集配置
  enabled: true
  #收集日志文件路径
  paths:
    - D:\work\logs\gatway-server\*.log
  #自定义收集日志标签字段,在下面output可以根据这个配置动态配置
  fields:
    log-topic: gateway-server-log
  #指定多行模式下的匹配模式。当日志以多行形式出现时,例如在错误日志中,每行可能是单独的错误消息或异常报告,
  #multiline.pattern配置项可以帮助Filebeat将这些多行日志组合成一个完整的消息进行发送。
  multiline:
    #正则表达式 匹配日期时间格式的行首
    pattern: '^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}'
    #否要取反匹配结果
    negate: false
    #指定要在哪个位置进行匹配,可选值如下
    #after: 将当前行与下一行组合成一个完整的消息。当前行后面的所有行都将与下一行组合在一起,直到遇到一个不符合指定模式的行。
    #before: 将当前行与上一行组合成一个完整的消息。当前行前面的所有行都将与上一行组合在一起,直到遇到一个不符合指定模式的行。
    #between: 将当前行与前一行和下一行组合成一个完整的消息。当前行之前的所有行和当前行之后的所有行都将与当前行组合在一起,直到遇到一个不符合指定模式的行。
    match: after
  #在Filebeat中,每个文件都有一个唯一的inode,它是一个指向文件系统的索引节点。通过使用file_identity.inode_marker.path配置项,
  #Filebeat可以在指定的路径下创建一个标记文件,用于记录文件的inode信息。这个标记文件可以帮助Filebeat识别文件的唯一性,以便在文件发生变化时能够重新读取文件并发送新的数据
  file_identity: 
    inode_marker: 
    path: /logs/.filebeat-marker
  #配置排除需要收集日志的标识,包含此标识的日志不收集
  exclude_lines: ['^DBG']
  #配置收集日志标识,仅收集包含此配置标识的日志
  include_lines: ['^ERR', '^WARN']
- type: log
  id: auth-server-id
  enabled: true
  paths:
    #收集授权服务日志
    - D:\work\logs\auth-server\*.log
  fields:
    log-topic: auth-server-log
  multiline:
    pattern: '^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}'
    negate: false
    match: after
- type: log
  id: baseWeb-id
  enabled: true
  paths:
    #收集后台管理服务日志
    - D:\work\logs\baseWeb\*.log
  fields:
    log-topic: baseWeb-log
  multiline:
    pattern: '^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}'
    negate: false
    match: after
#日志输出配置
output.kafka:            
  #开启kafka模块  
  enabled: true       
  #填写kafka服务器地址
  hosts: ["192.168.31.190:9092"]
  #填写kafka的topic(主题),自定义的,这里根据上面配置fields.log-topic动态配置topic,不同服务的日志输出到不同的topic
  topic: "%{[fields.log-topic]}"

3.2 收集日志输出到es配置

以下是Filebeat的output.elasticsearch的完整配置示例:

output:
 elasticsearch:
  hosts: ["localhost:9200"]
  username: "your_username"
  password: "your_password"
  index: "myindex"
  doc_type: "mytype"
  ignore_failure: true
  manage_template: true
  mode: "push"

在这个配置示例中,我们使用了以下参数:

  • hosts:Elasticsearch的主机地址和端口号。这里我们指定了本地主机(localhost)和默认的Elasticsearch端口(9200)。
  • usernamepassword:用于身份验证的凭据。如果需要身份验证,可以提供这些字段的值。
  • index:要将日志发送到的Elasticsearch索引名称。在这个例子中,我们使用"myindex"作为索引名称。
  • doc_type:要发送到Elasticsearch的文档类型。在Elasticsearch 7.x之后,索引和类型合并为一个概念,因此这个字段不再需要。如果你使用的是早期版本的Elasticsearch,可以指定一个类型名称。
  • ignore_failure:如果设置为true,Filebeat将继续发送未成功处理的日志。默认为false,如果日志处理失败,Filebeat将停止发送日志。
  • manage_template:如果设置为true,Filebeat将管理Elasticsearch的索引模板。默认为true。
  • mode:指定Filebeat的输出模式。在这个例子中,我们使用"push"模式,将日志推送到Elasticsearch。还有其他模式可供选择,例如"pull"模式,从Elasticsearch中拉取日志。

请根据你的需求进行适当的配置调整。

3.3 收集日志输出到logstash

以下是一个完整的Filebeat配置示例,将日志输出到Logstash:

filebeat:
  outputs:
    - name: logstash
      logstash:
        hosts: ["localhost:5044"]
        username: "your_username"
        password: "your_password"
        index: "myindex"
        manage_template: true
  config_dir: /etc/filebeat/conf.d/
  config_reloads: 30s
  shutdown_timeout: 30s

这个配置示例包括以下部分:

  1. outputs:定义输出配置。在这个例子中,我们定义了一个名为logstash的输出,将日志发送到Logstash。hosts指定Logstash的主机地址和端口号,usernamepassword用于身份验证(如果需要),index指定要使用的Elasticsearch索引名称,manage_template指定是否管理Elasticsearch的索引模板。
  2. config_dir:指定Filebeat配置文件夹的路径。
  3. config_reloads:指定配置重新加载的时间间隔。在这个例子中,Filebeat将每30秒重新加载一次配置。
  4. shutdown_timeout:指定Filebeat关闭之前等待完成的时间。在这个例子中,Filebeat将等待30秒完成所有的处理任务后关闭。
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,001评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,210评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,874评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,001评论 1 291
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,022评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,005评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,929评论 3 416
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,742评论 0 271
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,193评论 1 309
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,427评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,583评论 1 346
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,305评论 5 342
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,911评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,564评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,731评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,581评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,478评论 2 352

推荐阅读更多精彩内容