Filebeat
文章平均质量分 69
店伙计
这个作者很懒,什么都没留下…
展开
-
Filebeat 输出日志时添加客户端 IP 地址(引用变量)
使用 filebeat 收集日志时,默认会添加一个 host.name 字段来标识主机,但是在主机名不是 IP 地址的情况下,这个字段不能很方便的针对 IP 地址进行筛选,所以需要在收集日志时,添加一个显示 IP 地址的字段。添加字段可以使用 fields 模块,在这个模块下可以自定义字段,支持array ,数组等格式,也可以调用系统的环境变量:filebeat.inputs:- type: log paths: - /opt/test.log scan_frequency: 10s原创 2021-03-10 10:55:15 · 11110 阅读 · 0 评论 -
Filebeat 将多个日志输出到不同的 Kafka Topic
平时在物理机上使用 Filebeat 收集日志并输出到 Kafka 中时,会编写多个 filebeat 配置文件然后启动多个 filebeat 进程来收集不同路径下的日志并推送到不同的 Topic。那么如果将所有的日志路径都写到一个 filebeat 配置文件中,那么就需要根据不同的日志来设置 Topic 了。其实 logstash 也可以实现这个功能。但是此处只演示在 Filebeat 上实现。步骤和讲解如下:例如现在有如下三个日志文件,需要输出到不同的 Topic:access.log --原创 2021-03-03 17:15:21 · 12327 阅读 · 4 评论 -
使用 Filebeat 对多行日志进行处理(multiline)
Filebeat 收集日志的过程中,默认是按行收取的,也就是每一行都会默认是一个单独的事件并添加时间戳。但是在收集一些特殊日志的时候,往往一个事件包含有多行,例如 Java 的堆栈跟踪日志:20-09-25 09:09:01.866 ERROR - {"traceId":"","where":{"methodName":"doFilter","className":"com.sohu.smc.channel.news.filter.ResponseTimeFilter","lineNumber":47},原创 2020-11-09 10:36:26 · 11790 阅读 · 0 评论 -
K8S 使用 SideCar 模式部署 Filebeat 收集容器日志
对于 K8S 内的容器日志收集,业内一般有两种常用的方式:使用 DaemonSet 在每台 Node 上部署一个日志收集容器,用于收集当前 Node 上所有容器挂载到宿主机目录下的日志使用 SideCar 模式将日志收集容器与业务容器部署在同一个 Pod 中,只收集对应容器的日志这两种方式各有优缺点。使用 DaemonSet 方式部署日志收集服务,管理起来简单,但是如果一个 Node 中运行了过多的 Pod,那么日志收集会存在性能瓶颈。使用 SideCar 模式可以更有针对性的收集容器的日志,但是原创 2020-11-06 17:19:55 · 8578 阅读 · 2 评论 -
ES & Filebeat 使用 Pipeline 处理日志中的 @timestamp
使用 Pipeline 处理日志中的 @timestampFilebeat 收集的日志发送到 ElasticSearch 后,会默认添加一个 @timestamp 字段作为时间戳用于检索,而日志中的信息会全部添加到 message 字段中,但是这个时间是 Filebeat 采集日志的时间,不是日志生成的实际时间,所以为了便于检索日志,需要将 @timestamp 替换为 message 字段中的时间。这里使用的是 elasticseatch 提供的 pipeline 来进行替换。首先日志格式如下:20原创 2020-11-06 17:15:18 · 8374 阅读 · 0 评论 -
Filebeat 根据不同的日志设置不同的索引
平时在物理机上使用 Filebeat 收集日志时,会编写多个 filebeat 配置文件然后启动多个 filebeat 进程来收集不同路径下的日志并设置相对应的索引。那么如果将所有的日志路径都写到一个 filebeat 配置文件中,那么就需要根据不同的日志来设置索引了。其实 logstash 也可以实现这个功能。但是此处只演示在 Filebeat 上实现。步骤和讲解如下:例如现在有如下三个日志文件,需要输出到不同的索引:access.log ----> 索引:web-nginx-acc原创 2020-11-06 17:10:16 · 7915 阅读 · 0 评论