如何优雅的将Laravel日志推到Kafka?

Laravel Kafka Logger#

使用扩展包 laravel-kafka-logger 将 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
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 3

在什么情况下才需要使用到 kafka 来做日志存储 :neutral_face:

4年前 评论

@cheer 一是便于集中收集日志,不必每台机器装个客户端收集日志;二是 Kafka 是异步写入,性能更高。

4年前 评论

怎么访问 kibana

1年前 评论