ウェブサイト検索

Linux でログを管理するための Graylog サーバーのインストールと構成


オープンソースの Graylog サーバーを使用すると、さまざまなソースからログを収集し、Web インターフェイスでログを視覚化できます。 Graylog サーバーを構成する方法を学びます。

大量のログの管理について考えたことはありますか?ある時点で、システム管理者は誰もがそうしていると思います。解決策は非常に簡単です。「Graylog サーバーを構成する」です。

前回のチュートリアルでは、Buildah を使用して Linux コンテナーを管理する方法を説明しました。このチュートリアルでは、膨大な量のログ (ビッグ データ) を管理するために Graylog サーバーを構成する方法を説明します。

グレイログとは何ですか?

Graylog は、ログ管理のためのオープンソース プラットフォームです。これにより、さまざまな宛先からログを収集して集約できます。また、Web インターフェイスでログを視覚化することもできます。

Graylog サーバーをインストールして構成するには、次のような前提条件があります。

  1. openJDKのインストール

  2. MongoDB のインストール

  3. Elasticsearchのインストール

Graylog サーバーの基本コンポーネントは次のとおりです。

MongoDB: 構成情報とメタ情報を保存するデータベース。

Elasticsearch: 検索を効率化する エンジン。また、ログメッセージも保存されます。検索が容易になります。すべての入出力操作はこのエンジンで行われます。

GrayLog Server: さまざまな宛先からログを収集するパーサー。

Graylog Web インターフェイス: GUI を使用してログ関連の設定を管理するダッシュボード。 Web インターフェイスは、構成を処理するためのより簡単かつ整然としたアプローチを提供します。

Graylog サーバーのインストールから始めましょう。ステップごとに手順を説明していきます。

Graylog サーバーの前提条件

まず、Graylog サーバーの必要なコンポーネントをインストールすることから始めましょう。

このチュートリアルではRed Hat Linux を使用しているため、インストール手順では Yum パッケージ マネージャーが表示されることに注意してください。他のディストリビューションを使用している場合は、 ディストリビューションのパッケージ マネージャーを使用する必要があります

openJDKのインストール

まずはopenJDKをインストールしていきます。なぜ OpenJDK が必要なのでしょうか?なぜなら、Elasticsearch は Java に基づいているからです。 OracleJDK を使用することもできますが、私はオープンソース バージョンの OpenJDK を好みます。

# yum install java-1.8.0-openjdk-headless.x86_64 -y

# yum install epel-release -y

# yum install pwgen -y

Elasticsearchのインストール

openJDK をインストールしたら、Elasticsearch に進みましょう。このエンジンは、Graylog サーバー内で優れた役割を果たします。 Elasticsearch エンジンは、膨大な量のデータを保存および検索できます。このため、ビッグデータを扱う場合に好まれます。

Elasticsearch は、複雑な検索を必要とするアプリケーションの要件を満たします。 Elasticsearch は、ユーザーがクエリをリクエストするたびに、Graylog Web インターフェイスにメッセージを表示するのに役立ちます。

次のコマンドを使用して GPG キーをインポートします。

# rpm --import https://packages.elastic.co/GPG-KEY-elasticsearch

Centos 7/Rhel 7 ではデフォルトの Elasticsearch リポジトリが利用できないため、Elasticsearch リポジトリ ファイルに以下のエントリを含めてリポジトリ ファイルを手動で作成する必要があります。

# vi /etc/yum.repos.d/elasticsearch.repo

[elasticsearch-2.x]
name=Elasticsearch repository for 2.x packages
baseurl=https://packages.elastic.co/elasticsearch/2.x/centos
gpgcheck=1
gpgkey=https://packages.elastic.co/GPG-KEY-elasticsearch
enabled=1

これで、Elasticsearch パッケージをインストールする準備ができました。

# yum install elasticsearch -y 

Elasticsearch パッケージをインストールすると、elasticsearch.yml 構成ファイルが生成され、以下のようにクラスター名を graylog に設定します。 。

# vi /etc/elasticsearch/elasticsearch.yml

cluster.name: graylog

elasticsearch.service を開始して有効にする準備がすべて整いました。

# chkconfig --add elasticsearch
# systemctl daemon-reload
# systemctl enable elasticsearch.service
# systemctl start elasticsearch.service

elasticsearch.service を開始して有効にすると、以下のcurlコマンドでは、次のような出力が得られるはずです。

curl -XGET 'http://localhost:9200/_cluster/health?pretty=true'

{ "cluster_name" : "graylog", "status" : "green", "timed_out" : false, "number_of_nodes" : 1, "number_of_data_nodes" : 1, "active_primary_shards" : 1, "active_shards" : 1, "relocating_shards" : 0, "initializing_shards" : 0, "unassigned_shards" : 0, "delayed_unassigned_shards" : 0, "number_of_pending_tasks" : 0, "number_of_in_flight_fetch" : 0, "task_max_waiting_in_queue_millis" : 0, "active_shards_percent_as_number" : 100.0 } 

