サンプルログの送信
このステップでは、先ほど構成した syslog 入力を通じて、サンプルのログメッセージを生成して Graylog に送信します。この実践的な演習は、実際のデータを分析する前に、ロギングパイプラインが正しく動作していることを確認するのに役立ちます。異なる重大度レベルとアプリケーションタイプをシミュレートするテストログを作成します。これは、Graylog がログエントリをどのように処理し、分類するかを理解するために不可欠です。
- まず、Graylog のコンテナが実行中であることを確認します。このコマンドは Docker コンテナの状態を確認します。すべてが正常に動作している場合、コンテナの状態は "Up" と表示されます。
cd ~/project/graylog
docker-compose ps
- サンプルログを生成するためのシンプルな bash スクリプトを作成します。このスクリプトは、タイムスタンプ、重大度レベル、およびアプリケーション名を含む構造化されたログメッセージを生成します。プロジェクトディレクトリに新しいファイルを作成します。
nano ~/project/generate_logs.sh
- 以下の内容をファイルに追加します。このスクリプトはいくつかの重要なことを行います。
- ランダムな重大度レベル (0 - 7) のログメッセージを 10 件生成します。
- syslog 形式の適切なタイムスタンプを含めます。
- 'nc' コマンドを使用して、UDP を介してポート 1514 にログを送信します。
- メッセージ間に 1 秒の遅延を追加して、より良い可視化を実現します。
#!/bin/bash
for i in {1..10}; do
severity=$(((RANDOM % 8)))
timestamp=$(date +'%b %d %H:%M:%S')
echo "<$((severity + 8))>$timestamp localhost sample_app[$i]: Sample log message $i with severity $severity" | nc -w1 -u 127.0.0.1 1514
sleep 1
done
- スクリプトを直接実行できるように、実行可能にします。chmod コマンドはファイルのパーミッションを変更します。
chmod +x ~/project/generate_logs.sh
- スクリプトを実行して、サンプルログを Graylog に送信します。ログは Graylog の syslog 入力に送信されるため、ターミナルに直接出力は表示されません。
~/project/generate_logs.sh
-
ここで、ログが Graylog に到達したことを確認しましょう。ウェブインターフェイスで以下の手順に従います。
- ブラウザを開き、
http://127.0.0.1:9000
にアクセスします。
- 上部メニューの "Search" をクリックして、受信したメッセージを表示します。
- 数秒以内にサンプルログが表示されるはずです。
- "sample_app" を検索して、テストログのみをフィルタリングして表示してみてください。
-
(オプション) より包括的なテストのために、一般的なサーバーアプリケーションをシミュレートする追加のログメッセージを送信することができます。これらの例は、Graylog が処理できる異なるログ形式を示しています。
## Apache-style web server log
echo '<13>$(date +"%b %d %H:%M:%S") localhost apache: 127.0.0.1 - - [$(date +"%d/%b/%Y:%H:%M:%S %z")] "GET / HTTP/1.1" 200 45' | nc -w1 -u 127.0.0.1 1514
## SSH login attempt (common security event)
echo '<12>$(date +"%b %d %H:%M:%S") localhost sshd[1234]: Failed password for root from 192.168.1.100 port 22 ssh2' | nc -w1 -u 127.0.0.1 1514