簡體   English   中英

如何讓php api以二進制格式登錄kafka

[英]How to get php api logs into kafka in binary format

假設我們有一個在 apache 網絡服務器下運行的 PHP api。 我想問一下如何以結構化格式將日志從 PHP 放入 kafka(假設是 avro 或 protobuf,因為它會傳輸特定的業務合同,而不僅僅是純 apache 日志)。 Php 不屬於我的領域或專業知識,所以它可能很愚蠢,但解決方案可能只是從 php 本身向 kafka 發送消息。 但是考慮到它在網絡服務器下運行,它很可能必須為每次調用都創建與 kafka 的連接。 另一種可能的解決方案是登錄到文件,然后使用類似 filebeat 的東西將日志放入 kafka。 但我不確定如果我們使用(正如我已經提到的)結構化格式,它會如何工作。 我懷疑 filebeat 是否能夠讀取該二進制日志文件。 請讓我知道是否可以。 所以我的問題是 - 以嚴格和可擴展的方式將特定於 php 的日志輸入 kafka 的最佳方法是什么? 提前致謝。

Filebeat 不會讀取二進制日志。 它將用於在發送到 Kafka 之前將您的純文本消息解析為某種更結構化/二進制格式(不過,我不確定 Filebeat 的 Kafka 序列化是否可插入)

另一方面,是的,您可以嘗試一個 php-librdkafka 庫,但正如您所說 - 它需要與 Kafka 的一些持久連接,與具有“兩次提交”類型的系統相比,每個文件中都有文件文件的行跟蹤進度並且可以承受由於 Kafka 連接錯誤導致的進程重新啟動,例如

Fluentbit 或 rsyslog 或(理想情況下,如果您是真正的日志處理)Splunk 轉發器也可以工作...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM