3

我正在使用 Laravel 将我的日志发送到 Logstash,并且我想在 Kibana 中显示它们。这是我所做的:

logging.php

   'logstash' => [
        'driver' => 'custom',
        'via'    => \App\LogstashLogger::class,
        'host'   => env('LOGSTASH_HOST', '127.0.0.1'),
        'port'   => env('LOGSTASH_PORT', 9200),
    ],

LogstashLogger课堂上:

<?php
/**
 * Created by PhpStorm.
 * User: farshad
 * Date: 8/5/19
 * Time: 1:19 PM
 */

namespace App;

use Monolog\Formatter\LogstashFormatter;
use Monolog\Handler\SocketHandler;
use Monolog\Logger;
use Psr\Log\LoggerInterface;
class LogstashLogger {
    /**
     * @param array $config
     * @return LoggerInterface
     */
    public function __invoke(array $config): LoggerInterface
    {
        $handler = new SocketHandler("udp://{$config['host']}:{$config['port']}");
        $handler->setFormatter(new LogstashFormatter(config('app.name')));
        return new Logger('logstash.main', [$handler]);
    }
}

当我运行这个命令时,在修补程序中:

>>> Log::channel('logstash')->info('Hello logstash!');

我的日志中没有任何错误,我得到空值。这应该意味着数据已成功发送到 Logstash。我现在如何从 Logstash 获取数据并在 Kibana 中显示?当我想创建一个索引模式时,它不会接受任何名称。我不知道如何检查我是否在 Logstash 中收到了数据,或者如何在 Kibana 中显示它。

4

0 回答 0