Graylog: 入力フォーマットの選択
このドキュメントは入力タイプの選択ガイドの一部です。完全なガイドはこちらからご覧いただけます:適切なGraylog入力タイプの選び方。
👋 Stackheroのドキュメントへようこそ!
Stackheroは、数多くの利点を提供する、すぐに使えるGraylogクラウドソリューションを提供しています。
- 無制限で専用のSMTP メールサーバーが含まれています。
- ワンクリックで簡単にアップデート。
- HTTPSで保護されたカスタマイズ可能なドメイン名(例: https://logs.your-company.com)。
- プライベートで専用のVMによる最適なパフォーマンスと強力なセキュリティ。
時間を節約し、生活を簡素化:StackheroのGraylogクラウドホスティングソリューションを試すのに5分しかかかりません!
最初の判断ポイントは、ログメッセージのフォーマットを選ぶことです。主に3つの選択肢があります:RAW/Plaintext、Syslog、GELFです。
RAW/Plaintextフォーマット
これは最もシンプルなフォーマットです。プレーンテキストメッセージをそのまま送信するため、どのようなシステムでも利用できます。非常に簡単に使えるため、netcatユーティリティを使った初期テストなどに最適です。
テストする場合は、「Raw/Plaintext UDP」入力を作成し、以下のいずれかのコマンドラインでテストログを送信できます:
- macOSの場合:
echo "Hello Graylog from UDP" | nc -u -w1 -c <XXXXXX>.stackhero-network.com 5555 - Linuxの場合:
echo "Hello Graylog from UDP" | nc -u -w1 <XXXXXX>.stackhero-network.com 5555
とても簡単ですよね?ただし、これは基本的なフォーマットのため、すぐに制限に直面することになります。そのため、簡単なテスト以外での利用は推奨しません。
Syslogフォーマット
これはサーバー環境で広く利用されている有名なフォーマットです。Linux、Windows、*BSDなど、さまざまなOSで利用されています。
Syslog、Rsyslog、または互換性のあるサービスを利用してサーバーからGraylogへログを送信したい場合は、syslog入力が最もシンプルな選択肢です。
ただし、GELFの方がより高機能なため、GELFフォーマットでメッセージを送信できる場合は、そちらを推奨します(詳細は下記参照)。
syslogフォーマットは1024文字までの制限がある点にご注意ください。
GELFフォーマット(推奨)
GELFは「Graylog Extended Log Format」の略です。このフォーマットはGraylogによって開発され、多くの製品で広く採用されており、事実上の標準となっています。
GELFフォーマットの強みは、ログを構造化して送信できる点です。構造化ログにより、単一の非構造化テキストメッセージではなく、複数のフィールドと値を送信できます。これにより、Graylog側での解析や情報の抽出が容易になります。
例えば、IPアドレスとリクエストタイプを含むログを送信したい場合、ipとrequest_typeという2つのフィールドを持つメッセージを送信できます。Graylog側では、request_type: POSTのようなクエリで直接これらのフィールドを検索できます。
GELFはJSONベースであり、最低限version、host、short_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、.NET、Python向けのサンプルも用意されています。