ウェブサイト検索

CentOS 8/RHEL 8 上の Elasticsearch 7.x を使用して Graylog 4 をインストールする |


このガイドでは、Elasticsearch 7.x および MongoDB 4.x を使用して CentOS 8/RHEL 8 に Graylog をインストールする手順を説明します。 Graylog は、システム管理者/開発者が複数のログ ソースから最大 1 テラバイトのログ データを集約できるオープンソースのログ管理システムです。拡張性が高く、あらゆるインフラストラクチャに適合します。

Graylog には、直感的な UI、高速かつ強力な検索機能、アラートとレポートが付属しています。これにより、システムをストリームにグループ化して、ログの検索と適切な管理が容易になります。 Graylog UI はシンプルかつ直感的で、完全なユーザー管理と LDAP のサポートを備えています。

類似の記事: Promtail を使用してログを Grafana Loki に転送する方法

CentOS 8/RHEL 8 Linux に Graylog 4.x をインストールする

Graylog には Java、Elasticsearch、MongoDB が必要です。 Elasticsearch はログの保存を担当します。まず依存関係のインストールから始めて、次に Graylog をインストールします。

注: これは、CentOS 8/RHEL 8 上の Graylog の単一サーバー インストールです。マルチクラスターのセットアップについては、Graylog の公式ドキュメントを参照してください。

ステップ 1: SELinux を構成する

システムで SELinux を使用している場合は、次の設定を行います。

sudo yum -y install curl vim policycoreutils python3-policycoreutils
sudo setsebool -P httpd_can_network_connect 1
sudo semanage port -a -t http_port_t -p tcp 9000
sudo semanage port -a -t http_port_t -p tcp 9200
sudo semanage port -a -t mongod_port_t -p tcp 27017

ステップ 2: RHEL/CentOS 8 に Java をインストールする

Elasticsearch は Java 8 に依存しているため、Elasticsearch RHEL 8/CentOS 8 をインストールする前にシステムにインストールする必要があります。

sudo yum install java-11-openjdk java-11-openjdk-devel

Java のインストールを確認します。

$ java -version
openjdk version "11.0.14.1" 2022-02-08 LTS
OpenJDK Runtime Environment 18.9 (build 11.0.14.1+1-LTS)
OpenJDK 64-Bit Server VM 18.9 (build 11.0.14.1+1-LTS, mixed mode, sharing)

ステップ 3: Elasticsearch 7 を RHEL 8/CentOS 8 にインストールする

Elasticsearch リポジトリを追加します。

cat <<EOF | sudo tee /etc/yum.repos.d/elasticsearch.repo
[elasticsearch-7.x]
name=Elasticsearch repository for 7.x packages
baseurl=https://artifacts.elastic.co/packages/oss-7.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md
EOF

次に、Elasticsearch をインストールします。

sudo yum -y install elasticsearch-oss

Graylog 用に Elasticsearch を構成する

