Linux でログを管理するための Graylog サーバーのインストールと構成
オープンソースの Graylog サーバーを使用すると、さまざまなソースからログを収集し、Web インターフェイスでログを視覚化できます。 Graylog サーバーを構成する方法を学びます。
大量のログの管理について考えたことはありますか?ある時点で、システム管理者は誰もがそうしていると思います。解決策は非常に簡単です。「Graylog サーバーを構成する」です。
前回のチュートリアルでは、Buildah を使用して Linux コンテナーを管理する方法を説明しました。このチュートリアルでは、膨大な量のログ (ビッグ データ) を管理するために Graylog サーバーを構成する方法を説明します。
グレイログとは何ですか?
Graylog は、ログ管理のためのオープンソース プラットフォームです。これにより、さまざまな宛先からログを収集して集約できます。また、Web インターフェイスでログを視覚化することもできます。
Graylog サーバーをインストールして構成するには、次のような前提条件があります。
-
openJDKのインストール
MongoDB のインストール
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 サーバーのおかげで、アプリケーション/サーバーのログを視覚的に管理できるようになりました。
このチュートリアルがお役に立てば幸いです。ご提案をコメント欄に残してください。
サーヴェシャ ドゥドゥガオンカル著