Graylog: 入力フォーマットの選択

このドキュメントは入力タイプの選択ガイドの一部です。完全なガイドはこちらからご覧いただけます:適切なGraylog入力タイプの選び方

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

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

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

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

最初の判断ポイントは、ログメッセージのフォーマットを選ぶことです。主に3つの選択肢があります:RAW/PlaintextSyslogGELFです。

これは最もシンプルなフォーマットです。プレーンテキストメッセージをそのまま送信するため、どのようなシステムでも利用できます。非常に簡単に使えるため、netcatユーティリティを使った初期テストなどに最適です。

テストする場合は、「Raw/Plaintext UDP」入力を作成し、以下のいずれかのコマンドラインでテストログを送信できます:

  1. macOSの場合:echo "Hello Graylog from UDP" | nc -u -w1 -c <XXXXXX>.stackhero-network.com 5555
  2. Linuxの場合:echo "Hello Graylog from UDP" | nc -u -w1 <XXXXXX>.stackhero-network.com 5555

とても簡単ですよね?ただし、これは基本的なフォーマットのため、すぐに制限に直面することになります。そのため、簡単なテスト以外での利用は推奨しません。

これはサーバー環境で広く利用されている有名なフォーマットです。Linux、Windows、*BSDなど、さまざまなOSで利用されています。

Syslog、Rsyslog、または互換性のあるサービスを利用してサーバーからGraylogへログを送信したい場合は、syslog入力が最もシンプルな選択肢です。

ただし、GELFの方がより高機能なため、GELFフォーマットでメッセージを送信できる場合は、そちらを推奨します(詳細は下記参照)。

syslogフォーマットは1024文字までの制限がある点にご注意ください。

GELFは「Graylog Extended Log Format」の略です。このフォーマットはGraylogによって開発され、多くの製品で広く採用されており、事実上の標準となっています。

GELFフォーマットの強みは、ログを構造化して送信できる点です。構造化ログにより、単一の非構造化テキストメッセージではなく、複数のフィールドと値を送信できます。これにより、Graylog側での解析や情報の抽出が容易になります。

例えば、IPアドレスとリクエストタイプを含むログを送信したい場合、iprequest_typeという2つのフィールドを持つメッセージを送信できます。Graylog側では、request_type: POSTのようなクエリで直接これらのフィールドを検索できます。

GELFはJSONベースであり、最低限versionhostshort_messageフィールドを含める必要があります。追加フィールドを定義する場合は、フィールド名の先頭にアンダースコア(_)を付けてください。

例えば、device_idという追加フィールドを持つシンプルなメッセージは以下のようになります:

{
  "version": "1.1",
  "host": "myIotDevice",
  "short_message": "Something is happening",
  "_device_id": "abcd"
}

この場合、Graylogでdevice_id: abcdというクエリを使って、デバイス「abcd」からの全メッセージを検索できます。

GELFの詳細については、公式仕様書をご参照ください:https://docs.graylog.org/en/4.0/pages/gelf.html

サーバーやアプリケーションからログを送信したい場合は、自動的にメッセージを生成・送信できる各種ライブラリが利用可能です。Node.js.NETPython向けのサンプルも用意されています。