首页 > 其他分享 >filebeat日志收集到elasticsearch

filebeat日志收集到elasticsearch

时间:2023-05-16 16:24:03浏览次数:49  
标签:-% index filebeat setup 索引 elasticsearch 日志

filebeat是轻量级日志收集框架,go语言开发。需要在每个日志收集的终端部署,配置日志文件路径。可以将日志收集到es,logstash,这里以收集到es为例。配置主要分为input和out两块。解压后有filebeat.yml配置文件,主要针对该文件进行配置。

- type: log
#日志文件位置
  paths:
    - /data/logs/*/*.log
output.elasticsearch:
  #es连接信息
  hosts: ["localhost:9200"]
  protocol: "http"
  username: "elastic"
  password: "888888" 

会自动创建一个 "filebeat-%{[agent.version]}-%{+yyyy.MM.dd}-%{index_num}"

例:filebeat-7.12.1-2023.05.16-000001索引文件

索引创建规则

默认使用es的索引声明周期策略

index lifecycle management (ILM) 生成索引

配置ILM

#auto false true
setup.ilm.enabled: auto
#索引别名
setup.ilm.rollover_alias: "filebeat"
#索引增加策略
setup.ilm.pattern: "{now/d}-000001"

setup.ilm.enabled默认值auto,自动使用es中filebeat生命周期策略创建索引

setup.ilm.rollover_alias默认值filebeat-%{[agent.version]} ,创建索引时指定索引别名。

setup.ilm.pattern默认值%{now/d}-000001,索引rollover增加策略。

自动生成的索引名就是使用alias+pattern。类似filebeat-7.12.1-2023.05.16-000001这种。

更多配置参考:https://www.elastic.co/guide/en/beats/filebeat/7.17/ilm.html

自定义索引文件

output.elasticsearch可以指定index,使用自定义索引第一步就是要关闭ILM,

setup.ilm.enabled: false

下一步要配置setup.template.name和setup.template.pattern

setup.template.name: "filebeat"
setup.template.pattern: "filebeat-*"
setup.template.overwrite: false

在output.elasticsearch指定index

index: "spring-%{[agent.version]}-%{+yyyy.MM.dd}"

运行就会自动生成索引spring-7.12.1-2023.05.16。index定义可以使用上下文定义变量。可以在input里自定义field

fields:
    level: system
    region: A1

自定义的fields会一并push到索引中,index中使用自定义的fields

index: "spring-%{[fields.region]}-%{[agent.version]}-%{+yyyy.MM.dd}"

会生成索引:spring-a1-7.12.1-2023.05.16。这里A1自动转成小写了。

日志多行合并

默认情况下收集日志一行一条记录,有些情况下比如格式化输出,异常栈。一条完整的日志会包含多行数据。这时候就需要配置多行匹配。配置项在filebeat.inputs里

multiline.pattern: '^\['
multiline.negate: true
multiline.match: after

multiline.pattern指定日志匹配正则,这里'^['就是匹配以 [ 开头的行。这个地方的具体格式就要合实际输出的日志格式相匹配了。

negate和match两个参数结合使用,没太看懂,理解其来感觉有点绕,自己看官方演示例子吧https://www.elastic.co/guide/en/beats/filebeat/7.17/multiline-examples.html,有个表格图例。大体意思就是遇到不匹配的是向上合并还是向下合并,归属于那一条。这里配置true和after就是不匹配的格式行归属到上一个匹配的结果行。

根据条件写入不同索引

output.elasticsearch:
  hosts: ["http://localhost:9200"]
  indices:
    - index: "warning-%{[agent.version]}-%{+yyyy.MM.dd}"
      when.contains:
        message: "WARN"
    - index: "error-%{[agent.version]}-%{+yyyy.MM.dd}"
      when.contains:
        message: "ERR"

判断message内容,是否包含某些内容。不做演示。

收集到的日志可在kibana 日志功能界面化查看检索。需要配置日志索引匹配模式,例如上面的我们就需要新增匹配日志模式spring-*。

最后filebeat.yml有效配置大概这样

filebeat.inputs:
- type: log
  enabled: true
  paths:
    - /data/logs/*/*.log

  fields:
    level: system
    region: A1

  multiline.pattern: '^#\['
  multiline.negate: true
  multiline.match: after

output.elasticsearch:
  hosts: ["localhost:9200"]
  protocol: "http"
  username: "elastic"
  password: "888888"
  index: "spring-%{[fields.region]}-%{[agent.version]}-%{+yyyy.MM.dd}"

