tasmidur/kafka-monolog-handler

Kafka Monolog Handler 是用于将 Laravel 日志推送到 Kafka 消息代理的组件

v1.1.1 2022-09-11 11:01 UTC

This package is auto-updated.

Last update: 2024-09-25 15:33:10 UTC


README

"kafka-monolog-handler" 包是 Laravel 框架的一个包。该包允许您使用 Monolog,一个流行的 PHP 日志库,将 Laravel 应用程序的日志消息发送到 Kafka 服务器。

该包提供了一个处理程序,用于将日志消息发送到 Kafka 主题。该包还包括一个配置文件,您可以在其中指定 Kafka 服务器的主机和端口,以及应发送日志消息的主题。

要求

此包还要求安装 rdkafka php 扩展,您可以通过以下文档进行安装

安装

安装 kafka-monolog-handler

composer require tasmidur/kafka-monolog-handler

入门

1.修改 config/logging.php

无 Kafka SASL 配置

return [
    'channels' => [
        // ...
       'kafka' => \Tasmidur\KafkaMonologHandler\KafkaLogger::getInstance(
            topicName: env('KAFKA_LOG_FILE_TOPIC', 'laravel_logs'),
            brokers: env('KAFKA_LOG_BROKERS')
        ),
    ],
];

带有 Kafka SASL 配置和类似 ElasticsearchFormatter 的日志格式化器

return [
    'channels' => [
        // ...
       'kafka' => \Tasmidur\KafkaLogger\KafkaLogger::getInstance(
            topicName: env('KAFKA_LOG_FILE_TOPIC', 'system_logs'),
            brokers: env('KAFKA_BROKERS'),
            options: [
                'is_sasl_apply' => env('IS_SASL_APPLY'), //true = applied or false= not apply
                'sasl_config' => [
                    'username' => env('KAFKA_BROKER_USERNAME'),
                    'password' => env('KAFKA_BROKER_PASSWORD'),
                    'mechanisms' => env('KAFKA_BROKER_MECHANISMS'),
                    'security_protocol' => env('KAFKA_BROKER_SECURITY_PROTOCOL')
                ],
                'formatter' => new ElasticsearchFormatter(
                    index: env('KAFKA_LOG_FILE_TOPIC', 'laravel_logs'),
                    type: "_doc")
            ]
        ),
    ],
];

2.修改 .env

LOG_CHANNEL=kafka
KAFKA_BROKERS=kafka:9092,kafka:9093
KAFKA_LOG_FILE_TOPIC=laravel-logs

IS_SASL_APPLY=false
KAFKA_BROKER_USERNAME=username
KAFKA_BROKER_PASSWORD=password
KAFKA_BROKER_MECHANISMS=SCRAM-SHA-512
KAFKA_BROKER_SECURITY_PROTOCOL=SASL_SSL

许可证

MIT