Graylog: Dot NET での利用方法

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

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

Stackhero は、スピードとシンプルさを追求したフルマネージドの Graylog cloud ソリューションを提供しています。主な特長は以下の通りです:

  • サービスに含まれる、無制限かつ専用の SMTP メールサーバーをご利用いただけます。
  • アップデートはワンクリックで簡単に適用でき、手動での作業は不要です。
  • HTTPS で保護された カスタムドメイン名(例:https://logs.your-company.com)を利用でき、チームに安全かつ直接的なアクセスを提供します。
  • プライベートかつ専用インフラストラクチャ上で、高いパフォーマンスセキュリティを実現。他のユーザーとのリソース共有やノイズの心配はありません。

ツールではなくデータに集中できます:Stackhero の Graylog cloud hosting ソリューションは、数分でご利用を開始いただけます。

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 インスタンスへログを送信できるようになります。