序章

Graylog は、強力なオープンソースのログ管理プラットフォームです。 Syslogプロトコルを使用して送信されることが多いサーバーログから重要なデータを集約して抽出します。 また、Webインターフェイスでログを検索して視覚化することもできます。

このチュートリアルでは、Ubuntu 16.04にGraylogをインストールして構成し、システムログを受け取る簡単な入力を設定します。

前提条件

このチュートリアルを開始する前に、次のものが必要です。

  • 少なくとも2GBのRAM、プライベートネットワークが有効で、root以外のユーザーがいる1つのUbuntu16.04サーバー。 これは、 Ubuntu16.04でのサーバーの初期設定に従って設定できます。
  • Oracle JDK 8がインストールされました。これは、このJavaインストール記事の「OracleJDKのインストール」セクションに従って実行できます。
  • Elasticsearch2.x。Elasticsearchインストールチュートリアルのステップ1と2に従ってインストールできます。 特定のバージョンのGraylogは、特定のバージョンのElasticearchでのみ機能します。 たとえば、Graylog2.xはElasticsearch5.xでは機能しません。 正確なバージョンについては、このGreylog-Elasticsearchバージョン比較表を参照してください。 このチュートリアルでは、Elasticsearch2.4.4とGraylog2.2を使用します。
  • MongoDBチュートリアルに従ってインストールできるMongoDB。

ステップ1—Elasticsearchを設定する

クラスター名がGraylog構成ファイルで設定されたものと一致するように、Elasticsearch構成ファイルを変更する必要があります。 簡単にするために、Elasticsearchクラスター名をデフォルトのGraylog名に設定します。 graylog. 好きなように設定できますが、その変更を反映するように、Graylog構成ファイルを更新してください。

エディターでElasticsearch構成ファイルを開きます。

  1. sudo nano /etc/elasticsearch/elasticsearch.yml

次の行を見つけます。

/etc/elasticsearch/elasticsearch.yml
cluster.name: <CURRENT CLUSTER NAME>

変更 cluster.name の値 graylog:

/etc/elasticsearch/elasticsearch.yml
cluster.name: graylog

ファイルを保存して、エディターを終了します。

構成ファイルを変更したため、変更を有効にするにはサービスを再起動する必要があります。

  1. sudo systemctl restart elasticsearch

Elasticsearchを設定したので、Graylogのインストールに移りましょう。

ステップ2—Graylogをインストールする

このステップでは、Graylogサーバーをインストールします。

まず、Graylogリポジトリ構成を含むパッケージファイルをダウンロードします。 Graylogダウンロードページにアクセスして、現在のバージョン番号を確認してください。 バージョンを使用します 2.2 このチュートリアルでは。

  1. wget https://packages.graylog2.org/repo/packages/graylog-2.2-repository_latest.deb

次に、リポジトリ構成をからインストールします .deb パッケージファイル、再び置き換えます 2.2 ダウンロードしたバージョンで。

  1. sudo dpkg -i graylog-2.2-repository_latest.deb

リポジトリ構成が更新されたので、パッケージの新しいリストをフェッチする必要があります。 次のコマンドを実行します。

  1. sudo apt-get update

次に、 graylog-server パッケージ:

  1. sudo apt-get install graylog-server

最後に、次のコマンドを使用して、システムの起動時に自動的にGraylogを起動します。

  1. sudo systemctl enable graylog-server.service

これでGraylogは正常にインストールされましたが、まだ開始されていません。 起動する前に構成する必要があります。

ステップ3—グレイログの設定

Elasticsearchが構成され、Graylogがインストールされたので、使用する前に、デフォルトのGraylog構成ファイルのいくつかの設定を変更する必要があります。 グレイログの設定ファイルは次の場所にあります。 /etc/graylog/server/server.conf デフォルトでは。

まず、設定する必要があります password_secret 価値。 Graylogはこの値を使用して、保存されているユーザーパスワードを保護します。 ランダムに生成された128文字の値を使用します。

