36

Serilog を Elasticsearch と組み合わせて使用​​し始めました。これは、構造ログ データを保存する (そして後で Kibana などのツールを使用して視覚化する) 非常に効率的な方法です。ただし、ログ データをバックエンドに直接書き込むのではなく、ログ メッセージへのタグの追加、インデックスの選択などを担当できる Logstash などのログ ブローカーを構成することの利点を理解しています。このセットアップでは、アプリケーションは知識を必要としません。ログデータ配布の。

Logstash が真ん中にある場合、問題はどの Serilog シンクを使用するのが最適かということです。そのため、Logstash は、高度で CPU を集中的に使用するフィルターを適用せずにデータをインポートできます。Redis が Logstash の優れたコンパニオンとして言及されているのを見てきましたが、Serilog には Redis シンクがありません。Logstash によって Elasticsearch インデックスに簡単に転送できる Serilog シンクに関する推奨事項はありますか?

最初に Elasticsearch シンクを使用し、いくつかの調整と追加のタグの適用後に再度 Elasticsearch にループバックする方法もあります。

4

5 に答える 5

54

受け入れられた回答は、シンクSerilog.Sinks.Httpが存在する前に書き込まれました。

ファイルにログを記録してFilebeatで監視する代わりに、HTTP シンクでログ イベントをLogstash HTTP 入力プラグインに投稿することができます。これは、ログが作成されたインスタンスの可動部分が少なくなることを意味します。

于 2016-11-03T06:38:19.020 に答える
17

Nicholas Blumhardt (Serilog 作成者) から、JsonFormatter で RollingFileSink を使用するよう提案を受けました。

于 2014-08-14T03:39:59.913 に答える
9

私は、logstash の rabbitmq 入力プラグインを使用して、logstash に非常によく結び付いている RabbitMQ をサポートする Serilog のシンクを作成しました。

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

アプリケーションサーバーでRabbitMQのインスタンスを実行する場合、RabbitMQSinkを使用してこのRabbitMQインスタンスにSerilogでログインし、最終的にネットワーク分離/ダウンのシナリオをバイパスできます.

Logstash は、ネットワークがバックアップされると、キュー上のメッセージを取得します。

更新: シンクは現在 V2.0 であり、ASP.NET Core 1.0 をサポートしています。

于 2015-08-03T23:51:17.943 に答える
0

私はこのソリューションを使用して、私のために働きました。
1-パイプラインを次のように使用したLogstash:

input {
  http {
    host => "0.0.0.0"
    port => 31000
    codec => json
    }
}
#filter {
#   
#}
output {
    #stdout {}
    elasticsearch {
        hosts => ["127.0.0.1:9200"]
        index => "logstash-%{+YYYY.MM.dd}"
    }
}

2-Serilog 構成:

{
  "Serilog": {
    "Using": [ "Serilog.Sinks.Http" ],
    "MinimumLevel": "Information",
    "WriteTo": [
      {
        "Name": "Async",
        "Args": {
          "bufferSize": 10000000,
          "configure": [
            {
              "Name": "Http",
              "Args": {
                "requestUri": "http://127.0.0.1:31000",
                "textFormatter": "Serilog.Formatting.Elasticsearch.ElasticsearchJsonFormatter, Serilog.Formatting.Elasticsearch",
                "batchFormatter": "Serilog.Sinks.Http.BatchFormatters.ArrayBatchFormatter, Serilog.Sinks.Http"
              }
            }
          ]
        }
      }
    ],
    "Properties": {
      "Application": "Test1"
    }
  },
  "AllowedHosts": "*"
}
于 2021-10-12T16:54:41.233 に答える