前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >掌握这些Filebeat配置技巧,让你成为日志收集领域的大咖

掌握这些Filebeat配置技巧,让你成为日志收集领域的大咖

作者头像
趣学程序-shaofeer
发布2023-09-09 08:42:55
4590
发布2023-09-09 08:42:55
举报
文章被收录于专栏:upuptop的专栏upuptop的专栏
接上文,我们一起学习了Filebeat的快速入门安装,接下来我们一起来学习一下如何配置Filebeat呢?快速学习FileBeat的配置项目。

FIleBeat配置

output

目前 beat 可以发送数据给 Elasticsearch、Logstash、File、Kafka、Redis 和 Console 六种目的地址。

Elasticsearch

beats 发送到 Elasticsearch 也是走 HTTP 接口。示例配置段如下:

代码语言:javascript
复制
output:
    elasticsearch:
        hosts: ["http://localhost:9200", "https://onesslip:9200/path", "anotherip"]
        parameters: {pipeline: my_pipeline_id}                         # 仅用于 Elasticsearch 5.0 以后的 ingest 方式
        username: "user"
        password: "pwd"
        index: "topbeat"
        bulk_max_size: 
        flush_interval: 
        tls:
            certificate_authorities: ["/etc/pki/root/ca.pem"]
            certificate: "/etc/pki/client/cert.pem"
            certificatekey: "/etc/pki/client/cert.key"

hosts 中可以通过 URL 的不同形式,来表示 HTTP 还是 HTTPS,是否有添加代理层的 URL 路径等情况。 index 表示写入 Elasticsearch 时索引的前缀,比如示例即表示索引名为 topbeat-yyyy.MM.dd

Logstash

beat 写入 Logstash 时,会配合 Logstash-1.5 后新增的 metadata 特性。将 beat 名和 type 名记录在 metadata 里。所以对应的 Logstash 配置应该是这样:

代码语言:javascript
复制
input {
    beats {
        port => 
    }
}
output {
    elasticsearch {
        hosts => ["http://localhost:9200"]
        index => "%{[@metadata][beat]}-%{+YYYY.MM.dd}"
        document_type => "%{[@metadata][type]}"
    }
}

beat 示例配置段如下:

代码语言:javascript
复制
output:
    logstash:
        hosts: ["localhost:5044", "localhost:5045"]
        worker: 
        loadbalance: true
        index: topbeat

这里 worker 的含义,是 beat 连到每个 host 的线程数。在loadbalance开启的情况下,意味着有 4 个worker 轮训发送数据。

File

代码语言:javascript
复制
output:
    file:
        path: "/tmp/topbeat"
        filename: topbeat
        rotate_every_kb: 
        number_of_files: 
        

Kafka

代码语言:javascript
复制
output:
    kafka:
        hosts: ["kafka1:9092", "kafka2:9092", "kafka3:9092"]
        topic: '%{[type]}'
        topics:
            - key: "info_list"
              when:
                  contains:
                      message: "INFO"
            - key: "debug_list"
              when:
                  contains:
                      message: "DEBUG"
            - key: "%{[type]}"
              mapping:
                  "http": "frontend_list"
                  "nginx": "frontend_list"
                  "mysql": "backend_list"
        partition:
            round_robin:
                reachable_only: true
        required_acks: 
        compression: gzip
        max_message_bytes: 

大于 max_message_bytes 长度的事件(注意不只是原日志长度)会被直接丢弃。 partition 策略默认为 hash。可选项还有 randomround_robin compression 可选项还有 nonesnappyrequired_acks 可选项有 -1、0 和 1。分别代表:等待全部副本完成、不等待、等待本地完成。 topics 用来配置基于匹配规则的选择器,支持 whenmappingwhen 条件下可以使用上小节列出的各种 filter。如果都匹配不上,则采用 topic 配置。

Redis

代码语言:javascript
复制
output:
    redis:
        hosts: ["localhost"]
        password: "my_password"
        key: "filebeat"
        db: 
        timeout: 
        

Redis 输出也有 keys 配置。方式和 Kafka 的 topics 类似。

Console

代码语言:javascript
复制
output:
    console:
        pretty: true

shipper

shipper 部分是一些和网络拓扑相关的配置,就目前来说,大多数是 packetbeat 独有的。

代码语言:javascript
复制
shipper:
    name: "my-shipper"
    tags: ["my-service", "hardware", "test"]
    ignore_outgoing: true
    refresh_topology_freq: 
    topology_expire: 
    geoip:
        paths:
            - "/usr/share/GeoIP/GeoLiteCity.dat"

logging

代码语言:javascript
复制
logging:
    level: warning
    to_files: true
    to_syslog: false
    files:
        path: /var/log/mybeat
        name: mybeat.log
        keepfiles: 

run options

代码语言:javascript
复制
runoptions:
    uid=
    gid=
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-06-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 趣学程序 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • FIleBeat配置
    • output
      • Elasticsearch
      • Logstash
      • File
      • Kafka
      • Redis
      • Console
      • shipper
      • logging
      • run options
相关产品与服务
云数据库 Redis
腾讯云数据库 Redis(TencentDB for Redis)是腾讯云打造的兼容 Redis 协议的缓存和存储服务。丰富的数据结构能帮助您完成不同类型的业务场景开发。支持主从热备,提供自动容灾切换、数据备份、故障迁移、实例监控、在线扩容、数据回档等全套的数据库服务。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档