setup.ilm.enabled: false
setup.template.name: "filebeat"
setup.template.pattern: "filebeat-*"
setup.template.overwrite: false

参考

下载地址:https://www.elastic.co/cn/downloads/past-releases/filebeat-7-17-1

guide:https://www.elastic.co/guide/en/beats/filebeat/7.17/index.html

标签:-%,index,filebeat,setup,索引,elasticsearch,日志
From: https://www.cnblogs.com/bird2048/p/17405977.html

相关文章

  • 使用NEST简单操作Elasticsearch
    .NetCore中使用NEST简单操作Elasticsearch C#中访问Elasticsearch主要通过两个包NEST和Elasticsearch.Net,NEST用高级语法糖封装了Elasticsearch.Net可以通过类Linq的方式进行操作,而Elasticsearch.Net相比之下更为原始直接非常自由。注意:ES的8.X以上的版本有新的包Elastic.C......
  • 使用Chainsaw v2远程察看log4j日志
    使用Chainsawv2远程察看log4j日志[url]http://fangyuncn.wordpress.com/2010/03/19/%E4%BD%BF%E7%94%A8chainsaw-v2%E8%BF%9C%E7%A8%8B%E5%AF%9F%E7%9C%8Blog4j%E6%97%A5%E5%BF%97/[/url]MonitoringJBosslogfilewithChainsawv2[url]http://absszero.......
  • Python基础篇:日志logging
    一:日志级别CRITICAL=50FATAL=CRITICALERROR=40WARNING=30WARN=WARNINGINFO=20DEBUG=10NOTSET=0二:日志格式化https://docs.python.org/3/library/logging.html#logrecord-attributesAttributenameFormatDescriptionargsYoushouldn’tneedtoformatthis......
  • 使用 Easysearch,日志存储少一半
    在海量日志存储场景中,索引膨胀率是一个关键指标,直接影响存储成本和查询性能。它表示原始数据与索引数据在磁盘上所占空间的比率。较高的索引膨胀率不仅增加了存储成本,而且可能会影响查询速度,尤其是在I/O密集型的查询中。因此,我们需要密切关注和优化索引膨胀率。接下来,我们将比较......
  • Logstash关于日志清洗记录学习及应用
    logstash日志清洗:日志清洗任务,给了我乱七八糟资料之后看的一脸懵,最后决定自己动手整理整理这样有头绪点,记录一下自己学习过程。其中涉及到一些ip内容的我都改为ip,其他保持一致,欢迎大家一起讨论,我也是刚开始学习这个,如有写的不对请多指教。一、学习阶段1、首先理解logstash中各个......
  • elk日志收集之rsyslog软连接监控文件深度坑
    业务中通过rsyslog监控本地文件收集了一些redis和mc的慢日志,推到elk集群分析,这些日志一天一个文件,每晚零点5分通过计划任务用软连接的方式将新的文件固定到指定文件下,但是最近发现日志丢了很多,分析中发现了一个深坑,先说下现有的配置:rsyslog的配置如下,监控固定的文件:local6.*......
  • Tomcat日志大
    #LicensedtotheApacheSoftwareFoundation(ASF)underoneormore#contributorlicenseagreements.SeetheNOTICEfiledistributedwith#thisworkforadditionalinformationregardingcopyrightownership.#TheASFlicensesthisfiletoYouundertheA......
  • JDBC学习日志五,JDBC操作事务
    事务:要么成功,要么失败ACID原则原子性:要么全部完成,要么都不完成一致性:最终的结果总数据不发生改变隔离性:多个进程互不干扰持久性:数据一旦提交不可逆,持久化到数据库模拟转账事务//模拟转账publicclassTransferDemo{publicstaticvoidmain(String[]args)th......
  • ElasticSearch 8.x 实战
    ElasticSearch8.x实战Github地址:ElasticSearch仿京东搜索项目实现爬虫爬取数据:获取请求返回的页面信息,筛选出我们想要的数据就可以了,直接使用jsoup包pom.xml导入依赖<!--解析网页--><!--https://mvnrepository.com/artifact/org.jsoup/jsoup--><dependency>......
  • Java日志体系
    转载:https://juejin.cn/post/6905026199722917902前言对于一个应用程序来说日志记录是必不可少的一部分。线上问题追踪,基于日志的业务逻辑统计分析等都离不日志。java领域存在多种日志框架,目前常用的日志框架包括Log4j1,Log4j2,CommonsLogging,Slf4j,Logback,Jul。但是在我们的......