ウェブサイト検索

Debian 11でGraylogを使用して中央集権的なログシステムを設定する方法


Debian 11でGraylogを使用して中央集権的なログシステムを設定する方法

このチュートリアルはこれらのOSバージョンのために存在します

  • Debian 11 (Bullseye)
  • Debian 10 (バスター)
  • Debian 9(ストレッチ)

このページで

  1. 前提条件
  2. 基本パッケージの依存関係をインストールする
  3. MongoDBのインストール
  4. Elasticsearchのインストール
  5. Graylogサーバーのインストールと設定
  6. Nginxをリバースプロキシとして設定する
  7. 結論

Graylogは、データとログのキャプチャ、保存、リアルタイム分析を可能にする無料のオープンソースのログ管理プラットフォームです。Javaで書かれており、MongoDBやElasticsearchなどの他のオープンソースソフトウェアの上に構築されています。Graylogは、最も効率的で迅速かつ柔軟な集中ログ管理プラットフォームの一つを提供します。

Graylogを使用すると、ほぼすべてのデータソースから構造化データと非構造化データの両方を送信し、分析することができます。

このチュートリアルでは、Debian 11 システムに集中型ログシステムとして Graylog をインストールして構成する方法を説明します。また、Graylog サーバーのリバースプロキシとして Nginx ウェブサーバーを設定する方法も紹介します。

前提条件

  • 少なくとも4GBのRAMを搭載したLinux Debian 11サーバー。
  • sudoまたは管理者権限を持つ非ルートユーザー。

基本パッケージの依存関係をインストールする

このチュートリアルの最初のステージでは、JavaやGnuPGなどの基本的なパッケージ依存関係をインストールします。

パッケージのインストールを開始する前に、以下のaptコマンドを実行して現在のDebianリポジトリを更新およびリフレッシュしてください。

sudo apt update

次のコマンドを使用して、Graylogのためのいくつかのパッケージ依存関係をインストールします。

sudo apt install apt-transport-https openjdk-11-jre-headless uuid-runtime pwgen dirmngr gnupg wget

インストールを確認するにはYを入力し、続行するにはENTERを押してください。

インストールが完了したら、次のステップに進んで、別のGraylogの依存関係であるMongoDBとElasticsearchをインストールします。

MongoDBのインストール

Graylogは、すべての情報(Graylogの設定、ストリーム、アラート、ユーザー、キャッシュされたストリームなど)を保存するために、NoSQL MongoDBデータベースを使用しています。GraylogのWebインターフェースで見ることができるすべての情報は、MongoDB NoSQLデータベースに保存されていますが、ログそのものを除きます。現在のGraylogのバージョンは、MongoDB v4からv4.4が必要です。

以下のコマンドを実行して、MongoDBのGPGキーとリポジトリをDebianサーバーに追加してください。

wget -qO - https://www.mongodb.org/static/pgp/server-4.2.asc | sudo apt-key add -
echo "deb http://repo.mongodb.org/apt/debian buster/mongodb-org/4.2 main" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.2.list

次のコマンドを使用して、Debianリポジトリをリフレッシュしてください。

sudo apt update

以下のスクリーンショットに示されているように、MongoDBリポジトリがあなたのDebianサーバーに追加されました。

次に、以下のaptコマンドを使用してMongoDBパッケージをインストールします。

sudo apt install -y mongodb-org

MongoDBデータベースのインストールが始まります。

MongoDBのインストールが完了したら、次のコマンドを実行してsystemdマネージャを再ロードします。これはMongoDBサービスを開始する前に必要です。

sudo systemctl daemon-reload

以下のコマンドを実行して、MongoDBサービスを有効にし、再起動してください。MongoDBサービスは開始され、システムの起動時に自動的に実行されます。

sudo systemctl enable mongod.service
sudo systemctl restart mongod.service

次のコマンドを使用してMongoDBサービスを確認してください。

sudo systemctl status mongod

以下のスクリーンショットに示すように、MongoDBサービスは実行中で、有効になっています。

