aviationcode/laravel-ecs-logging

将Laravel日志记录到Elasticsearch ECS格式。

v2.0.0 2021-10-01 10:17 UTC

This package is auto-updated.

Last update: 2024-08-29 05:01:02 UTC


README

Latest Version on Packagist Build Status Total Downloads

此包为laravel应用添加ECS(Elastic Common Scheme)格式,允许将标准日志记录到Elasticsearch。

安装

您可以通过composer安装此包

composer require aviationcode/laravel-ecs-logging

建议使用jenssegers/agent,这将添加用户代理日志支持。

composer require jenssegers/agent

可选地,您可以使用以下命令发布配置文件:

php artisan vendor:publish --provider="AviationCode\EcsLogging\EcsLoggingServiceProvider" --tag="config"

config/logging.php中注册日志驱动器

return [
    'channels' => [
        // ... Other channels

        'ecs' => [
            'driver' => 'ecs',
            'path' => storage_path('logs/ecs/laravel.json'),
            'level' => 'debug',
            'days' => 14,
        ],
    ]
];

如果您想将此驱动程序作为唯一的日志方法,请在.env中定义LOG_CHANNEL=ecs或在堆栈驱动器中添加ecs通道。

所有Log::xxx()调用都将记录到JSON文件中。该文件可以被filebeat抓取,然后发送到您的logstash或Elasticsearch实例。

配置filebeat

将以下内容添加到您的/etc/filebeat/filebeat.yml文件中

filebeat.inputs:
  - type: log
    enabled: true
    paths:
      - /path-to-your-laravel-app/storage/logs/ecs/*.json
    json:
      message_key: message
      keys_under_root: true
      overwrite_keys: true

用法

事件

事件定义了发生了什么,这可能是某个时间点或持续一定时间。为了记录事件,您可以添加此日志上下文。

Log::info('Password changed for John Doe<john.doe@example.com>', [
    'event' => [
        'action' => 'user-password-change',
        'code' => 4648,
        'outcome' => \AviationCode\EcsLogging\Types\Event::OUTCOME_SUCCESS,
        'type' => 'user',
    ],
]);

测试

composer test

更新日志

请参阅更新日志以获取有关最近更改的更多信息。

贡献

有关详细信息,请参阅贡献

安全

如果您发现任何与安全相关的问题,请通过电子邮件ken.andries.1992@gmail.com报告,而不是使用问题跟踪器。

鸣谢

许可

MIT许可(MIT)。请参阅许可文件以获取更多信息。