ウェブサイト検索

Ubuntu 14.04にElasticsearch、Logstash、およびKibana(ELKスタック)をインストールする方法


Ubuntu 14.04を使用していませんか?別のバージョンやディストリビューションを選択してください。

紹介

このチュートリアルでは、Ubuntu 14.04にElasticsearch ELKスタックをインストールする手順について説明します。具体的には、Elasticsearch 2.2.x、Logstash 2.2.x、Kibana 4.5.xを扱います。また、Filebeat 1.1.xを使用して、システムのsyslogを中央に集約して視覚化する方法も示します。Logstashは、ログを収集、解析、保存するためのオープンソースツールです。Kibanaは、Logstashがインデックスしたログを検索して表示するために使用できるウェブインターフェースです。これらのツールは、ログを保存するために使用されるElasticsearchを基にしています。

集中型ログは、サーバーやアプリケーションの問題を特定する際に非常に便利です。すべてのログを一か所で検索できるためです。また、特定の時間枠内におけるログを相関させることで、複数のサーバーにまたがる問題を特定することもできるため、非常に役立ちます。

Logstashを使用してあらゆるタイプのログを収集することは可能ですが、このチュートリアルの範囲はsyslogの収集に制限します。

私たちの目標

このチュートリアルの目標は、複数のサーバーのsyslogを収集するためにLogstashを設定し、収集したログを可視化するためにKibanaを設定することです。

私たちのELKスタックのセットアップには4つの主要なコンポーネントがあります:

  • Logstash: ログを処理するLogstashのサーバーコンポーネント
  • Elasticsearch: すべてのログを保存します
  • Kibana: Nginxを介してプロキシされるログを検索し視覚化するためのWebインターフェース
  • Filebeat: ログをLogstashに送信するクライアントサーバーにインストールされているFilebeatは、lumberjackネットワークプロトコルを使用してLogstashと通信するログ配送エージェントです。

最初の3つのコンポーネントを1つのサーバーにインストールします。このサーバーをELKサーバーと呼びます。ログを収集したいすべてのクライアントサーバーにはFilebeatがインストールされます。これらのクライアントサーバーを合わせてクライアントサーバーと呼びます。

前提条件

このチュートリアルを完了させるには、Ubuntu 14.04 VPSへのルートアクセスが必要です。それを設定するための手順は、こちらにあります(ステップ3と4):Ubuntu 14.04での初期サーバー設定。

もしCentOSを使用したい場合は、このチュートリアルを確認してください:CentOS 7にELKをインストールする方法。

ELKサーバーに必要なCPU、RAM、ストレージの量は、収集するログの量によって異なります。このチュートリアルでは、ELKサーバーのために以下の仕様を持つVPSを使用します:

  • OS: Ubuntu 14.04
  • RAM: 4GB
  • CPU: 2

あなたのELKサーバーに加えて、ログを収集するためにいくつかの他のサーバーも必要になるでしょう。

ELKサーバーのセットアップを始めましょう!

Java 8をインストールする

ElasticsearchとLogstashはJavaを必要とするので、今それをインストールします。Elasticsearchが推奨するため、Oracle Java 8の最近のバージョンをインストールします。ただし、OpenJDKでも問題なく動作するはずですので、その方法を選択しても構いません。

Oracle Java PPAをaptに追加します:

  1. sudo add-apt-repository -y ppa:webupd8team/java

aptパッケージデータベースを更新します:

  1. sudo apt-get update

このコマンドを使って最新の安定版Oracle Java 8をインストールします(表示されたライセンス契約に同意してください):

  1. sudo apt-get -y install oracle-java8-installer

Java 8がインストールされたので、ElasticSearchをインストールしましょう。

Elasticsearchをインストールする

ElasticsearchはElasticのパッケージソースリストを追加することで、パッケージマネージャーを使ってインストールできます。

次のコマンドを実行して、Elasticsearchの公開GPGキーをaptにインポートします:

  1. wget -qO - https://packages.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -

