哪个Serilog下沉用于发送到Logstash?

时间:2014-08-13 10:25:06

标签: logging elasticsearch logstash serilog

我们开始将Serilog与Elasticsearch结合使用,它是一种非常有效的方式来存储结构日志数据(以后使用像Kibana这样的工具可视化它们)。但是,我看到了不直接将日志数据写入后端的优势,而是配置了一个日志代理,例如Logstash,它可以负责为日志消息添加标签,选择索引等。使用此设置,应用程序不需要了解日志数据分布。

Logstash位于中间,问题是Serilog接收器最好使用,因此Logstash可以导入其数据,而无需应用高级和CPU密集型过滤器。我已经看到Redis被提到是Logstash的好伙伴,但是Serilog并没有Redis接收器。对于Serilog接收的任何建议哪些数据可以通过Logstash轻松传输到Elasticsearch索引?

甚至有一种方法可以先使用Elasticsearch sink,然后在进行一些安排并应用额外的标签后再将其环回到Elasticsearch。

4 个答案:

答案 0 :(得分:33)

接受的答案是在汇Serilog.Sinks.Http存在之前写的。

可以让HTTP接收器将日志事件发送到Filebeat,而不是记录到文件并让Logstash HTTP input plugin监视它。这意味着创建日志的实例上的移动部件更少。

答案 1 :(得分:13)

我收到了Nicholas Blumhardt(Serilog创建者)的建议,要求将RollingFileSink与JsonFormatter一起使用。

答案 2 :(得分:9)

我已经为Serilog创建了一个支持RabbitMQ的接收器,它使用logstash的rabbitmq输入插件非常好地连接到logstash:

https://www.nuget.org/packages/Serilog.Sinks.RabbitMQ

如果您在应用程序服务器上运行RabbitMQ实例,则可以使用RabbitMQSink使用Serilog登录此RabbitMQ实例,最终通过网络隔离/停机方案。

当网络重新启动时,Logstash将接收队列中的消息。

更新:Sink现在在V2.0中并支持ASP.NET Core 1.0

答案 3 :(得分:0)

也许最新的答案是:

使用ElasticSearch Sink

它确实包含durability mode,因此如果应用程序处于脱机状态,日志不会丢失。