tasmidur / kafka-monolog-handler
Kafka Monolog Handler 是用于将 Laravel 日志推送到 Kafka 消息代理的组件
v1.1.1
2022-09-11 11:01 UTC
Requires
- php: ^8.0
- illuminate/config: ^8.0|^9.0
- illuminate/support: ^8.0|^9.0
- mateusjunges/laravel-kafka: ^1.8
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 扩展,您可以通过以下文档进行安装
安装
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