filebeat 支持多重星号目录

本文介绍了一种使用特定模式来抓取预定义子目录级别下所有日志文件的方法。例如,通过使用 /var/log/*/*.log 这一模式可以抓取位于 /var/log 目录下一级子目录中的所有 .log 文件。
是的,**Filebeat 从7.0版本开始原生支持HTTP协议(`output.http`)**,可以直接将日志通过HTTP/HTTPS发送到支持HTTP接收的服务(如Logstash、Fluentd或自定义API)。以下是详细配置方法和注意事项: --- ### **1. Filebeat 配置(HTTP输出)** 修改 `filebeat.yml` 的 `output` 部分: ```yaml output.http: enabled: true hosts: ["http://logstash-host:8080"] # 接收端HTTP地址 protocol: "http" # 或 "https" headers: Content-Type: "application/json" # 必须指定Content-Type json: message: "{{ toJson . }}" # 将日志转为JSON格式 # 可选高级配置 compression_level: 5 # Gzip压缩级别(0-9) timeout: 30 # 请求超时时间(秒) ssl: enabled: false # 启用HTTPS时设为true certificate_authorities: ["/path/to/ca.crt"] ``` --- ### **2. 接收端配置示例** #### **场景1:Logstash HTTP输入** ```ruby input { http { port => 8080 codec => "json" # 自动解析JSON Body } } ``` #### **场景2:直接发送到Elasticsearch HTTP API** ```yaml output.http: hosts: ["http://es-host:9200/_bulk"] # ES的Bulk API headers: Content-Type: "application/x-ndjson" # ES要求NDJSON格式 bulk_max_size: 50 # 每批日志条数 ``` --- ### **3. 关键注意事项** 1. **认证支持**: - **Basic Auth**:在`headers`中添加`Authorization`头: ```yaml headers: Authorization: "Basic ${BASE64_ENCODED_CREDENTIALS}" ``` - **Bearer Token**: ```yaml headers: Authorization: "Bearer ${TOKEN}" ``` 2. **重试机制**: ```yaml output.http: max_retries: 5 # 失败重试次数 backoff.init: 1s # 初始重试间隔 backoff.max: 60s # 最大重试间隔 ``` 3. **性能调优**: - 调整 `bulk_max_size`(默认50)和 `timeout`(默认30秒) - 启用Gzip压缩(`compression_level`)减少带宽占用 --- ### **4. 调试方法** - **测试HTTP连通性**: ```bash curl -XPOST http://logstash-host:8080 -H "Content-Type: application/json" -d '{"test":"data"}' ``` - **查看Filebeat日志**: ```bash journalctl -u filebeat --no-pager -f # Linux Get-Content -Path "C:\ProgramData\Filebeat\logs\filebeat" -Wait # Windows ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值