【问题标题】:How to send logs from Google Stackdriver to Kafka如何将日志从 Google Stackdriver 发送到 Kafka
【发布时间】:2021-05-05 15:05:05
【问题描述】:

我看到许多关于如何将日志发送到 Stackdriver 的文档和帖子,但几乎没有关于如何执行相反操作的信息 - 将日志 Stackdriver 发送到 Kafka。

在我的例子中,我们的 Ops 希望使用 Google 的 stackdriver 代理从我们的 Web 服务器收集日志并将它们推送到 stackdriver ...但是,为了我的流处理需求,我希望将日志导入 Kafka 以使用它无与伦比的能力由任意数量的消费者保留和重新处理数据,这是我无法使用 PubSub 完成的。

那么,这样做有哪些选择?我只看到了几种可能的途径 - 听起来都不太好:

  1. 基于这篇文章:(https://powerspace.tech/how-to-stream-data-from-google-pubsub-to-kafka-with-kafka-connect-dbef1c340a76) 首先将数据推送到 PubSub,然后使用 Kafka 连接器从中读取数据或编写我自己的 Kafka 消费者。我讨厌在数据源和 Kafka 之间添加另一个跃点(序列化/反序列化/ack/等)....
  2. 我注意到这里有一个简短的提及,即向 Google 的 Fluentd 版本(这是 stackdriver 日志收集代理所基于的)添加一个插件:https://powerspace.tech/how-to-stream-data-from-google-pubsub-to-kafka-with-kafka-connect-dbef1c340a76。细节不多 - 很难说这种方法有多复杂......

还有其他选择吗?

谢谢!

【问题讨论】:

    标签: apache-kafka google-cloud-stackdriver


    【解决方案1】:

    进入Kafka控制台并在控制台中添加某些元素。在 Kafka 控制台中添加元素后,您需要检查这些元素是否已成功反映在云 shell 中。为此,您将运行命令 > $ gcloud pubsub subscriptions pull from-kafka — auto-ack — limit=10

    ***图片1

    现在您将验证完全相反的过程,您将在 Kafka 虚拟机中运行命令并在 Cloud Shell 中查看输出。反映输出需要一些时间,您可能需要运行命令 > $ gcloud pubsub subscriptions pull from-kafka — auto-ack — limit=10

    ***图片2

    【讨论】:

    • 感谢您提供的信息,但我不确定我是否理解......“在控制台中添加某些元素”是什么意思?我也不明白我如何将 PubSub 主题连接到 Kafka 主题 - 看起来你展示的是相反的,将 Kafka 读入 PubSub?对不起,我不清楚你在描述什么......
    【解决方案2】:

    Kafka 插件已弃用。更多信息请参考https://cloud.google.com/stackdriver/docs/deprecations

    注意:此功能仅适用于在 Linux 上运行的代理。它在 Windows 上不可用。

    Kafka 通过 JMX 进行监控。监控支持监控 Kafka 0.8.2 及更高版本。

    在您的 VM 实例上,从 GitHub 配置库下载 kafka-082.conf 并将其放置在目录 /etc/stackdriver/collectd.d/ 中:

    (cd /etc/stackdriver/collectd.d/ && sudo curl -O https://raw.githubusercontent.com/Stackdriver/stackdriver-agent-service-configs/master/etc/collectd.d/kafka-082.conf)

    下载的插件配置文件假定您的 Kafka 服务器配置为接受端口 9999 上的 JMX 连接。如果您已将 Kafka 配置为不同的 JMX 端口,请以 root 身份编辑文件并按照说明更改 JMX 端口设置.

    添加配置文件后,运行以下命令重启监控代理:

    sudo service stackdriver-agent 重启

    监控内容: https://cloud.google.com/monitoring/api/metrics_agent#agent-kafka

    【讨论】:

    • 我的问题不是关于如何监控 Kafka .... 我需要将数据从 stackdriver 发送到 Kafka
    • @marina 你有没有想过如何从谷歌云日志中获取数据到 kafka?谢谢
    • @SirVon 不幸的是,没有。而且我看起来越多,似乎只有谷歌服务与他们的云存储很好地集成在一起,比如 PubSub 或 Dataflow。要连接到其他任何东西,比如卡夫卡,你必须跳过其中任何一个。出于这个原因,我几乎说服我们的开发人员将日志从 Web 服务器直接发送到 Kafka(通过任何托运框架,如 Flume 或 FluentD 或 Bits),而不是发送到 Google stackdriver :)
    猜你喜欢
    • 2019-10-26
    • 2019-04-13
    • 1970-01-01
    • 2020-06-02
    • 2018-06-07
    • 2019-12-08
    • 1970-01-01
    • 2019-02-28
    • 1970-01-01
    相关资源
    最近更新 更多