【问题标题】:How to get php api logs into kafka in binary format如何将php api日志以二进制格式写入kafka
【发布时间】:2021-10-22 11:25:55
【问题描述】:

假设我们有一个在 apache 网络服务器下运行的 PHP api。我想问一下如何以结构化格式将日志从 PHP 放入 kafka(比如说 avro 或 protobuf,因为它会传输特定的业务合同,而不仅仅是纯粹的 apache 日志)。 PHP 不在我的领域或专业知识范围内,所以它可能很愚蠢,但解决方案可能只是从 php 本身向 kafka 发送消息。但鉴于它很可能在网络服务器下运行,它很可能必须为每次调用创建与 kafka 的连接。 另一种可能的解决方案是记录到文件,然后使用类似 filebeat 的东西将日志放入 kafka。但我不确定如果我们使用我已经提到的结构化格式,它将如何工作。我怀疑 filebeat 是否能够读取该二进制日志文件。请让我知道是否可以。 所以我的问题是-以严格且可扩展的方式将特定于 php 的日志放入 kafka 的最佳方法是什么? 提前致谢。

【问题讨论】:

    标签: php logging apache-kafka


    【解决方案1】:

    Filebeat 不会读取二进制日志。它将用于在发送到 Kafka 之前将您的纯文本消息解析为更结构化/二进制格式(不过,我不确定 Filebeat 的 Kafka 序列化是可插入的)

    另一方面,是的,您可以尝试使用 php-librdkafka 库,但正如您所说 - 与具有文件的“两次提交”系统类型相比,它需要与 Kafka 的持久连接因为文件的每一行都会跟踪进度,并且可以承受由于 Kafka 连接错误而导致的进程重启,例如

    Fluentbit 或 rsyslog 或(理想情况下,如果您是真正的日志处理)Splunk 转发器也可以工作......

    【讨论】:

      猜你喜欢
      • 2017-09-21
      • 1970-01-01
      • 1970-01-01
      • 2017-01-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多