Graylogは、マシンログを一元的に収集、インデックス作成、分析するのに役立つオープンソースのログ管理ツールです。このガイドは、Ubuntu 18.04 /Ubuntu16.04へのGraylogのインストールに焦点を当てています。
コンポーネント
MongoDB –データベースとして機能し、構成とメタ情報を保存します。
Elasticsearch –ログメッセージを保存し、検索機能を提供します。より多くのメモリを割り当て、ElasticsearchノードにSASまたはSANディスクを使用することをお勧めします。ここで、すべての検索が行われます。
Graylogサーバー –ログパーサー。さまざまな入力からログを収集し、ログを管理するための組み込みのWebインターフェイスに出力を提供します。
前提条件
ご存知のように、ElasticsearchはJavaベースのアプリケーションです。先に進むには、マシンにOpenJDKまたはOracleJDKのいずれかをインストールします。
ここでは、OpenJDK8に行きます。
sudo apt update sudo apt install -y apt-transport-https openjdk-8-jre-headless uuid-runtime pwgen curl dirmngr
Javaのバージョンを確認してください。
java -version
出力:
openjdk version "1.8.0_191" OpenJDK Runtime Environment (build 1.8.0_191-8u191-b12-2ubuntu0.18.04.1-b12) OpenJDK 64-Bit Server VM (build 25.191-b12, mixed mode)
Elasticsearchをインストールする
Elasticsearchは、Graylogの実行を必要とする主要コンポーネントの1つであり、検索サーバーとして機能し、RESTfulWebインターフェイスを使用してリアルタイムの分散検索と分析を提供します。
Elasticsearchは、Graylogサーバーから送信されたすべてのログを保存し、ユーザーが組み込みのWebインターフェイスを介して要求するたびにメッセージを表示します。
GPG署名キーをダウンロードしてインストールします。
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
以下のコマンドを実行してElasticsearchリポジトリを設定します。
echo "deb https://artifacts.elastic.co/packages/6.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-6.x.list
リポジトリキャッシュを更新し、Elasticsearchパッケージをインストールします。
sudo apt update sudo apt install -y elasticsearch
システムの起動時にElasticsearchサービスを自動的に開始するようにします。
sudo systemctl enable elasticsearch
唯一重要なことは、クラスター名を graylogとして設定することです。 。 Elasticsearchの構成ファイルを編集し、それに応じて更新します。
sudo nano /etc/elasticsearch/elasticsearch.yml
以下のようにクラスタ名を設定してください。
cluster.name: graylog
Elasticsearchサービスを開始して、新しい構成を読み取ります。
sudo systemctl restart elasticsearch
Elasticsearchが完全に再起動するまで、少なくとも1分待ちます。 Elastisearchは、HTTPリクエストの処理を9200でリッスンしているはずです。 CURLを使用して応答を確認します。
curl -X GET http://localhost:9200
出力:
クラスタ名が灰色のログとして表示されていることを確認します 。
{ "name" : "bgVbYrc", "cluster_name" : "graylog", "cluster_uuid" : "-wECQlwnSZWftd_XdWSz-g", "version" : { "number" : "6.6.1", "build_flavor" : "default", "build_type" : "deb", "build_hash" : "1fd8f69", "build_date" : "2019-02-13T17:10:04.160291Z", "build_snapshot" : false, "lucene_version" : "7.6.0", "minimum_wire_compatibility_version" : "5.6.0", "minimum_index_compatibility_version" : "5.0.0" }, "tagline" : "You Know, for Search" }
オプション: Elasticsearchクラスターの状態をテストします。
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" : 0, "active_shards" : 0, "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をインストールします
公式WebサイトからMongoDBの最新バージョンをダウンロードしてインストールします。ターミナルに公開鍵をインポートして開始します。
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 9DA31620334BD75D9DCB49F368818C72E52529D4
/etc/apt/sources.list.d/mongodb-org.list
を作成して、mongodbリポジトリを追加します 次のコマンドを使用してファイルを作成します。
### Ubuntu 18.04 ### echo "deb [ arch=amd64 ] https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.0.list ### Ubuntu 16.04 ### echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/4.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.0.list
次のコマンドを使用してMongoDBをインストールします。
sudo apt update sudo apt install -y mongodb-org
MongoDBを起動し、システムの起動時に有効にします。
sudo systemctl start mongod sudo systemctl enable mongod
Graylogをインストールする
Graylogサーバーは、ログメッセージを受け入れて処理し、GraylogWebインターフェイスからのリクエストに対してログメッセージを表示します。
graylog3.xリポジトリをダウンロードしてインストールします。
wget https://packages.graylog2.org/repo/packages/graylog-3.0-repository_latest.deb sudo dpkg -i graylog-3.0-repository_latest.deb
リポジトリキャッシュを更新します。
sudo apt update
次のコマンドを使用してGraylogサーバーをインストールします。
sudo apt install -y graylog-server
グレイログの構成
ユーザーパスワードを保護するには、シークレットを設定する必要があります。同じようにpwgenコマンドを使用します。
pwgen -N 1 -s 96
出力:
fGoTI07CooB6xNy5sdPVSKSuq6QSu2QyWf6G9z3haolgwbERTQ9ZbfbF6hxRYbJMMAlEZX7CXHxJLBkNyfM0420u8aFuZy9M
server.confを編集します グレイログ構成を開始するファイル。
sudo nano /etc/graylog/server/server.conf
以下のように秘密を置いてください。
password_secret = fGoTI07CooB6xNy5sdPVSKSuq6QSu2QyWf6G9z3haolgwbERTQ9ZbfbF6hxRYbJMMAlEZX7CXHxJLBkNyfM0420u8aFuZy9M
次に、rootユーザーのハッシュ(sha256)パスワードを設定します(システムユーザーと混同しないでください。graylogのrootユーザーはadminです)。
Graylog Webインターフェイスにログインするには、このパスワードが必要です。管理者のパスワードは、ウェブインターフェースを使用して変更することはできません。したがって、この変数を編集して設定する必要があります。
yourpasswordを置き換えます あなたの選択で。
echo -n yourpassword | sha256sum
出力:
e3c652f0ba0b4801205814f8b6bc49672c4c74e25b497770bb89b22cdeb4e951
server.confを編集します もう一度ファイルします。
sudo nano /etc/graylog/server/server.conf
ハッシュパスワードを入力します。
root_password_sha2 = e3c652f0ba0b4801205814f8b6bc49672c4c74e25b497770bb89b22cdeb4e951
メールアドレス管理者ユーザーを設定できます。
root_email = "[email protected]"
ルート(管理者)ユーザーのタイムゾーンを設定します。
root_timezone = UTC
以下の変数を定義して、マスターノードを1つだけ設定します。 2番目のGraylogノードを追加する場合は、これをfalseに設定して、2番目のノードをスレーブにします。マスターノードは、スレーブノードが実行しない定期的なタスクを実行するためです。
is_master = true
インデックスごとに保持するログメッセージの数を設定します。大きなインデックスではなく、いくつかの小さなインデックスを使用することをお勧めします。
elasticsearch_max_docs_per_index = 20000000
次のパラメータは、インデックスの総数がこの数に達した場合に古いインデックスが削除されるように定義しています。
elasticsearch_max_number_of_indices = 20
シャード設定は、特定のElasticsearchクラスター内のノードの数に依存します。ノードが1つしかない場合は、1に設定します。
elasticsearch_shards = 1
この設定は、インデックスのレプリカの数を定義します。 Elasticsearchクラスターにノードが1つしかない場合は、それを0に設定します。
elasticsearch_replicas = 0
GraylogWebインターフェースのセットアップ
バージョン2.x以降、WebインターフェイスはGraylogサーバーによって直接提供されています。 server.conf を編集して、GraylogWebインターフェイスを構成します ファイル。
sudo nano /etc/graylog/server/server.conf
以下のエントリを、GraylogWebインターフェイスにアクセスするシステムのIPアドレスで更新します。
http_bind_address = your-server-ip:9000
Graylogサービスを再起動します。
sudo systemctl restart graylog-server
システムの起動時にGraylogサーバーが自動的に起動するようにします。
sudo systemctl enable graylog-server
サーバーの起動ログを確認できます。問題が発生した場合にGraylogのトラブルシューティングを行うと便利です。
sudo tail -f /var/log/graylog-server/server.log
graylog-serverが正常に起動すると、ログファイルに次のメッセージが表示されます。
2019-02-22T10:07:49.398+05:30 INFO [ServerBootstrap] Graylog server up and running.
グレイログにアクセス
これで、Webインターフェイスがポート9000でリッスンし、ブラウザで
を指定します。 http://ip.add.re.ss:9000ユーザー名adminでログインします およびroot_password_sha2で構成したパスワード on server.conf 。
ログインすると、スタートページが表示されます。
システムをクリックします>>概要 グレイログサーバーのステータスを知るため。
グレイログ入力の作成
グレイログ入力は、外部ソース、つまり、syslogまたは任意のログシステムからログを受信するように構成する必要があります。
この例では、ポート番号UDP 1514でsyslogからログを受信するための入力を設定します。特権ポートの1つ(1024未満のTCP / UDPポート番号)で入力を試行し始めると、アクセスが拒否されたことがわかります。グレイログログのエラー。
したがって、ポート1514で開始する入力を作成します。
システムをクリックします>>入力>> Syslog UDPを選択します 次に、[新しい入力の起動]をクリックします。
値を入力して、[保存]をクリックします。
ノード: グレイログノードを選択
タイトル: 入力に名前を付けます
バインドアドレス: 0.0.0.0(デフォルトのままにします)
ポート: 1514
Rsyslogの構成
入力を作成したら、Rsyslogを構成するか、システムログをGraylogサーバーに転送します。
Rsyslog構成ファイルを編集します。
sudo nano /etc/rsyslog.conf
UDP 1514でログを送信するための一般的なRsyslog構成は、次のようになります。
*.info;mail.none;authpriv.none;cron.none @192.168.1.10:1514
Rsyslogサービスを再起動して、ログを送信します。
systemctl restart rsyslog
Graylogを使用してログを表示する
数分待ちます。イベントが生成されたら、クライアントマシンからログメッセージの受信を開始する必要があります。
次のスクリーンショットは、Graylog(Graylogコンソール)が受信したログを示しています。>> Searc h 。
結論
これで、Graylog3.0がUbuntu18.04 / Ubuntu 16.04に正常にインストールされ、外部ソースからRsyslogログを受信するようにGraylogが構成されました。さらに読むと、NginxまたはApacheをリバースプロキシとして構成し、GraylogWebインターフェイスにHTTPSを設定してみることができます。