如何把 Laravel 的日誌推到Kafka?

好好先森V5 發表於 2020-08-09

將 Laravel 日誌推到 Kafka 後,再由 ELK 消費、儲存、呈現。

要求

依賴 要求
php-rdkafka >=4.0.0

依賴安裝

1.安裝 rdkafka

git clone --depth 1 https://github.com/edenhill/librdkafka.git /tmp/librdkafka && cd /tmp/librdkafka && ./configure && make -j$(nproc) && make install && rm -rf /tmp/librdkafka
pecl install rdkafka

2.安裝 laravel-kafka-logger

# Laravel 5.x
composer require "hhxsv5/laravel-kafka-logger:~1.0.0"
# Laravel 6.x & 7.x
composer require "hhxsv5/laravel-kafka-logger:~2.0.0"

開始使用

1.修改配置檔案 config/logging.php

return [
    'channels' => [
        // ...
        'kafka' => Hhxsv5\LKL\KafkaLogger::getDefinition(['topic' => env('LOG_KAFKA_TOPIC', 'laravel-logs')]),
    ],
];

2.修改 .env

LOG_CHANNEL=kafka
LOG_KAFKA_BROKER_LIST=kafka:9092
LOG_KAFKA_TOPIC=laravel-logs

3.好了,開始記日誌

Log::info('使用者登入', ['uid-hhxsv5']);
本作品採用《CC 協議》,轉載必須註明作者和本文連結

hhxsv5