MongoDB のインストール

Centos 7/Rhel 7 ではデフォルトでまだ利用できないため、MongoDB リポジトリ ファイルに以下のエントリを含む MongoDB リポジトリを追加する必要があります。

 # vi /etc/yum.repos.d/mongodb-org-3.2.repo

[mongodb-org-3.2]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.2/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-3.2.asc

MongoDB パッケージをインストールします。

# yum install mongodb-org -y

mongod.service を起動して有効にします。

# chkconfig --add mongod
# systemctl daemon-reload
# systemctl enable mongod.service
# systemctl start mongod.service

Grylog サーバーのインストールと構成

すべての前提条件が完了して確認されたら。 Graylog サーバーを構成してインストールします。最新のオープンソース バージョンの Graylog サーバーは、Web サイトからダウンロードできます。

# rpm -Uvh https://packages.graylog2.org/repo/packages/graylog-2.2-repository_latest.rpm

Graylog サーバーをインストールします。

# yum install graylog-server -y 

以下のコマンドを使用して秘密鍵を生成します。

# pwgen -N 1 -s 96
D4bqf7doK2zVjFOie043Gk3NgVV1548R7imGV74MHUJa08xvwlNxWvroGjBlQd1mtAYThbym3UNUVFhMY9Wu3CFyKmd35WW

rootユーザーのハッシュパスワードを設定します。 Graylog Web インターフェイスでのサインアップ中にこのパスワードを使用することに注意してください。

# echo -n YourPassword | sha256sum
e7cf3ef4f17c3999a94f2c6f612e8a888e5b1026878e4e19398b23bd38ec221a

ここで、root パスワードと生成されたキーをファイル server.conf に入力します。他の必須パラメータも追加します。

# vi /etc/graylog/server/server.conf

password_secret = D4bqf7doK2zVjFOie043Gk3NgVV1548R7imGV74MHUJa08xvwlNxWvroGjBlQd1mtAYThbym3UNUVFhMY9Wu3CFyKmd35WWZ
root_password_sha2 = e7cf3ef4f17c3999a94f2c6f612e8a888e5b1026878e4e19398b23bd38ec221a
root_email = [email 
root_timezone=UTC
elasticsearch_discovery_zen_ping_unicast_hosts = <your-server-ip-address>:9300
elasticsearch_shards=1
script.inline: false
script.indexed: false
script.file: false

Graylog Web インターフェイスにアクセスするには、これら 2 つのパラメータを指定した値とともに同じファイルに入力します。 Graylog Web インターフェイスは、Web ブラウザ上の TCP ポート 12900 と 9000 をリッスンします。

rest_listen_uri = http://192.168.1.200:12900/
web_listen_uri = http://192.168.1.200:9000/
# chkconfig --add graylog-server
# systemctl daemon-reload
# systemctl enable graylog-server.service
# systemctl start graylog-server.service

ファイアウォールポートの構成

前に説明したように、Web インターフェイスの目的で構成ファイル内のいくつかのポートについて言及しました。これらのポートはファイアウォールを使用して管理しています。以下は、これらの TCP ポートをファイアウォール設定に永続的に追加する手順です。以下のコマンドを実行してポートを管理してください。

# firewall-cmd --permanent --zone=public --add-port=9000/tcp
# firewall-cmd --permanent --zone=public --add-port=12900/tcp
# firewall-cmd --permanent --zone=public --add-port=1514/tcp

ファイアウォールにポートを追加した後、行った変更を反映するために、忘れずに以下のコマンドを実行してください。

# firewall-cmd --reload

selinux ポリシーを管理するには、policycoreutils-python packag をインストールします。

# yum install policycoreutils-python -y

以下のコマンドは、Web インターフェースにアクセスできるネットワークがあることを確認します。

# setsebool -P httpd_can_network_connect 1

semanage コマンドを使用して、Graylog REST API と Elasticsearch HTTP API を Web インターフェイスに許可します。 semanage コマンド構文を知りたい場合は、semanage マンページを参照してください。

# semanage port -a -t http_port_t -p tcp 9000
# semanage port -a -t http_port_t -p tcp 9200

MongoDB のデフォルト ポートを許可します。

# semanage port -a -t mongod_port_t -p tcp 27017

Graylog Web インターフェイスへのアクセス

Web ブラウザを開いて、URL http://your_ip_address:9000 を入力します。次のページにリダイレクトされます。

Graylog Web インターフェイスにサインインするには、ユーザー名 admin とパスワード – YourPassword (上記のコマンドで説明したように設定しました) を入力します。 Graylog Web インターフェイスのデフォルトのユーザー名とパスワードは「admin」、「admin」です。

それでおしまい。素晴らしいオープンソースの Graylog サーバーのおかげで、アプリケーション/サーバーのログを視覚的に管理できるようになりました。

このチュートリアルがお役に立てば幸いです。ご提案をコメント欄に残してください。

サーヴェシャ ドゥドゥガオンカル著

関連記事: