在logstash中插入laravel日志



我在laravel中搜索使用logstash的日志教程,发现它是这样的:

首先创建一个logstashLogger类:

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]);
}
}

然后我将logstash添加到logging.php:中的通道

'logstash' => [
'driver' => 'custom',
'via'    => AppLogstashLogger::class,
'host'   => env('LOGSTASH_HOST', '127.0.0.1'),
'port'   => env('LOGSTASH_PORT', 4718),
],

我终于这样登录了:

Log::channel('logstash')->debug('Logging to logstash');

问题是我在哪里可以看到日志,索引是什么?这让感到困惑

logstash.conf:

input {
beats {
port => 5044
}
}
output {
elasticsearch {
hosts => ["http://localhost:9200"]
index => "%{[@metadata][beat]}-%{[@metadata][version]}-%{+YYYY.MM.dd}"
#user => "elastic"
#password => "changeme"
}
}

您的logstash配置在端口5044上只有beats输入,但您的应用程序配置为使用端口4718上的UDP发送日志。

您需要在该端口上侦听UDP输入,还需要在弹性搜索输出中指定索引名。

从应用程序中侦听日志并将其发送到弹性搜索的配置如下:

input {
udp {
port => 4718
}
}
output {
elasticsearch {
hosts => ["http://localhost:9200"]
index => "index-name-for-your-logs-%{+YYYY.MM.dd}"
}
}

最新更新