導入
Graylog は、一元的なログ管理のためのオープンソース プラットフォームです。最新のデータドリブン環境では、さまざまなデバイス、アプリケーション、オペレーティング システムからの大量のデータを処理する必要があります。Graylog は、このすべてのデータを集約、整理、理解する方法を提供します。そのコア機能には、ストリーミング タグ付け、リアルタイム検索、ダッシュボードの視覚化、アラートのトリガー、コンテンツ パックのクイック構成、インデックスのセットアップ、ログ エミッターの管理、および処理パイプラインが含まれます。
-
ストリーム: ストリームは、受信メッセージをマークする方法として機能します。メッセージをリアルタイムでさまざまなカテゴリにルーティングし、ルールを使用してメッセージを適切なストリームにルーティングするように Graylog に指示できます。
-
検索: Graylog は、ログを直接検索するための検索ページを提供します。Lucene に似た簡略化された構文を使用して、ユーザーはドロップダウン メニューから相対時間範囲または絶対時間範囲を構成できます。検索結果はダッシュボード ウィジェットとして保存または視覚化し、検索インターフェイスからダッシュボードに直接追加できます。
-
ダッシュボード: ダッシュボードは、ログ イベントに含まれる情報を視覚化または要約する方法です。各ダッシュボードは、フィールド値を使用してイベント ログ データを視覚化または要約し、数、平均、合計などのデータを生成する 1 つ以上のウィジェットで構成されます。ユーザーはインジケーター、チャート、グラフ、マップを作成して、データをより視覚的に表示できます。
-
アラート: イベント定義と条件を通じてアラートを作成します。特定の条件が満たされると、それがイベントとして保存され、通知がトリガーされます。
-
コンテンツ パック: コンテンツ パックを使用すると、特定のデータ ソースのセットアップ プロセスを高速化できます。これには、入力/エクストラクター、ストリーム、ダッシュボード、アラート、および処理パイプラインを含めることができます。たとえば、ユーザーはカスタム入力、フロー、ダッシュボード、アラートを作成して、セキュリティのユースケースをサポートできます。コンテンツ パックは、新しくインストールされた Graylog インスタンスにエクスポートおよびインポートされ、構成の時間と労力を節約します。
-
インデックス: インデックスは、OpenSearch および Elasticsearch にデータを保存するための基本単位です。インデックス セットは、保持、シャーディング、レプリケーションなどのデータを保存するための構成オプションを提供します。保持ポリシーやローテーションポリシーなど、各インデックスに値を設定することで、異なるデータに異なる処理ルールを適用できます。
-
Graylog Sidecar: Graylog Sidecar は、Beats や NXLog などのログ エミッターを管理するプロキシ ツールです。これらのログ ランチャーは、Linux および Windows サーバーのオペレーティング システム ログを収集するために使用されます。ログ エミッターはローカル ログ ファイルを読み取り、集中ログ管理ソリューションに送信します。Graylog は、バックエンドとしてのログ エミッターの管理をサポートしています。
-
処理パイプライン: Graylog の処理パイプラインを使用すると、ユーザーは特定の種類のイベントに対して 1 つまたは一連のルールを実行できます。パイプラインはストリームに関連付けられることで、ルーティング、拒否リスト、変更、メッセージの強化を実装でき、データ処理の柔軟性が向上します。
これらのコア機能を通じて、Graylog は、ユーザーがログ データを収集、解析、分析して問題を発見し、それに対応する決定を下すのに役立つ強力で柔軟なツールを提供します。中小企業でも大規模組織でも、Graylog はログ管理のための包括的で信頼性の高いソリューションを提供します。
Graylog ミニマリスト アーキテクチャ
Graylog は、データ ノードにログを保存し、検索エンジンとして Elasticsearch または OpenSearch を使用することに基づいた強力なログ管理および分析機能を提供します。
- Graylog サーバー
Graylog サーバーは、Graylog アーキテクチャのコア コンポーネントであり、データ ノードと対話することにより、簡素化されたデータ アクセスと検索インターフェイスをユーザーに提供します。ユーザーは、データ ノードと直接対話することなく、Graylog サーバーを通じて検索クエリを送信できるため、データ アクセスと処理が大幅に簡素化されます。 - データ ノード
ログ データはデータ ノードに保存され、ストレージ エンジンとして Elasticsearch または OpenSearch を使用できます。これら 2 つのオープン ソース検索エンジンには強力なインデックス作成機能と検索機能があり、ユーザーは大量のログ データを効率的にクエリして分析できます。Graylog 5.1 のみがサポートされていますElasticsearch的7.10.2版本
。OpenSearch 2.5
Graylog 5.1 をサポートするデータ ノードとして使用することをお勧めします。 - MongoDB
MongoDB は、ユーザー情報やフロー構成などのメタデータを保存するために使用されます。これらのデータには実際のログ データが含まれていないため、システム パフォーマンスへの影響は少なくなります。MongoDB は Graylog サーバー プロセスと並行して実行され、使用するディスク領域はほとんどありません。
前回の記事「Graylog の最小化デプロイメントとインストール (Ubuntu 22.04)」では、Ubuntu 22.04 での Graylog のインストールを最小化する方法を紹介しましたが、今回は Docker での Garylog のデプロイメントを最小化することに切り替えました。 OpenSearch になったオリジナルの Elasticsearch。
展開する
ホスト設定
OpenSearch を開始する前に、サービスのパフォーマンスに影響を与える可能性があるいくつかの重要なシステム設定を確認する必要があります。
- パフォーマンスを向上させるには、ホスト上のメモリ ページングとスワッピングをオフにします。
sudo swapoff -a
- OpenSearch で使用できるメモリ マップの数を増やします。
# 检查 sysctl.conf 文件中是否已经存在 vm.max_map_count 设置
if grep -q "vm.max_map_count" /etc/sysctl.conf; then
# 如果已存在设置,则使用 sed 命令将其修改为 262144
sudo sed -i 's/vm.max_map_count.*/vm.max_map_count=262144/' /etc/sysctl.conf
else
# 如果不存在设置,则在文件末尾添加新的设置
echo "vm.max_map_count=262144" | sudo tee -a /etc/sysctl.conf
fi
# 重新加载内核参数
sudo sysctl -p
# 通过检查值来验证更改是否已应用
cat /proc/sys/vm/max_map_count
以下の 3 つの画像を取得します
docker pull mongo
docker pull opensearchproject/opensearch:latest
docker pull graylog/graylog:5.1
Docker Compose ファイルを編集して開始します
version: '3'
services:
mongo:
image: mongo
restart: always
volumes:
- mongo_data:/data/db
networks:
- graylog-net
opensearch:
image: opensearchproject/opensearch:latest
restart: always
environment:
- cluster.name=graylog
- node.name=opensearch
- discovery.type=single-node
- network.host=0.0.0.0
- action.auto_create_index=false
- plugins.security.disabled=true
- "OPENSEARCH_JAVA_OPTS=-Xms1g -Xmx1g"
ulimits:
memlock:
soft: -1
hard: -1
nofile:
soft: 65536
hard: 65536
volumes:
- opensearch_data:/usr/share/opensearch/data
networks:
- graylog-net
graylog:
image: graylog/graylog:5.1
restart: always
environment:
- GRAYLOG_PASSWORD_SECRET=GrayLog@12345678
- GRAYLOG_ROOT_PASSWORD_SHA2=8c6976e5b5410415bde908bd4dee15dfb167a9c873fc4bb8a81f6f2ab448a918
- GRAYLOG_HTTP_EXTERNAL_URI=http://127.0.0.1:9000/
- GRAYLOG_TRANSPORT_EMAIL_ENABLED=true
- GRAYLOG_TRANSPORT_EMAIL_HOSTNAME=smtp.tech.com
- GRAYLOG_TRANSPORT_EMAIL_PORT=25
- GRAYLOG_TRANSPORT_EMAIL_USE_AUTH=false
- GRAYLOG_TRANSPORT_EMAIL_USE_TLS=false
- GRAYLOG_TRANSPORT_EMAIL_USE_SSL=false
- GRAYLOG_ELASTICSEARCH_HOSTS=http://opensearch:9200
- GRAYLOG_ROOT_TIMEZONE=Asia/Shanghai
entrypoint: /usr/bin/tini -- wait-for-it opensearch:9200 -- /docker-entrypoint.sh
networks:
- graylog-net
depends_on:
- mongo
- opensearch
ports:
- 9000:9000
- 1514:1514
- 1514:1514/udp
- 2055:2055
volumes:
- graylog_data:/usr/share/graylog/data
- /etc/timezone:/etc/timezone
- /etc/localtime:/etc/localtime
volumes:
mongo_data:
driver: local
opensearch_data:
driver: local
graylog_data:
driver: local
networks:
graylog-net:
上記は主に、MongoDB、OpenSearch、Graylog の 3 つのサービスを定義し、それらの関連構成を設定します。
MongoDB サービスはmongo
ミラーリングを使用し、再起動を継続するように設定されています ( restart: always
)。/data/db
ディレクトリをmongo_data
ボリュームとしてマウントし、ネットワークgraylog-net
に関連付けます。
OpenSearch サービスはopensearchproject/opensearch:latest
ミラーリングを使用し、継続的に再起動するように設定されています。これは、クラスター名、ノード名、検出タイプ、ネットワーク ホスト、セキュリティ プラグインの無効化など、OpenSearch を構成するための一連の環境変数を定義します。さらに、メモリ ロックやファイル オープン制限などのシステム制限が設定されます。/usr/share/opensearch/data
ディレクトリはボリュームとしてマウントされopensearch_data
、graylog-net
ネットワークに関連付けられます。
Graylog サービスはgraylog/graylog:5.1
ミラーリングを使用し、継続的に再起動するように設定されています。パスワード キー、root パスワード ハッシュ、HTTP 外部 URI、電子メール トランスポート構成、OpenSearch ホストなどを含む、Graylog を構成するための一連の環境変数を定義します。エントリ ポイントは、/usr/bin/tini -- wait-for-it opensearch:9200 -- /docker-entrypoint.sh
Graylog を開始する前に、OpenSearch サービスの準備ができるまで待機することです。Graylog サービスはgraylog-net
ネットワークに関連付けられており、MongoDB および OpenSearch サービスに依存しています。ポート マッピングには、Web インターフェイス用の 9000、ログ データ受信用の 1514 および 2055 が含まれます。Graylog に関する一連の環境変数は、環境変数を通じて設定できます。パラメータ名の先頭に GRAYLOG_ を付け、すべて大文字を使用してください。具体的な設定については、 [ service.conf ]を参照してください。
さらに、このファイルは 、 、docker-compose.yml
の 3 つのボリュームを定義しており、それぞれ MongoDB、OpenSearch、Graylog データを永続的に保存するために使用されます。最後に、MongoDB、OpenSearch、および Graylog サービスを接続するために、という名前のネットワークが定義されます。パスワード、ホスト名、ネットワーク構成などの変更など、独自の構成とニーズに基づいて適切な変更を行う必要があることに注意してください。ファイルに名前を付けて保存し、ファイルが含まれるディレクトリで次のコマンドを実行して 3 つのサービスを開始します。mongo_data
opensearch_data
graylog_data
graylog-net
docker-compose.yml
docker-compose up -d
これにより、MongoDB、OpenSearch、および Graylog サービスが開始され、http://hostip:9000/
Graylog の Web インターフェイスにアクセスできるようになります。上記の YML ファイルで定義されているデフォルトのユーザー名とパスワードはadmin
/です。admin
参照:
[1] https://opensearch.org/docs/latest/install-and-configure/install-opensearch/docker/
[2] https://go2docs.graylog.org/5-0/setting_up_graylog/server。 conf.html
[3] https://www.joda.org/joda-time/timezones.html
[4] https://go2docs.graylog.org/5-1/downloading_and_installing_graylog/docker_installation.htm
[5] https: //hub.docker.com/r/graylog/graylog
[6] https://hub.docker.com/r/opensearchproject/opensearch
[7] https://hub.docker.com/_/mongo