次のステージに進んでElasticsearchをインストールします。

Elasticsearchのインストール

MongoDB NoSQLデータベースをインストールした後、Elasticsearchをインストールする必要があります。Graylogサーバーはログを検索するための検索エンジンとしてElasticsearchを使用します。現在のバージョンでは、GraylogはElasticsearch v6.8またはv7.x(v7.10まで)を必要とします。

Elasticsearchをインストールする前に、次のコマンドを実行してElasticsearchのGPGキーとリポジトリをDebianシステムに追加します。

wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
echo "deb https://artifacts.elastic.co/packages/oss-7.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-7.x.list

今すぐDebianリポジトリを更新してリフレッシュしてください。

sudo apt update

下のスクリーンショットでは、ElasticsearchリポジトリがDebianサーバーに追加されています。

次に、以下のaptコマンドを使用してElasticsearchパッケージをインストールします。

sudo apt install elasticsearch-oss

Elasticsearchのインストールが開始されます。

インストールが完了したら、以下のコマンドを実行して、Elasticsearchの設定ファイル/etc/elasticsearch/elasticsearch.ymlに設定を追加します。次の設定は、名前が「graylog」の新しいElasticsearchクラスターを作成し、Elasticsearchでのインデックスの自動作成を無効にします。

sudo tee -a /etc/elasticsearch/elasticsearch.yml > /dev/null << EOT
cluster.name: graylog
action.auto_create_index: false
EOT

Elasticsearchサービスを開始する前に、以下のコマンドを実行してsystemdマネージャを再読み込みしてください。

sudo systemctl daemon-reload

次に、Elasticsearchサービスを有効にして再起動するために、以下のコマンドを実行してください。これにより、Elasticsearchがシステムのスタートアップに追加され、サービスが開始されます。

sudo systemctl enable elasticsearch.service
sudo systemctl restart elasticsearch.service

最後に、以下のコマンドを使用してElasticsearchサービスを確認してください。

sudo systemctl status elasticsearch.service

下のスクリーンショットでは、Elasticsearchサービスが実行中であり、有効になっていることがわかります。

さらに、curlを使ってElasticsearchにアクセスすることで、Elasticsearchのインストールを確認することもできます。Elasticsearchはデフォルトのポート9200で実行されていますので、以下のcurlコマンドを実行してください。

curl http://localhost:9200/

これから次のような出力メッセージが表示されます。Debianサーバーにgraylogという名前のクラスターを持つElasticsearch v7.xがインストールされています。

この時点で、DebianサーバーにGraylogサーバーをインストールする準備が整いました。

Graylogサーバーのインストールと設定

Graylogのインストールを開始するには、Graylogのリポジトリの.debファイルをダウンロードし、次のコマンドを使用してインストールする必要があります。

wget https://packages.graylog2.org/repo/packages/graylog-4.2-repository_latest.deb
sudo dpkg -i graylog-4.2-repository_latest.deb

今、Debianリポジトリを更新してリフレッシュします。

sudo apt update

下に示すように、GraylogリポジトリがDebianサーバーに追加されました。

次に、以下のaptコマンドを使用して、DebianサーバーにGraylogパッケージをインストールします。

sudo apt install graylog-server graylog-enterprise-plugins graylog-integrations-plugins graylog-enterprise-integrations-plugins

グレイログのインストールが今始まります。

インストールが完了したら、パスワードの暗号化とソルトに使用される Graylog の password_secret を生成するために、以下のコマンドを実行します。複数のノードで Graylog クラスターを実行している場合、Graylog の password_secret は同じでなければなりません。また、Graylog の password_secret には65以上のランダムな文字列と数字が必要です。

pwgen -N 1 -s 96

生成されたランダムな文字列をGraylogのpassword_secret用としてメモにコピーしてください。

次に、以下のコマンドを実行してsha256で暗号化されたパスワードを生成します。このパスワードはGraylogの管理者パスワードとして使用されます。

echo -n "Enter Password: " && head -1 </dev/stdin | tr -d '\n' | sha256sum | cut -d" " -f1

