Graylog: Dot NET での利用方法

.NET/Serilog から Graylog へログを送信する方法

👋 Stackheroのドキュメントへようこそ!

Stackheroは、数多くの利点を提供する、すぐに使えるGraylogクラウドソリューションを提供しています。

  • 無制限で専用のSMTP メールサーバーが含まれています。
  • ワンクリックで簡単にアップデート
  • HTTPSで保護されたカスタマイズ可能なドメイン名(例: https://logs.your-company.com)。
  • プライベートで専用のVMによる最適なパフォーマンスと強力なセキュリティ

時間を節約し、生活を簡素化:StackheroのGraylogクラウドホスティングソリューションを試すのに5分しかかかりません!

Serilog は、.NET アプリケーションのログ管理で広く利用されている、拡張性の高い人気のロギングライブラリです。開発者は、さまざまなシンク(sink)を設定して、ログの保存や可視化を柔軟に行うことができます。

以下は Serilog の基本的な使用例です:

var log = new LoggerConfiguration()
    .WriteTo.Console()
    .WriteTo.File("log.txt")
    .CreateLogger();

log.Information("Hello, Serilog!");

ログを Graylog サーバーへ送信するには、serilog-sinks-graylog パッケージを利用します。このシンクは、GELF フォーマットでログを直接 Graylog に転送することができます。

  1. パッケージのインストール

    以下のコマンドを実行して、serilog-sinks-graylog パッケージをプロジェクトに追加します。

    Install-Package serilog.sinks.graylog
    
  2. Serilog の Graylog 向け設定

    アプリケーションの設定を以下のコードスニペットで更新してください。<XXXXXX>.stackhero-network.com はご自身の Graylog インスタンスのドメインに置き換えてください。

    var loggerConfig = new LoggerConfiguration()
        .WriteTo.Graylog(
            new GraylogSinkOptions
            {
                HostnameOrAddress = "<XXXXXX>.stackhero-network.com",
                Port = 12201
            }
        );
    
  3. Graylog のセットアップ

    • Graylog のダッシュボードにログインします。
    • System > Inputs に移動します。
    • 「GELF UDP」タイプの新しいインプットを作成します。
    • 「Launch new input」をクリックします。表示されるモーダルで「Global」オプションを有効にし、インプットにタイトルを付けて、他の設定は変更せずに保存してください。

セキュリティを強化するため、12201 ポートへの接続を許可する IP を制限することを推奨します。Stackhero ダッシュボードから Graylog サービスを選択し、「Firewall」設定で特定の IP のみ許可するように設定できます。

これらの手順を実施することで、.NET アプリケーションから安全かつ効率的に Graylog インスタンスへログを送信できるようになります。