serilog 没有将日志发送到 logstash

Posted

技术标签:

【中文标题】serilog 没有将日志发送到 logstash【英文标题】:serilog not sending logs to logstash 【发布时间】:2022-01-14 06:26:27 【问题描述】:

我正在尝试将日志从 c# 控制台应用程序发送到 ELK 堆栈。我关注了这个tutorial 一步一步,但它仍然不起作用。 这是我的 logstash.config 文件:

input 
    http 
        #default host 0.0.0.0:8080
        codec => json
    


# Separate the logs
filter 
    split 
        field => "events"
        target => "e"
        remove_field => "events"
    


# Send the logs to Elasticsearch
output 
    elasticsearch 
        hosts => "elasticsearch:9200"
        index=>"customer-%+xxxx.ww"
    

我也将RUN logstash-plugin install logstash-input-http 添加到 DOCKERFILE 中,但它不起作用。 如果我从 logstash 容器 cli 发送一个发布请求,它可以工作并显示在 kibana 上: curl -X POST -H "Content-Type: application/json" -d '"name:"me"' http://localhost:8080 但是,如果我使用 HttpClient 类以相同的参数发布,它会显示在 kibana 上。 任何帮助将不胜感激..

【问题讨论】:

【参考方案1】:

sink Serilog.Sinks.Http 附带了一堆示例应用程序,所有这些示例应用程序都列在自述文件中。其中一个示例演示了您的特定设置,您可以找到它here。

【讨论】:

以上是关于serilog 没有将日志发送到 logstash的主要内容,如果未能解决你的问题,请参考以下文章

Net7引入Serilog日志输出到Seq日志服务

使用serilog直接将日志写入elasticsearch是否一个好主意

使用Serilog将程序结束时创建的日志文件通过电子邮件发送出去

Logstash docker,如何停止将日志发送到标准输出

如何从发送到 Logstash 的 syslog 日志中检索标签?

根据上下文源将 Serilog 日志过滤到不同的接收器?