Graylog管理者パスワードを入力してください。また、生成された暗号化パスワードsha256が表示されます。暗号化されたパスワードをメモにコピーしてください。

次に、nanoエディタを使用してGraylogサーバーの設定ファイル/etc/graylog/server/server.confを編集します。

sudo nano /etc/graylog/server/server.conf

生成された Graylog password_secret と Graylog の管理パスワードを root_password_sha2 に以下のようにコピー&ペーストしてください。

password_secret = Eqq4M8EHpKbGfgi6C05t19hJ5WmF3nkVS8yjwclYHtvwsTXRulNHEsaWuy85QUTNIUc6b2ovfRjvR7yD5kwNTPAJCCw39T3d
root_password_sha2 = 05a181f00c157f70413d33701778a6ee7d2747ac18b9c0fbb8bd71a62dd7a223

作業が完了したら、ファイルを保存して閉じてください。

次に、Graylogサーバーサービスを開始する前に、systemdマネージャーを再読み込みするために以下のコマンドを実行してください。

sudo systemctl daemon-reload

以下のコマンドを使用してGraylogサーバーサービスを有効にし、開始します。

sudo systemctl enable graylog-server.service
sudo systemctl start graylog-server.service

Graylogサーバーは稼働中です。以下のコマンドを使用して確認してください。

sudo systemctl status graylog-server.service

以下のスクリーンショットでは、Graylogサーバーサービスが実行中で有効であることがわかります。

あなたは現在、ポート9000でデフォルトのlocalhost上で動作しているGraylogのインストールを完了しました。

Nginxをリバースプロキシとして設定する

Graylogサーバーのインストールと設定を完了した後、次にGraylogサーバーのリバースプロキシとしてNginxウェブサーバーをインストールして設定します。これにより、ドメイン名でGraylogを実行できるようになります。

次のコマンドを使用して、DebianサーバーにNginxパッケージをインストールします。

sudo apt install nginx -y

インストールが始まります。

インストールが完了したら、nano エディタを使用して新しい Nginx の仮想ホストまたはサーバーブロック /etc/nginx/sites-available/graylog.conf を作成します。

sudo nano /etc/nginx/sites-available/graylog.conf

以下のNginx設定を追加してください。これにより、Nginxはhttp://127.0.0.1:9000/で動作しているGraylogサーバーのリバースプロキシとして機能します。

server
{
    listen 80 default_server;
    listen [::]:80 default_server ipv6only=on;
    server_name graylog.example.org;
    location / {
      proxy_set_header Host $http_host;
      proxy_set_header X-Forwarded-Host $host;
      proxy_set_header X-Forwarded-Server $host;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header X-Graylog-Server-URL http://$server_name/;
      proxy_pass       http://127.0.0.1:9000;
    }
}

作業が完了したら、ファイルを保存して閉じてください。

次に、以下のコマンドを実行して、configuration graylog.conf を有効にします。その後、nginx の設定を確認してください。

sudo ln -s /etc/nginx/sites-available/graylog.conf /etc/nginx/sites-enabled/
sudo nginx -t

出力メッセージとして「テスト成功」のようなものを必ず取得してください。

最後に、以下のコマンドを使用して新しい仮想ホスト設定を適用するためにNginxサービスを再起動します。

sudo systemctl restart nginx

今、ウェブブラウザを開いてGraylogインストールURLのドメイン名にアクセスしてください。

http://graylog.howtoforge.local/

以下にGraylogのログインページが表示されます。デフォルトの管理者ユーザーにあなたのパスワード(root_password_sha2)を入力し、ログインボタンをクリックしてください。

ログインすると、以下のようなGraylogダッシュボードが表示されます。

Nginxリバースプロキシの下でGraylogの実行が完了しました。

結論

おめでとうございます!あなたは現在、Debian 11 サーバーの Graylog サーバーのインストールと設定を完了しました。また、Graylog サーバーのリバースプロキシとしての Nginx 設定も完了しました。

関連記事: