You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过SAS Token将Filebeat日志输出至Azure Event Hub?

可行方案:用SAS Token将Filebeat日志发送到Azure Event Hub

有两种可靠的方案可以实现需求,无需依赖Kafka输出:

方案1:使用官方azureeventhub输出插件(推荐)

Elastic官方为Filebeat提供了专门的Azure Event Hub输出模块,原生支持SAS Token或连接字符串认证,适配性和稳定性更好,无需手动处理HTTP请求细节。

配置示例

在filebeat.yml中添加以下配置:

output.azureeventhub:
  # 方式1:使用包含SAS信息的连接字符串(更便捷)
  connection_string: "Endpoint=sb://<你的命名空间>.servicebus.windows.net/;SharedAccessKeyName=<共享访问策略名>;SharedAccessKey=<密钥>;EntityPath=<Event Hub名称>"

  # 方式2:直接指定SAS Token(适合动态生成Token的场景)
  # namespace: "<你的命名空间>.servicebus.windows.net"
  # eventhub: "<Event Hub名称>"
  # sas_token: "SharedAccessSignature sr=<你的命名空间>.servicebus.windows.net&sig=<签名>&se=<过期时间戳>&skn=<共享访问策略名>"

  # 可选:调整批量发送参数
  bulk_max_size: 200
  flush_interval: 5s

方案2:使用Filebeat的HTTP输出模块自定义对接

如果需要更灵活的控制,可以直接用Filebeat的HTTP输出调用Azure Event Hub的REST API,通过请求头传入SAS Token完成认证。

配置示例

output.http:
  hosts: ["https://<你的命名空间>.servicebus.windows.net/<Event Hub名称>/messages"]
  headers:
    Authorization: "SharedAccessSignature sr=<你的命名空间>.servicebus.windows.net&sig=<签名>&se=<过期时间戳>&skn=<共享访问策略名>"
    Content-Type: "application/json"
  # 可选:批量发送配置
  bulk_max_size: 100
  flush_interval: 3s
  # 可选:开启重试机制
  retry_on_failure:
    enabled: true
    max_retries: 5

注意事项

  • SAS Token需正确生成,确保sr、sig、se、skn参数格式无误,有效期要覆盖Filebeat的运行周期;若Token需要动态刷新,可以通过脚本定期更新filebeat.yml并重启Filebeat,或使用环境变量注入Token。
  • 确保Filebeat所在主机有网络权限访问Azure Event Hub的公共端点(端口443)。
  • 使用HTTP输出时,需保证消息格式符合Event Hub REST API的要求,比如JSON格式需正确序列化。

内容的提问来源于stack exchange,提问作者kakashi96

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 21:12:44