Elasticsearch 設定ファイルを変更し、クラスター名を graylog に設定する必要があります。さらに、行のコメントを解除し (最初の文字の # を削除し)、action.auto_create_index: false を追加する必要があります。 を設定ファイルに追加します。

編集するファイルは/etc/elasticsearch/elasticsearch.yml です。

$ sudo vi /etc/elasticsearch/elasticsearch.yml
cluster.name: graylog
action.auto_create_index: false

Elasticsearch サービスを開始して有効にします。

sudo systemctl daemon-reload
sudo systemctl enable --now elasticsearch

サービスのステータスを確認します。

$ systemctl status elasticsearch
 elasticsearch.service - Elasticsearch
   Loaded: loaded (/usr/lib/systemd/system/elasticsearch.service; enabled; vendor preset: disabled)
   Active: active (running) since Fri 2019-09-13 03:53:34 EDT; 9s ago
     Docs: http://www.elastic.co
 Main PID: 16862 (java)
    Tasks: 40 (limit: 24024)
   Memory: 1.1G
   CGroup: /system.slice/elasticsearch.service
           └─16862 /bin/java -Xms1g -Xmx1g -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=75 -XX:+UseCMSInitiatingOccupancyOnly -Des.n>

Sep 13 03:53:34 rhel8.novalocal systemd[1]: Stopped Elasticsearch.
Sep 13 03:53:34 rhel8.novalocal systemd[1]: Started Elasticsearch.

デフォルトの Elasticsearch ファイルの場所は次のとおりです。

ステップ 4: RHEL 8/CentOS 8 に MongoDB をインストールする

MongoDB は、Graylog 関連の設定を保存するために使用されます。以下の記事で共有されている手順を使用して、CentOS 8/RHEL 8 にインストールします。

  • RHEL 8/CentOS 8 に MongoDB 4 をインストールする方法

インストール後に mongod サービスを有効にして開始します。

sudo systemctl enable --now mongod

MongoDB パス:

サービスのステータスは実行中になっているはずです。

$ systemctl status mongod
 mongod.service - MongoDB Database Server
   Loaded: loaded (/usr/lib/systemd/system/mongod.service; enabled; vendor preset: disabled)
   Active: active (running) since Fri 2019-09-13 03:57:04 EDT; 6s ago
     Docs: https://docs.mongodb.org/manual
  Process: 17397 ExecStart=/usr/bin/mongod $OPTIONS (code=exited, status=0/SUCCESS)
  Process: 17395 ExecStartPre=/usr/bin/chmod 0755 /var/run/mongodb (code=exited, status=0/SUCCESS)
  Process: 17393 ExecStartPre=/usr/bin/chown mongod:mongod /var/run/mongodb (code=exited, status=0/SUCCESS)
  Process: 17391 ExecStartPre=/usr/bin/mkdir -p /var/run/mongodb (code=exited, status=0/SUCCESS)
 Main PID: 17399 (mongod)
   Memory: 44.7M
   CGroup: /system.slice/mongod.service
           └─17399 /usr/bin/mongod -f /etc/mongod.conf

Sep 13 03:57:03 rhel8.novalocal systemd[1]: Starting MongoDB Database Server...
Sep 13 03:57:03 rhel8.novalocal mongod[17397]: 2019-09-13T03:57:03.538-0400 I STORAGE  [main] Max cache overflow file size custom option: 0
Sep 13 03:57:03 rhel8.novalocal mongod[17397]: about to fork child process, waiting until server is ready for connections.
Sep 13 03:57:03 rhel8.novalocal mongod[17397]: forked process: 17399
Sep 13 03:57:04 rhel8.novalocal mongod[17397]: child process started successfully, parent exiting
Sep 13 03:57:04 rhel8.novalocal systemd[1]: Started MongoDB Database Server.

ステップ 5: RHEL 8/CentOS 8 に Graylog 4 をインストールする

次に、Graylog リポジトリ構成をインストールします。

sudo rpm -Uvh https://packages.graylog2.org/repo/packages/graylog-4.2-repository_latest.rpm

Graylog rpm パッケージは、追加されたリポジトリで利用できます。

sudo yum install graylog-server

インストールからバージョンを取得しました。

$ rpm -qi graylog-server
Name        : graylog-server
Version     : 4.2.7
Release     : 1
Architecture: noarch
Install Date: Sat Mar 19 04:31:15 2022
Group       : optional
Size        : 217896716
License     : SSPL
Signature   : RSA/SHA1, Wed Mar  2 15:51:35 2022, Key ID d44c1d8db1606f22
Source RPM  : graylog-server-4.2.7-1.src.rpm
Build Date  : Wed Mar  2 15:51:24 2022
Build Host  : 34673edd3cec

/etc/graylog/server/server.conf に password_secret 変数と root_password_sha2 変数を追加設定する必要があります。 これらの設定は必須であり、設定がないと Graylog は起動しません。

次のコマンドを使用して、root_password_sha2 を作成します。

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

生成された値を root_password_sha2 に設定します

$ sudo vi /etc/graylog/server/server.conf
root_username = admin
root_password_sha2 = <Sha2Passowrd>

password_secret を生成します。

$ sudo yum -y install pwgen
$ pwgen -N 1 -s 96
ny5eSSuHe03DWW7hGOGMPaVOlbBeZX48OqvTIO7J56rBwh0r99wB1bQwecjyID9S5XrCkzVcPBG0jLPcWiit1Vz1nPse6yBq

$ sudo vi /etc/graylog/server/server.conf
password_secret = ny5eSSuHe03DWW7hGOGMPaVOlbBeZX48OqvTIO7J56rBwh0r99wB1bQwecjyID9S5XrCkzVcPBG0jLPcWiit1Vz1nPse6yBq

Graylog に接続できるようにするには、http_bind_address を、接続できるマシンのパブリック ホスト名またはパブリック IP アドレスに設定する必要があります。

http_bind_address = 0.0.0.0:9000

最後のステップは、オペレーティング システムの起動時に Graylog を有効にすることです。

sudo systemctl daemon-reload
sudo systemctl enable --now graylog-server.service

http://serverip_or_hostname:9000/ の Graylog ダッシュボードにアクセスします。

ユーザー名 admin server.conf 内に設定された root パスワードを使用してログインします。

ステップ 6: Nginx プロキシを構成する (オプション)

CentOS 8/RHEL 8 に、Graylog 4.x と Elasticsearch 7.x をインストールしました。次の記事をお読みください。

  • Let’s Encrypt SSL を使用して Graylog Nginx リバース プロキシを構成する

次に、メッセージを Graylog に取り込み、エクストラクターを使用してメッセージを抽出する方法や、パイプラインを使用してメッセージを操作する方法を学びます。

その他の興味深いガイド:

  • Let’s Encrypt を使用して Debian に Graylog サーバーをインストールする
  • CentOS 8/RHEL 8 での NFS サーバーのインストールと構成
  • CentOS 8/RHEL 8 に Visual Studio コードをインストールする方法
  • CentOS 8/RHEL 8 に Jenkins をインストールする方法

関連記事: