linkprofit-cpa/kibana-formatter

Kibana 日志消息格式化工具

0.4.2 2019-03-07 08:07 UTC

README

Latest Stable Version License Conventional Commits Semantic Versioning

异常情况的 Kibana 日志消息

默认情况下,在 GelfMessageFormatter 格式化后,Kibana JSON 视图中的异常跟踪看起来像字符串。此软件包将跟踪格式化为易于阅读的 JSON。

安装

  1. 安装 kibana-formatter

    composer require linkprofit-cpa/kibana-formatter:^0.4
  2. 定义环境变量

    • APPLICATION_CODE
    • APPLICATION_VERSION
    • KIBANA_HOST
    • KIBANA_PORT
  3. 用于 Logger 初始化的片段

    $connect = new GelfHandler(
       new Publisher(
           new UdpTransport(
               getenv('KIBANA_HOST'),
               getenv('KIBANA_PORT')
           ),
           new KibanaMessageValidator
       )
    );
    
    $connect->pushProcessor(new PsrLogMessageProcessor);
    $connect->setFormatter(
        new KibanaMessageFormatter(
            new KibanaMessage(
                getenv('APPLICATION_CODE'),
                getenv('APPLICATION_VERSION')
            )
        )
    );
    
    $logger = new Logger('app', [$connect]);

Symfony 4+ 安装

  1. 安装日志记录器
    composer require logger
  2. 安装 kibana-formatter
    composer require linkprofit-cpa/kibana-formatter:^0.4
  3. APPLICATION_CODEAPPLICATION_VERSION 变量添加到 .env.dist.env
  4. 编辑 config/packages/prod/monolog.yaml
    monolog:
        handlers:
            graylog:
                type: gelf
                publisher:
                    id: gelf.kibana.publisher
                level: notice
                bubble: true
                formatter: Linkprofit\KibanaFormatter\KibanaMessageFormatter
    推荐的生产环境和测试环境的日志级别为 notice。对于开发环境 - debug
  5. 编辑 config/services.yaml
    services:
        ...
        Linkprofit\KibanaFormatter\KibanaMessage:
            arguments:
                - '%env(APPLICATION_CODE)%'
                - '%env(APPLICATION_VERSION)%'
    
        Linkprofit\KibanaFormatter\KibanaMessageValidator:
    
        Linkprofit\KibanaFormatter\KibanaMessageFormatter:
            class: Linkprofit\KibanaFormatter\KibanaMessageFormatter
            arguments:
                - '@Linkprofit\KibanaFormatter\KibanaMessage'
    
        gelf.kibana.publisher:
            class: Gelf\Publisher
            arguments:
                - '@gelf.kibana.transport'
                - '@Linkprofit\KibanaFormatter\KibanaMessageValidator'
    
        gelf.kibana.transport:
            class: Gelf\Transport\UdpTransport
            arguments: [elastic.lthost.net, 12201, 1420]

版本控制

此软件遵循 "语义版本控制" 规范。所有声明为公共 API 的函数签名。

有关 SemVer.org 的更多信息,请参阅 SemVer.org