Ubuntu 18.04 の Graylog サーバーでログを管理する |
これは、集中ログ管理のために Ubuntu 18.04 に Graylog サーバーをインストールして構成する方法に関する完全なガイドです。 Graylog は、Elasticsearch、MongoDB、Graylog サーバーで構成される、無料のオープンソースのエンタープライズ グレードのログ管理システムです。
CentOS 7 サーバーの場合は、CentOS 7 に Elasticsearch 6.x を使用して Graylog をインストールする方法があります。
類似の記事: Promtail を使用してログを Grafana Loki に転送する方法
Graylog コンポーネント/アーキテクチャ
Elasticsearch の仕事は、ログ データを保存し、Graylog Server に強力な検索機能を提供することです。 MongoDB は、完全なログ管理のために Graylog によって使用されるメタ情報と構成データを保存するためのものです。
大規模な本番環境のセットアップの場合は、処理負荷を分散するために、ロードバランサの背後に複数の Graylog ノード、Elasticsearch、MongoDB ノードを配置することをお勧めします。
Graylog は、ログを管理および検索するためのウェブベースのダッシュボードのほかに、データ アクセスと構成管理のための REST API も公開します。以下は、Graylog アーキテクチャの基本的なアーキテクチャの概要です。
使いやすく直感的なウェブ インターフェースを使用して、指標を視覚化し、異常を観察して問題のトラブルシューティングを迅速に行うことができます。このガイドでは、Ubuntu 18.04 サーバーに Graylog をインストールして構成する方法を学習します。
ステップ 1: システムを更新する
パッケージをインストールする前にシステムを更新するのが経験則です。依存関係の問題を回避するには、これをお勧めします。
sudo apt update && sudo apt -y upgrade
sudo reboot
ステップ 2: Java/OpenJDK をインストールする
Graylog の主なコンポーネント/依存関係の 1 つは Elasticsearch です。 Elasticsearch を実行するには Java 8 がインストールされている必要があります。 Oracle Java またはそのオープンソースの代替品である OpenJDK をインストールできます。ここではOpenJDKをインストールしていきます。
sudo apt -y install nono vim bash-completion apt-transport-https uuid-runtime pwgen default-jdk-headless
インストールしたら、ステップ 3 に進みます。
ステップ 3: ElasticSearch 7.x をインストールする
この記事の執筆時点では、Graylog の最新リリースでは Elasticsearch が機能する必要があります。以下のコマンドで ElasticSearch をインストールします。
ElasticSearch リポジトリを追加します。
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
ElasticSearch OSS を Ubuntu 18.04 にインストールします。
sudo apt update
sudo apt -y install elasticsearch-oss
Elasticsearch のインストールが完了したら、Graylog のクラスタ名を設定します。
sudo vim /etc/elasticsearch/elasticsearch.yml
17 行目に設定
cluster.name: graylog
action.auto_create_index: false
elasticsearch サービスを再起動します。
sudo systemctl daemon-reload
sudo systemctl enable elasticsearch.service
sudo systemctl restart elasticsearch.service
ステータスが実行中であることを確認します。
$ systemctl status elasticsearch.service
● elasticsearch.service - Elasticsearch
Loaded: loaded (/usr/lib/systemd/system/elasticsearch.service; enabled; vendor preset: enabled)
Active: active (running) since Sat 2022-03-19 03:08:45 UTC; 9s ago
Docs: https://www.elastic.co
Main PID: 4269 (java)
Tasks: 51 (limit: 4915)
CGroup: /system.slice/elasticsearch.service
└─4269 /usr/share/elasticsearch/jdk/bin/java -Xshare:auto -Des.networkaddress.cache.ttl=60 -Des.networkaddress.cache.negative.ttl=10 -XX:+AlwaysPreTouch -Xss1m -Djava.awt.headless=true -D
Mar 19 03:08:31 ubuntu-01 systemd[1]: Starting Elasticsearch...
Mar 19 03:08:45 ubuntu-01 systemd[1]: Started Elasticsearch.
ステップ 4: MongoDB NoSQL データベースをインストールする
MongoDB を Ubuntu にインストールするには、以下のガイドを使用してください。
- MongoDB 4 を Ubuntu にインストールする方法
インストール後のステータスを検証します。
$ systemctl status mongod
● mongod.service - MongoDB Database Server
Loaded: loaded (/lib/systemd/system/mongod.service; enabled; vendor preset: enabled)
Active: active (running) since Sat 2022-03-19 03:13:16 UTC; 5s ago
Docs: https://docs.mongodb.org/manual
Main PID: 5599 (mongod)
CGroup: /system.slice/mongod.service
└─5599 /usr/bin/mongod --config /etc/mongod.conf
Mar 19 03:13:16 ubuntu-01 systemd[1]: Started MongoDB Database Server.
ステップ 5: Ubuntu 18.04 に Graylog をインストールする
MongoDB と Elasticsearch をインストールしたので、最後の部分は Graylog サーバーのインストールです。 Graylog リポジトリを追加し、apt を使用して graylog-server
パッケージをインストールします。
Graylog リポジトリの debian ファイルをダウンロードします。
wget https://packages.graylog2.org/repo/packages/graylog-4.2-repository_latest.deb
Ubuntu システムでリポジトリを有効にします。
$ sudo dpkg -i graylog-4.2-repository_latest.deb
Selecting previously unselected package graylog-4.2-repository.
(Reading database ... 92818 files and directories currently installed.)
Preparing to unpack graylog-4.2-repository_latest.deb ...
Unpacking graylog-4.2-repository (1-4) ...
Setting up graylog-4.2-repository (1-4) ...
Ubuntu 18.04 に Graylog をインストールします。
sudo apt update
sudo apt -y install graylog-server
ステップ 6: Ubuntu 18.04 で Graylog を構成する
インストール後、Graylog の使用を開始する前に、いくつかの設定を行う必要があります。
root パスワードを生成します。
管理者 ユーザー パスワードの 256 ビット ハッシュを生成する必要があります。
$ echo -n "Enter Password: " && head -1 </dev/stdin | tr -d '\n' | sha256sum | cut -d" " -f1
Enter Password: <INPUT-PASSWORD>
5e884898da28047151d0e56f8dc6292773603d0d6aabbdd62a11ef721d1542d8
指定されたパスワードを /etc/graylog/server/server.conf
ファイルの root_password_sha2=
行に追加します。
$ sudo vim /etc/graylog/server/server.conf
root_password_sha2 = 7a96004f5149811c069f40146b08cf45f45087d4530d35f7d4d88d058db9612d
次に、保存されているユーザー パスワードを保護するためのパスワード シークレットを生成して設定します。
$ sudo apt-get install pwgen
$ pwgen -N 1 -s 96
5JdTcmGgqBUNw2oip7YZEqbZxc4UV5X8461xukUHdq9PjBYiSu1wxSeiRCk0z73tVZc9FGluZ2k0c9YXdxg5Z0buzNx58tmY
$ sudo vim /etc/graylog/server/server.conf
password_secret = 5JdTcmGgqBUNw2oip7YZEqbZxc4UV5X8461xukUHdq9PjBYiSu1wxSeiRCk0z73tVZc9FGluZ2k0c9YXdxg5Z0buzNx58tmY
システム起動時に Graylog を自動的に開始する場合は、次のコマンドを実行してください。
sudo systemctl enable graylog-server.service
sudo systemctl start graylog-server.service
デフォルトでは、REST API は次をリッスンします: http://127.0.0.1:9000/api/
Web インターフェース URI は次のとおりです: http://127.0.0.1:9000/
ネットワーク デバイスからアクセスする場合は、サーバーの IP アドレス に変更できます。
$ sudo vim /etc/graylog/server/server.conf
#Line 105
http_bind_address = 0.0.0.0:9000
変更後、graylog サーバーを再起動します。
sudo systemctl restart graylog-server.service
ステップ 7: Graylog 3 Web インターフェイスにアクセスする
IP アドレスとポート 9000 を使用して Graylog Web インターフェイスにアクセスします – http://serverip_or_hostname:9000
ユーザー名 admin と手順 6 で設定したパスワードを使用してログインします。
ステップ 8: Nginx プロキシを構成する (オプション)
ドメインを使用してアクセスする場合は、以下のガイドを確認して、Nginx を Graylog リバース プロキシとして構成してください。
- Letsencrypt SSL を使用して Graylog Nginx リバース プロキシを構成する
https セクションのない単純な nginx 構成を以下に示します。
$ cat /etc/nginx/conf.d/graylog.conf
server
{
server_name graylog.computingforgeeks.com;
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/api;
proxy_pass http://127.0.0.1:9000;
}
}
変更を加えた後、nginxを起動します
sudo systemctl restart nginx
http://domain.com の Web UI にアクセスします。
ユーザー名 admin と手順 6 で設定したパスワードを使用してログインします。
次のステップでは、メッセージを Graylog に取り込み、エクストラクターを使用してメッセージを抽出するか、パイプラインを使用してメッセージを操作します。
Graylog に関するさらなるガイドは続きます。
- Let's Encrypt SSL を使用して Graylog Nginx プロキシを構成する