我々は使用するだろう pwgen パスワードを生成するには、まだインストールされていない場合はインストールします。

  1. sudo apt install pwgen

パスワードを生成し、Graylog構成ファイルに配置します。 を使用します sed 注入するプログラム password_secret 値をGraylog構成ファイルに追加します。 このように、値をコピーして貼り付ける必要はありません。 次のコマンドを実行してシークレットを作成し、ファイルに保存します。

  1. sudo -E sed -i -e "s/password_secret =.*/password_secret = $(pwgen -s 128 1)/" /etc/graylog/server/server.conf

使用の詳細については sedこのDigitalOceansedチュートリアルを参照してください。

次に、を設定する必要があります root_password_sha2 価値。 これは、希望するパスワードのSHA-256ハッシュです。 もう一度、使用します sed を使用してSHA-256ハッシュを手動で生成する必要がないように、Graylog構成ファイルを変更するコマンド shasum それを構成ファイルに貼り付けます。

このコマンドを実行しますが、置き換えます password 以下に、希望するデフォルトの管理者パスワードを入力します。

注:コマンドには先頭にスペースがあり、パスワードがBashの履歴にプレーンテキストとして保存されないようになっています。

  1. sudo sed -i -e "s/root_password_sha2 =.*/root_password_sha2 = $(echo -n 'password' | shasum -a 256 | cut -d' ' -f1)/" /etc/graylog/server/server.conf

次に、構成ファイルにさらにいくつかの変更を加える必要があります。 エディターでGraylog構成ファイルを開きます。

  1. sudo nano /etc/graylog/server/server.conf

次の行を見つけて変更し、コメントを外して置き換えます graylog_public_ip サーバーのパブリックIPを使用します。 これは、IPアドレスまたは完全修飾ドメイン名にすることができます。

/etc/graylog/server/server.conf

...
rest_listen_uri = http://your_server_ip_or_domain:9000/api/

...
web_listen_uri = http://your_server_ip_or_domain:9000/

...

ファイルを保存して、エディターを終了します。

構成ファイルを変更したので、再起動(または開始)する必要があります graylog-server サービス。 restartコマンドは、サーバーが現在停止している場合でもサーバーを起動します。

  1. sudo systemctl restart graylog-server

次に、サーバーのステータスを確認します。

  1. sudo systemctl status graylog-server

出力は次のようになります。

● graylog-server.service - Graylog server
   Loaded: loaded (/usr/lib/systemd/system/graylog-server.service; enabled; vendor preset: enabled)
   Active: active (running) since Fri 2017-03-03 20:10:34 PST; 1 months 7 days ago
     Docs: http://docs.graylog.org/
 Main PID: 1300 (graylog-server)
    Tasks: 191 (limit: 9830)
   Memory: 1.2G
      CPU: 14h 57min 21.475s
   CGroup: /system.slice/graylog-server.service
           ├─1300 /bin/sh /usr/share/graylog-server/bin/graylog-server
           └─1388 /usr/bin/java -Xms1g -Xmx1g -XX:NewRatio=1 -server -XX:+ResizeTLAB -XX:+UseConcMarkSweepGC -XX:+CMSCon

君は見るべきだ active ステータスについて。

システムが実行されていないことを出力が報告する場合は、チェックしてください /var/log/syslog エラーの場合。 ElasticsearchをインストールしたときにJavaをインストールし、ステップ3ですべての値を変更したことを確認してください。 次に、Graylogサービスを再起動します。

でファイアウォールを構成した場合 ufw、TCPポートのファイアウォール例外を追加します 9000 したがって、Webインターフェイスにアクセスできます。

  1. sudo ufw allow 9000/tcp

グレイログが実行されると、アクセスできるようになります http://your_server_ip:9000 あなたのウェブブラウザで。 再起動後、最大5分待たなければならない場合があります graylog-server Webインターフェイスが開始する前。 さらに、MongoDBが実行されていることを確認します。