プロンプトがただ宙ぶらりんになっている場合、それはおそらくユーザーのパスワードを待っている状態です(sudo コマンドの認証用)。この場合、パスワードを入力してください。

Elasticsearchのソースリストを作成してください:

  1. echo "deb http://packages.elastic.co/elasticsearch/2.x/debian stable main" | sudo tee -a /etc/apt/sources.list.d/elasticsearch-2.x.list

aptパッケージデータベースを更新します:

  1. sudo apt-get update

このコマンドでElasticsearchをインストールします:

  1. sudo apt-get -y install elasticsearch

Elasticsearchがインストールされました。設定を編集しましょう:

  1. sudo vi /etc/elasticsearch/elasticsearch.yml

Elasticsearchインスタンス(ポート9200)への外部アクセスを制限したいので、外部の人があなたのデータを読み取ったり、HTTP APIを通じてElasticsearchクラスタをシャットダウンしたりできないようにしてください。network.hostを指定している行を見つけてコメントを外し、その値を「localhost」に置き換えて、次のようにしてください:

network.host: localhost

elasticsearch.ymlを保存して終了します。

Elasticsearchを今すぐ起動します:

  1. sudo service elasticsearch restart

次に、Elasticsearchをブート時に起動するために以下のコマンドを実行します:

  1. sudo update-rc.d elasticsearch defaults 95 10

Elasticsearchが稼働しているので、Kibanaをインストールしましょう。

Kibanaをインストールする

KibanaはElasticのパッケージソースリストを追加することで、パッケージマネージャーを使ってインストールできます。

Kibanaのソースリストを作成します:

  1. echo "deb http://packages.elastic.co/kibana/4.5/debian stable main" | sudo tee -a /etc/apt/sources.list.d/kibana-4.5.x.list

aptパッケージデータベースを更新します:

  1. sudo apt-get update

このコマンドでKibanaをインストールします:

  1. sudo apt-get -y install kibana

Kibanaがインストールされました。

Kibanaの設定ファイルを編集のために開いてください。

  1. sudo vi /opt/kibana/config/kibana.yml

Kibanaの設定ファイルで、server.hostを指定している行を見つけ、IPアドレス(デフォルトでは「0.0.0.0」)を「localhost」に置き換えてください:

server.host: "localhost"

保存して終了します。この設定により、Kibanaはlocalhostからのみアクセス可能になります。これは、外部アクセスを許可するためにNginxリバースプロキシを使用するので問題ありません。

Kibanaサービスを有効にし、開始します:

  1. sudo update-rc.d kibana defaults 96 9
  2. sudo service kibana start

Kibanaのウェブインターフェースを使用する前に、リバースプロキシを設定する必要があります。それでは、Nginxを使って今すぐそれを行いましょう。

Nginxをインストールする

Kibanaをlocalhostでリッスンするように設定したため、外部からアクセスできるようにリバースプロキシを設定する必要があります。この目的のためにNginxを使用します。

注: 既に使用したい Nginx インスタンスがある場合は、それを使用してください。 Kiban も Nginx サーバーからアクセス可能になるように設定してください(/opt/kibana/config/kibana.yml の host 値を Kibana サーバーのプライベート IP アドレスまたはホスト名に変更することをお勧めします)。 また、SSL/TLS を有効にすることも推奨されています。

NginxとApache2-utilsをインストールするにはaptを使用します:

  1. sudo apt-get install nginx apache2-utils

htpasswdを使用して、KibanaのWebインターフェースにアクセスできる「kibanaadmin」という管理ユーザー(別の名前を使用してください)を作成してください。

  1. sudo htpasswd -c /etc/nginx/htpasswd.users kibanaadmin

プロンプトにパスワードを入力してください。このログイン情報を忘れないでください。Kibanaのウェブインターフェースにアクセスするために必要です。

さあ、お好みのエディタでNginxのデフォルトサーバーブロックを開きましょう。viを使います。

  1. sudo vi /etc/nginx/sites-available/default

