我正在使用Serilog Elasticsearch Sink将日志记录信息发送到Elastic Cloud实例。我的部署有4个独立的应用程序,都发送日志信息。我希望能够根据创建它们的应用程序轻松过滤Kibana中的日志消息。实现这一目标的最佳方法是什么?
以下是可能有用的步骤: - 1.登录Kibana。 2.在顶部你可以找到“添加过滤器+”选项。点击它。 3.选择“过滤器”选项作为“源名称”4.选择“操作员”为“是”(根据您的要求从下拉列表中)5。在“值”字段中输入您的应用程序名称并保存。
这样您就可以根据您的应用程序进行过滤。还有其他选项可供您根据您的要求使用。
我找到了解决问题的方法。核心问题是Serilog接收器的配置没有提供允许我在Elastic中过滤的任何上下文。我能够使用Serilog内置的enrichment properties添加字段。
在我的情况下,我设置了通过json配置文件的日志记录,因此我能够将以下内容添加到appsettings.json中的Serilog配置:
"Serilog": {
"Enrich": [ "FromLogContext" ],
"Properties": {
"ApplicationName": "application-name",
"Environment" : "development"
}
然后我可以通过fields.Application或fields.Environment过滤Kibana中的对象,以查看不同的应用程序日志。