Graylogが正しく実行されたので、ログの処理に進むことができます。

ステップ4—入力を作成する

ログを受信するためにGraylogに新しい入力を追加しましょう。 入力は、Graylogに、リッスンするポートと、ログを受信するときに使用するプロトコルを指示します。 一般的に使用されるロギングプロトコルであるSyslogUDP入力を追加します。

あなたが訪問するとき http://your_server_ip:9000 ブラウザにログインページが表示されます。 使用する admin ユーザー名に、ステップ3で入力したパスワードをパスワードに使用します。

ログインすると、次の画像のような「GettingStarted」というタイトルのページが表示されます。

入力ページを表示するには、ナビゲーションバーのシステムドロップダウンをクリックし、入力を選択します。

次に、 SelectInputというテキストを含むドロップダウンボックスが表示されます。 このドロップダウンからSyslogUDP を選択し、新しい入力の起動ボタンをクリックします。

フォーム付きのモーダルが表示されます。 次の詳細を入力して、入力を作成します。

  1. ノードには、サーバーを選択します。 リスト内の唯一のアイテムである必要があります。
  2. Title には、次のような適切なタイトルを入力します。 Linux Server Logs.
  3. バインドアドレスには、サーバーのプライベートIPを使用します。 外部サーバーからもログを収集できるようにする場合(Syslogは認証をサポートしていないため、お勧めしません)、次のように設定できます。 0.0.0.0 (すべてのインターフェース)。
  4. ポートに次のように入力します 8514. ポートを使用していることに注意してください 8514 このチュートリアルでは、ポートが 0 終えた 1024 rootユーザーのみが使用できます。 上記の任意のポート番号を使用できます 1024 他のサービスと競合しない限り、問題ないはずです。

保存をクリックします。 次の図に示すように、ローカル入力リストが更新され、新しい入力が表示されます。

入力が作成されたので、いくつかのログをGraylogに送信できます。

ステップ5—ログをGraylogに送信するようにサーバーを構成する

入力が構成され、ポートでリッスンしています 8514、ただし、入力にはまだデータを送信していないため、結果は表示されません。 rsyslog はログの転送に使用されるソフトウェアユーティリティであり、Ubuntuにプリインストールされているため、ログをGraylogに送信するように構成します。 このチュートリアルでは、Graylogを実行しているUbuntuサーバーを構成して、作成した入力にシステムログを送信しますが、他のサーバーでもこれらの手順を実行できます。

他のサーバーからGraylogにデータを送信する場合は、UDPポートのファイアウォール例外を追加する必要があります 8514.

  1. sudo ufw allow 8514/udp

新しいものを作成して開きます rsyslog エディターの構成ファイル。

  1. sudo nano /etc/rsyslog.d/60-graylog.conf

次の行をファイルに追加して、置き換えます your_server_private_ip GraylogサーバーのプライベートIPを使用します。

/etc/rsyslog.d/60-graylog.conf
*.* @your_server_private_ip:8514;RSYSLOG_SyslogProtocol23Format

エディターを保存して終了します。

再起動します rsyslog 変更が有効になるようにサービスします。

  1. sudo systemctl restart rsyslog

ログを送信するサーバーごとに、これらの手順を繰り返します。

これで、Webインターフェイスでログを表示できるようになります。 ナビゲーションバーのソースタブをクリックして、ソースのグラフを表示します。 次のようになります。

ナビゲーションバーの検索タブをクリックして、最新のログの概要を表示することもできます。

検索の詳細については、Graylog検索ドキュメントをご覧ください。

結論

これで、他のサーバーからログを収集できる入力ソースを備えた、動作するGraylogサーバーができました。

次に、ダッシュボード、アラート、およびストリームの設定を検討することをお勧めします。 ダッシュボードは、ログの概要を提供します。 ストリームはメッセージを分類し、アラートで監視できます。 Graylogのより高度な機能の構成の詳細については、Graylogのドキュメントを参照してください。