ファイルの内容を削除し、次のコードブロックをファイルに貼り付けてください。server_nameをあなたのサーバーの名前に合わせて更新することを忘れないでください:

  1. server {
  2. listen 80;
  3. server_name example.com;
  4. auth_basic "Restricted Access";
  5. auth_basic_user_file /etc/nginx/htpasswd.users;
  6. location / {
  7. proxy_pass http://localhost:5601;
  8. proxy_http_version 1.1;
  9. proxy_set_header Upgrade $http_upgrade;
  10. proxy_set_header Connection 'upgrade';
  11. proxy_set_header Host $host;
  12. proxy_cache_bypass $http_upgrade;
  13. }
  14. }

保存して終了します。これにより、NginxはサーバーのHTTPトラフィックを、localhost:5601でリッスンしているKibanaアプリケーションに転送するように設定されます。また、Nginxは以前に作成したhtpasswd.usersファイルを使用し、基本認証を要求します。

今、Nginxを再起動して変更を適用します:

  1. sudo service nginx restart

Kibanaは、FQDNまたはELKサーバーの公開IPアドレス(例:http://elk-server-public-ip/)を介してアクセス可能です。ウェブブラウザでそこに移動し、“kibanaadmin ”の認証情報を入力すると、インデックスパターンの設定を求めるKibanaのウェルカムページが表示されるはずです。それについては、他のすべてのコンポーネントをインストールした後に戻ってきましょう。

Logstashをインストールする

LogstashパッケージはElasticsearchと同じリポジトリから入手可能で、すでにその公開鍵をインストールしているので、Logstashのソースリストを作成しましょう。

  1. echo 'deb http://packages.elastic.co/logstash/2.2/debian stable main' | sudo tee /etc/apt/sources.list.d/logstash-2.2.x.list

aptパッケージデータベースを更新します:

  1. sudo apt-get update

このコマンドでLogstashをインストールします:

  1. sudo apt-get install logstash

Logstashはインストールされていますが、まだ設定されていません。

SSL証明書を生成する

クライアントサーバーからELKサーバーにログを送信するためにFilebeatを使用するので、SSL証明書とキーのペアを作成する必要があります。証明書は、FilebeatがELKサーバーのアイデンティティを確認するために使用されます。次のコマンドを使用して、証明書と秘密鍵を保存するディレクトリを作成します:

  1. sudo mkdir -p /etc/pki/tls/certs
  2. sudo mkdir /etc/pki/tls/private

これで、SSL証明書を生成するための2つのオプションがあります。クライアントサーバーがELKサーバーのIPアドレスを解決できるDNS設定がある場合は、オプション2を使用してください。そうでない場合は、オプション1を使用してIPアドレスを利用することができます。

オプション1: IPアドレス

DNSが設定されていない場合—あなたがログを収集するサーバーがELKサーバーのIPアドレスを解決できるようにするためには—生成するSSL証明書のsubjectAltName(SAN)フィールドにELKサーバーのプライベートIPアドレスを追加する必要があります。そのためには、OpenSSLの設定ファイルを開いてください:

  1. sudo vi /etc/ssl/openssl.cnf

ファイル内の[ v3_ca ]セクションを見つけ、その下にこの行を追加します(ELKサーバーのプライベートIPアドレスを置き換えてください):

subjectAltName = IP: ELK_server_private_IP

保存して終了します。

次に、次のコマンドを使用して、適切な場所(/etc/pki/tls/)にSSL証明書と秘密鍵を生成します:

  1. cd /etc/pki/tls
  2. sudo openssl req -config /etc/ssl/openssl.cnf -x509 -days 3650 -batch -nodes -newkey rsa:2048 -keyout private/logstash-forwarder.key -out certs/logstash-forwarder.crt

logstash-forwarder.crtファイルは、Logstashにログを送信するすべてのサーバーにコピーされますが、それは後で行います。まずはLogstashの設定を完了させましょう。このオプションを選択した場合は、オプション2をスキップしてLogstashの設定に進んでください。

オプション2: 完全修飾ドメイン名 (DNS)

プライベートネットワークでDNSの設定がある場合、ELKサーバーのプライベートIPアドレスを含むAレコードを作成する必要があります。このドメイン名は、次のコマンドでSSL証明書を生成する際に使用されます。別の方法として、サーバーのパブリックIPアドレスを指すレコードを使用することもできます。収集するログからサーバー(ELKサーバーとして解決可能なもの)がこのドメイン名を解決できることを確認してください。

次のコマンドを使用して、適切な場所(/etc/pki/tls/...)にSSL証明書と秘密鍵を生成します(ELKサーバーのFQDNに置き換えてください):

  1. cd /etc/pki/tls; sudo openssl req -subj '/CN=ELK_server_fqdn/' -x509 -days 3650 -batch -nodes -newkey rsa:2048 -keyout private/logstash-forwarder.key -out certs/logstash-forwarder.crt

logstash-forwarder.crt ファイルは、Logstash にログを送信するすべてのサーバーにコピーされますが、それは少し後で行います。まずは、Logstash の設定を完了させましょう。

Logstashを設定する

Logstashの設定ファイルはJSON形式であり、/etc/logstash/conf.dにあります。設定は、inputs、filters、outputsの3つのセクションで構成されています。

「02-beats-input.conf」という設定ファイルを作成し、「filebeat」入力を設定しましょう:

  1. sudo vi /etc/logstash/conf.d/02-beats-input.conf

次の入力設定を挿入してください:

  1. input {
  2. beats {
  3. port => 5044
  4. ssl => true
  5. ssl_certificate => "/etc/pki/tls/certs/logstash-forwarder.crt"
  6. ssl_key => "/etc/pki/tls/private/logstash-forwarder.key"
  7. }
  8. }

保存して終了します。これは、tcpポート5044でリッスンするbeats入力を指定し、以前に作成したSSL証明書と秘密鍵を使用します。

では、10-syslog-filter.confという名前の設定ファイルを作成し、ここにsyslogメッセージのフィルターを追加します:

  1. sudo vi /etc/logstash/conf.d/10-syslog-filter.conf

次のsyslog フィルター構成を挿入してください:

  1. filter {
  2. if [type] == "syslog" {
  3. grok {
  4. match => { "message" => "%{SYSLOGTIMESTAMP:syslog_timestamp} %{SYSLOGHOST:syslog_hostname} %{DATA:syslog_program}(?:\[%{POSINT:syslog_pid}\])?: %{GREEDYDATA:syslog_message}" }
  5. add_field => [ "received_at", "%{@timestamp}" ]
  6. add_field => [ "received_from", "%{host}" ]
  7. }
  8. syslog_pri { }
  9. date {
  10. match => [ "syslog_timestamp", "MMM d HH:mm:ss", "MMM dd HH:mm:ss" ]
  11. }
  12. }
  13. }

保存して終了します。このフィルターは「syslog」タイプ(Filebeatによってラベル付けされた)のログを探し、受信したsyslogログをパースして構造化し、クエリ可能にするためにgrokを使用しようとします。

最後に、30-elasticsearch-output.conf という設定ファイルを作成します:

  1. sudo vi /etc/logstash/conf.d/30-elasticsearch-output.conf

次の出力設定を挿入してください:

  1. output {
  2. elasticsearch {
  3. hosts => ["localhost:9200"]
  4. sniffing => true
  5. manage_template => false
  6. index => "%{[@metadata][beat]}-%{+YYYY.MM.dd}"
  7. document_type => "%{[@metadata][type]}"
  8. }
  9. }

保存して終了します。この出力は基本的にLogstashを構成して、localhost:9200で実行されているElasticsearchにbeatsデータを保存します。このデータは使用されるbeat(ここではfilebeatと呼ばれる)の名前を付けたインデックスに格納されます。

他のアプリケーションでFilebeat入力を使用するためにフィルターを追加したい場合は、ファイルを入力と出力の設定の間(つまり、02-と30-の間)にソートされるように名前を付けることを忘れないでください。

このコマンドでLogstashの設定をテストしてください。

  1. sudo service logstash configtest

構文エラーがなければ、Configuration OKが表示されるはずです。そうでない場合は、エラー出力を読んでLogstashの設定に何が問題か確認してください。

Logstashを再起動し、有効にして、設定変更を適用してください。

  1. sudo service logstash restart
  2. sudo update-rc.d logstash defaults 96 9

次に、サンプルのKibanaダッシュボードを読み込みます。

Kibanaダッシュボードを読み込む

Elasticは、Kibanaを始めるために役立ついくつかのサンプルKibanaダッシュボードとBeatsインデックスパターンを提供しています。このチュートリアルではダッシュボードを使用しませんが、含まれているFilebeatインデックスパターンを使用できるように、ダッシュボードをロードします。

まず、サンプルダッシュボードのアーカイブをホームディレクトリにダウンロードします:

  1. cd ~
  2. curl -L -O https://download.elastic.co/beats/dashboards/beats-dashboards-1.1.0.zip

unzip パッケージをこのコマンドでインストールします:

  1. sudo apt-get -y install unzip

次に、アーカイブの内容を抽出します:

  1. unzip beats-dashboards-*.zip

そして、これらのコマンドを使用してサンプルダッシュボード、ビジュアライゼーション、BeatsインデックスパターンをElasticsearchに読み込みます。

  1. cd beats-dashboards-*
  2. ./load.sh

これらは私たちがちょうど読み込んだインデックスパターンです:

  • [packetbeat-]YYYY年MM月DD日
  • [topbeat-]YYYY年MM月DD日
  • [filebeat-]YYYY年MM月DD日
  • [winlogbeat-]YYYY年MM月DD日

Kibanaの使用を開始するとき、デフォルトとしてFilebeatインデックスパターンを選択します。

ElasticsearchにFilebeatインデックステンプレートをロードする

私たちはFilebeatを使用してログをElasticsearchに送信する計画を立てているので、Filebeatのインデックステンプレートをロードすべきです。このインデックステンプレートは、Elasticsearchが受信したFilebeatフィールドを知的に分析するように構成します。

まず、Filebeat インデックステンプレートをホームディレクトリにダウンロードしてください:

  1. cd ~
  2. curl -O https://gist.githubusercontent.com/thisismitch/3429023e8438cc25b86c/raw/d8c479e2a1adcea8b1fe86570e42abab0f10f364/filebeat-index-template.json

次に、このコマンドでテンプレートを読み込んでください。

  1. curl -XPUT 'http://localhost:9200/_template/filebeat?pretty' -d@filebeat-index-template.json

テンプレートが正しく読み込まれた場合は、このようなメッセージが表示されるはずです:

Output:
{ "acknowledged" : true }

私たちのELKサーバーがFilebeatデータを受信する準備が整ったので、各クライアントサーバーにFilebeatを設定することに移りましょう。

Filebeatを設定する(クライアントサーバーを追加する)

ELKサーバーのLogstashにログを送信したい各UbuntuまたはDebianサーバーに対して、これらの手順を実行してください。Red Hat系Linuxディストリビューション(例:RHEL、CentOSなど)にFilebeatをインストールする手順については、このチュートリアルのCentOS版の「Filebeatのセットアップ(クライアントサーバーの追加)」セクションを参照してください。

SSL証明書をコピーする

ELKサーバーで、前提条件チュートリアルで作成したSSL証明書をクライアントサーバーにコピーします(クライアントサーバーのアドレスと自分のログイン情報を置き換えてください):

  1. scp /etc/pki/tls/certs/logstash-forwarder.crt user@client_server_private_address:/tmp

ログインの認証情報を提供した後、証明書のコピーが成功したことを確認してください。これはクライアントサーバーとELKサーバー間の通信に必要です。

さて、あなたのクライアントサーバーで、ELKサーバーのSSL証明書を適切な場所(/etc/pki/tls/certs)にコピーしてください:

  1. sudo mkdir -p /etc/pki/tls/certs
  2. sudo cp /tmp/logstash-forwarder.crt /etc/pki/tls/certs/

これからTopbeatパッケージをインストールします。

Filebeatパッケージをインストールする

クライアントサーバーで、Beatsソースリストを作成します:

  1. echo "deb https://packages.elastic.co/beats/apt stable main" | sudo tee -a /etc/apt/sources.list.d/beats.list

それはまた、このコマンドでインストールできるElasticsearchと同じGPGキーを使用しています:

  1. wget -qO - https://packages.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -

次に、Filebeatパッケージをインストールします:

  1. sudo apt-get update
  2. sudo apt-get install filebeat

Filebeatはインストールされていますが、まだ設定されていません。

Filebeatを設定する

これから、FilebeatをELKサーバーのLogstashに接続するように設定します。このセクションでは、Filebeatに付属するサンプル設定ファイルの修正手順を説明します。手順が完了すると、次のようなファイルができあがるはずです。

クライアントサーバーでFilebeatの設定ファイルを作成および編集します:

  1. sudo vi /etc/filebeat/filebeat.yml

注意: Filebeatの設定ファイルはYAML形式であり、インデントが非常に重要です! これらの指示に示されているスペースの数を必ず使用してください。

ファイルの上部近くには、prospectors セクションが表示されるので、どのログファイルを送信し、どのように処理するかを指定するプロスペクターを定義できます。各プロスペクターは- 文字で示されます。

既存のプロスペクターを修正して、syslog と auth.log を Logstash に送信するようにします。paths の下で、- /var/log/*.log ファイルのコメントを外します。これにより、Filebeat がそのディレクトリ内のすべての.log を Logstash に送信するのを防ぎます。その後、syslog と auth.log の新しいエントリを追加します。完了すると、次のようになります:

...
      paths:
        - /var/log/auth.log
        - /var/log/syslog
#        - /var/log/*.log
...

次に、document_type:を指定している行を見つけ、それをコメント解除して値を「syslog」に変更してください。修正後は次のようになります:

...
      document_type: syslog
...

これは、このプロスペクターのログがsyslog型であることを指定しています(これは私たちのLogstashフィルターが探している型です)。

ELKサーバーに他のファイルを送信したり、Filebeatがログを処理する方法を変更したい場合は、気軽にプロスペクターエントリを修正または追加してください。

次に、outputセクションの下で、elasticsearch:と書かれた行を見つけます。これはElasticsearch出力セクションを示しています(私たちは使用しません)。Elasticsearch出力セクション全体を削除するかコメントアウトしてください(#logstash:と書かれた行まで)。

コメントアウトされたLogstashの出力セクションを見つけてください。そのセクションは#logstash:という行で示されています。#を削除して、コメントを解除してください。このセクションでは、hosts: ["localhost:5044"]の行をコメント解除してください。localhostをELKサーバーのプライベートIPアドレス(またはそのオプションにした場合はホスト名)に変更します:

  ### Logstash as output
  logstash:
    # The Logstash hosts
    hosts: ["ELK_server_private_IP:5044"]

これは、FilebeatをELKサーバーのポート5044でLogstashに接続するように設定します(これは以前にLogstash入力のために指定したポートです)。

hosts エントリの直下に、同じインデントで、この行を追加してください:

    bulk_max_size: 1024

次に、tls セクションを見つけて、それをコメント解除します。次に、certificate_authorities を指定する行のコメントを解除し、その値を ["/etc/pki/tls/certs/logstash-forwarder.crt"] に変更します。次のようになるはずです:

...
    tls:
      # List of root certificates for HTTPS server verifications
      certificate_authorities: ["/etc/pki/tls/certs/logstash-forwarder.crt"]

これは、ELKサーバーで作成したSSL証明書を使用するようにFilebeatを設定します。

保存して終了します。

今、変更を適用するためにFilebeatを再起動してください。

  1. sudo service filebeat restart
  2. sudo update-rc.d filebeat defaults 95 10

再度、Filebeatの設定が正しいかどうかわからない場合は、この例のFilebeat設定と比較してください。

今、FilebeatはあなたのELKサーバー上のsyslogとauth.logをLogstashに送信しています!ログを収集したい他のすべてのサーバーについてこのセクションを繰り返してください。

Filebeatのインストールをテストする

ELKスタックが正しく設定されている場合、Filebeat(クライアントサーバー上)は、ログをELKサーバー上のLogstashに送信する必要があります。Logstashは、Filebeatのデータを日付スタンプ付きインデックスfilebeat-YYYY.MM.DDにElasticsearchにロードする必要があります。

あなたのELKサーバーで、このコマンドを使ってFilebeatインデックスをクエリすることで、Elasticsearchが実際にデータを受け取っていることを確認してください:

  1. curl -XGET 'http://localhost:9200/filebeat-*/_search?pretty'

これと同じような出力がたくさん表示されるはずです:

Sample Output:
... { "_index" : "filebeat-2016.01.29", "_type" : "log", "_id" : "AVKO98yuaHvsHQLa53HE", "_score" : 1.0, "_source":{"message":"Feb 3 14:34:00 rails sshd[963]: Server listening on :: port 22.","@version":"1","@timestamp":"2016-01-29T19:59:09.145Z","beat":{"hostname":"topbeat-u-03","name":"topbeat-u-03"},"count":1,"fields":null,"input_type":"log","offset":70,"source":"/var/log/auth.log","type":"log","host":"topbeat-u-03"} } ...

出力が総ヒット数0を示す場合、Elasticsearchは検索したインデックスの下にログをロードしていないため、エラーを確認するためにセットアップを見直す必要があります。期待される出力を受け取った場合は、次のステップに進んでください。

Kibanaに接続する

すべてのログを収集したいサーバーにFilebeatのセットアップが完了したら、以前にインストールしたウェブインターフェースであるKibanaを見てみましょう。

ウェブブラウザで、ELKサーバーのFQDNまたはパブリックIPアドレスに移動します。“kibanaadmin”の認証情報を入力すると、デフォルトのインデックスパターンを設定するように促すページが表示されるはずです。

左側のインデックスパターンメニューから[filebeat]-YYY.MM.DDを選択し、次にスター(デフォルトインデックスに設定)ボタンをクリックして、Filebeatインデックスをデフォルトに設定してください。

今、上部のナビゲーションバーにあるDiscoverリンクをクリックしてください。デフォルトでは、これにより過去15分間のすべてのログデータが表示されます。ログイベントのヒストグラムが表示され、下にログメッセージが表示されるはずです。

今のところ、クライアントサーバーからsyslogを収集しているだけなので、そこにはあまり多くの情報はありません。ここでは、ログを検索したりブラウズしたりできます。また、ダッシュボードをカスタマイズすることもできます。

次のことを試してみてください:

  • 「root」を検索して、誰かがあなたのサーバーにrootとしてログインしようとしているかどうかを確認してください。
  • host: "ホスト名"を検索します。
  • ヒストグラム上の領域や上のメニューから選択することで、時間枠を変更してください
  • ヒストグラムの下にあるメッセージをクリックして、データがどのようにフィルタリングされているかを確認してください。

Kibana にはグラフ作成やフィルタリングなど、多くの他の機能がありますので、ぜひ自由に探ってみてください!

結論

ElasticsearchとLogstashを通じてsyslogが集中化され、Kibanaで可視化できるようになったので、重要なログの中央管理を始めるには良いスタートを切れています。ほとんどどんな種類のログやインデックスデータもLogstashに送信できることを忘れないでくださいが、grokを使ってデータを解析し構造化することで、さらに有用になります。

新しいELKスタックを改善するためには、Logstashを使用して他のログを収集およびフィルタリングし、Kibanaダッシュボードを作成することを検討するべきです。また、ELKスタックと一緒にTopbeatを使用してシステムメトリクスを収集することも検討すると良いでしょう。これらのトピックは、シリーズの他のチュートリアルで取り扱われています。

頑張って!

関連記事: