Elasticsearch、Logstash、Kibana(ELK Stack)をUbuntu 14.04にインストールする方法

前書き

このチュートリアルでは、Ubuntu 14.04、つまりElasticsearch 2.2.x、Logstash 2.2.x、およびKibana 4.5.xへのElasticsearch ELKスタックのインストールについて説明します。 また、Filebeat 1.1.xを使用して、中央の場所にあるシステムのsyslogを収集して視覚化するように構成する方法も示します。 Logstashは、将来の使用に備えてログを収集、解析、保存するためのオープンソースツールです。 Kibanaは、Logstashがインデックス付けしたログを検索および表示するために使用できるWebインターフェイスです。 これらのツールは両方とも、ログの保存に使用されるElasticsearchに基づいています。

一元化されたログは、サーバーまたはアプリケーションの問題を特定するときに非常に便利です。1つの場所ですべてのログを検索できるからです。 また、特定の時間枠でログを相互に関連付けることにより、複数のサーバーにまたがる問題を特定できるため便利です。

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

私たちの目標

チュートリアルの目的は、Logstashをセットアップして複数のサーバーのsyslogを収集し、収集されたログを視覚化するためにKibanaをセットアップすることです。

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

  • * Logstash *:受信ログを処理するLogstashのサーバーコンポーネント

  • * Elasticsearch *:すべてのログを保存します

  • * Kibana *:ログを検索および視覚化するためのWebインターフェイス。Nginxを介してプロキシされます。

  • * Filebeat *:Logstashにログを送信するクライアントサーバーにインストールされ、Filebeatは_lumberjack_ネットワークプロトコルを使用してLogstashと通信するログ配布エージェントとして機能します

画像:https://assets.digitalocean.com/articles/elk/elk-infrastructure.png [ELKインフラストラクチャ]

最初の3つのコンポーネントを単一のサーバーにインストールします。これを* ELKサーバー*と呼びます。 Filebeatは、ログを収集するすべてのクライアントサーバーにインストールされます。これをまとめて*クライアントサーバー*と呼びます。

前提条件

このチュートリアルを完了するには、Ubuntu 14.04 VPSへのルートアクセスが必要です。 これを設定する手順は、こちら(手順3および4)で確認できます:https://www.digitalocean.com/community/tutorials/initial-server-setup-with-ubuntu-14-04[Ubuntu 14.04での初期サーバーセットアップ]。

代わりにCentOSを使用する場合は、次のチュートリアルをご覧ください。https://www.digitalocean.com/community/tutorials/how-to-install-elasticsearch-logstash-and-kibana-elk-stack-on-centos- 7 [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で正常に動作するはずです。

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

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

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

sudo apt-get update

次のコマンドを使用して、Oracle Java 8の最新の安定バージョンをインストールします(ポップアップ表示されるライセンス契約に同意します)。

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

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

Elasticsearchをインストールする

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

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

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

プロンプトがそこにぶら下がっている場合は、おそらくユーザーのパスワードを待っています( `+ sudo +`コマンドを許可するため)。 その場合は、パスワードを入力してください。

Elasticsearchソースリストを作成します。

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パッケージデータベースを更新します。

sudo apt-get update

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

sudo apt-get -y install elasticsearch

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

sudo vi /etc/elasticsearch/elasticsearch.yml

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

elasticsearch.ymlの抜粋(更新)

network.host: localhost

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

次に、Elasticsearchを開始します。

sudo service elasticsearch restart

次に、次のコマンドを実行して、起動時にElasticsearchを開始します。

sudo update-rc.d elasticsearch defaults 95 10

Elasticsearchが実行されたら、Kibanaをインストールしましょう。

Kibanaをインストールする

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

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

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パッケージデータベースを更新します。

sudo apt-get update

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

sudo apt-get -y install kibana

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

Kibana構成ファイルを編集用に開きます。

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

Kibana構成ファイルで、「+ server.host +」を指定する行を見つけ、IPアドレス(デフォルトでは「0.0.0.0」)を「localhost」に置き換えます。

kibana.ymlの抜粋(更新)

server.host: "localhost"

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

次に、Kibanaサービスを有効にして開始します。

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

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

Nginxをインストールする

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

*注意:*使用したいNginxインスタンスが既にある場合は、代わりに使用してください。 Nginxサーバーから到達できるようにKibanaを設定してください(おそらく、+ / opt / kibana / config / kibana.yml + + host + `の値をKibanaサーバーのプライベートIPアドレスに変更するか、ホスト名)。 また、SSL / TLSを有効にすることをお勧めします。

aptを使用してNginxとApache2-utilsをインストールします。

sudo apt-get install nginx apache2-utils

htpasswdを使用して、Kibana Webインターフェイスにアクセスできる「kibanaadmin」と呼ばれる管理ユーザー(別の名前を使用する必要があります)を作成します。

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

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

ここで、お気に入りのエディターでNginxのデフォルトサーバーブロックを開きます。 viを使用します。

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

ファイルの内容を削除し、次のコードブロックをファイルに貼り付けます。 サーバーの名前に合わせて `+ server_name +`を更新してください:

/ etc / nginx / sites-available / default

server {
   listen 80;

   server_name ;

   auth_basic "Restricted Access";
   auth_basic_user_file /etc/nginx/htpasswd.users;

   location / {
       proxy_pass http://localhost:5601;
       proxy_http_version 1.1;
       proxy_set_header Upgrade $http_upgrade;
       proxy_set_header Connection 'upgrade';
       proxy_set_header Host $host;
       proxy_cache_bypass $http_upgrade;
   }
}

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

Nginxを再起動して、変更を有効にします。

sudo service nginx restart

Kibanaは、FQDNまたはELKサーバーのパブリックIPアドレスを介してアクセスできるようになりました。 http:///。 Webブラウザで「kibanaadmin」の資格情報を入力すると、インデックスパターンを設定するよう求めるKibanaのようこそページが表示されます。 他のすべてのコンポーネントをインストールした後、後で戻りましょう。

Logstashをインストールする

LogstashパッケージはElasticsearchと同じリポジトリから入手でき、その公開キーは既にインストールされているため、Logstashソースリストを作成しましょう。

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パッケージデータベースを更新します。

sudo apt-get update

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

sudo apt-get install logstash

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

SSL証明書を生成する

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

sudo mkdir -p /etc/pki/tls/certs
sudo mkdir /etc/pki/tls/private

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

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

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

sudo vi /etc/ssl/openssl.cnf

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

openssl.cnfの抜粋(更新)

subjectAltName = IP:

保存して終了。

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

cd /etc/pki/tls
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:FQDN(DNS)

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

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

cd /etc/pki/tls; sudo openssl req -subj '/CN=/' -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にあります。 構成は、入力、フィルター、および出力の3つのセクションで構成されています。

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

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

次の* input *構成を挿入します。

02-beats-input.conf

input {
 beats {
   port => 5044
   ssl => true
   ssl_certificate => "/etc/pki/tls/certs/logstash-forwarder.crt"
   ssl_key => "/etc/pki/tls/private/logstash-forwarder.key"
 }
}

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

次に、「+ 10-syslog-filter.conf +」という設定ファイルを作成します。ここで、syslogメッセージ用のフィルターを追加します。

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

次のsyslog * filter *設定を挿入します。

10-syslog-filter.conf

filter {
 if [type] == "syslog" {
   grok {
     match => { "message" => "%{SYSLOGTIMESTAMP:syslog_timestamp} %{SYSLOGHOST:syslog_hostname} %{DATA:syslog_program}(?:\[%{POSINT:syslog_pid}\])?: %{GREEDYDATA:syslog_message}" }
     add_field => [ "received_at", "%{@timestamp}" ]
     add_field => [ "received_from", "%{host}" ]
   }
   syslog_pri { }
   date {
     match => [ "syslog_timestamp", "MMM  d HH:mm:ss", "MMM dd HH:mm:ss" ]
   }
 }
}

保存して終了します。 このフィルターは「syslog」タイプ(Filebeatによる)としてラベル付けされたログを検索し、 `+ grok +`を使用して着信syslogを解析し、構造化およびクエリ可能にします。

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

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

次の* output *構成を挿入します。

/etc/logstash/conf.d/30-elasticsearch-output.conf

output {
 elasticsearch {
   hosts => ["localhost:9200"]
   sniffing => true
   manage_template => false
   index => "%{[@metadata][beat]}-%{+YYYY.MM.dd}"
   document_type => "%{[@metadata][type]}"
 }
}

保存して終了。 この出力は基本的に、使用するビート(この場合はfilebeat)にちなんで名付けられたインデックスで、 `+ localhost:9200 +`で実行されているElasticsearchにビートデータを格納するようにLogstashを設定します。

Filebeat入力を使用する他のアプリケーションにフィルターを追加する場合は、必ずファイルに名前を付けて、入力構成と出力構成の間で並べ替えるようにしてください(つまり、 02から30の間)。

次のコマンドでLogstash構成をテストします。

sudo service logstash configtest

構文エラーがない場合は、「+ Configuration OK +」と表示されます。 そうでない場合は、エラー出力を読んで、Logstash構成の何が問題なのかを確認してください。

Logstashを再起動して有効にし、構成の変更を有効にします。

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

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

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

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

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

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

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

sudo apt-get -y install unzip

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

unzip beats-dashboards-*.zip

次のコマンドを使用して、サンプルダッシュボード、視覚化、およびBeatsインデックスパターンをElasticsearchにロードします。

cd beats-dashboards-*
./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インデックステンプレートをロードする必要があります。 インデックステンプレートは、着信するFilebeatフィールドをインテリジェントな方法で分析するようにElasticsearchを構成します。

最初に、Filebeatインデックステンプレートをホームディレクトリにダウンロードします。

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

次に、次のコマンドでテンプレートをロードします。

curl -XPUT 'http://localhost:9200/_template/filebeat?pretty' [email protected]

テンプレートが適切にロードされると、次のようなメッセージが表示されます。

Output:{
 "acknowledged" : true
}

ELKサーバーでFilebeatデータを受信する準備ができたので、次に各クライアントサーバーでFilebeatをセットアップすることに進みます。

Filebeatのセットアップ(クライアントサーバーの追加)

ELKサーバーのLogstashにログを送信するUbuntuまたはDebianサーバーごとにこれらの手順を実行します。 Red HatベースのLinuxディストリビューションにFilebeatをインストールする手順(例: RHEL、CentOSなど)、https://www.digitalocean.com/community/tutorials/how-to-install-elasticsearch-logstash-and-kibana-elk-stack-on-centos-7#setを参照してください-このチュートリアルのCentOSバリエーションの-up-filebeat-(add-client-servers)[Filebeatのセットアップ(クライアントサーバーの追加)セクション]。

SSL証明書をコピー

  • ELKサーバー*で、前提条件のチュートリアルで作成したSSL証明書を*クライアントサーバー*にコピーします(クライアントサーバーのアドレスと独自のログインを置き換えます)。

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

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

次に、*クライアントサーバー*で、ELKサーバーのSSL証明書を適切な場所(/ etc / pki / tls / certs)にコピーします。

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

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

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

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

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

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

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

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

sudo apt-get update
sudo apt-get install filebeat

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

Filebeatを構成する

次に、ELKサーバー上のLogstashに接続するようにFilebeatを構成します。 このセクションでは、Filebeatに付属のサンプル構成ファイルを変更する手順を説明します。 手順を完了すると、https://gist.githubusercontent.com/thisismitch/3429023e8438cc25b86c/raw/de660ffdd3decacdcaf88109e5683e1eef75c01f/filebeat.yml-ubuntu [this]のようなファイルが作成されます。

  • Client Server *で、Filebeat構成ファイルを作成および編集します。

sudo vi /etc/filebeat/filebeat.yml

ファイルの上部近くに、 `+ prospectors `セクションが表示されます。このセクションでは、出荷するログファイルとその処理方法を指定する*プロスペクター*を定義できます。 各プロスペクターは「-+」文字で示されます。

既存のプロスペクターを変更して、 `+ syslog `と ` auth.log `をLogstashに送信します。 ` paths `で、 `-/ var / log / *。log `ファイルをコメントアウトします。 これにより、Filebeatはそのディレクトリ内のすべての ` .log `をLogstashに送信できなくなります。 次に、「 syslog」と「+ auth.log」の新しいエントリを追加します。 完了すると、次のようになります。

filebeat.ymlの抜粋1/5

...
     paths:


       - /var/log/*.log
...

次に、 `+ document_type:+`を指定する行を見つけてコメントを外し、値を「syslog」に変更します。 変更後は次のようになります。

filebeat.ymlの抜粋2/5

...
     document_type:
...

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

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

次に、 `+ output `セクションの下で、 ` elasticsearch:`という行を探します。これはElasticsearch出力セクション(これは使用しません)を示しています。 * Elasticsearch出力セクション全体を削除またはコメントアウトします( `#logstash:+`と書かれている行まで)。

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

filebeat.ymlの抜粋3/5

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

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

`+ hosts +`エントリの直下に、同じインデントでこの行を追加します:

filebeat.ymlの抜粋4/5

   bulk_max_size: 1024

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

filebeat.ymlの抜粋5 of 5

...

     # List of root certificates for HTTPS server verifications

これにより、ELKサーバーで作成したSSL証明書を使用するようにFilebeatが構成されます。

保存して終了します。

Filebeatを再起動して、変更を適切な場所に配置します。

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

繰り返しますが、Filebeatの構成が正しいかどうかわからない場合は、このhttps://gist.githubusercontent.com/thisismitch/3429023e8438cc25b86c/raw/de660ffdd3decacdcaf88109e5683e1eef75c01f/filebeat.yml-ubuntu[Filebeatの構成例]と比較してください。

これで、FilebeatはELKサーバーのLogstashに「+ syslog 」と「 auth.log +」を送信しています! ログを収集する他のすべてのサーバーについて、このセクションを繰り返します。

Filebeatインストールのテスト

ELKスタックが適切にセットアップされている場合、Filebeat(クライアントサーバー上)はELKサーバーのLogstashにログを送信する必要があります。 Logstashは、日付が刻印されたインデックス `+ filebeat-YYYY.MM.DD +`でFilebeatデータをElasticsearchにロードする必要があります。

  • ELKサーバー*で、次のコマンドでFilebeatインデックスを照会することにより、Elasticsearchが実際にデータを受信して​​いることを確認します。

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のセットアップが終了したら、先ほどインストールしたWebインターフェースであるKibanaを見てみましょう。

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

image:https://assets.digitalocean.com/articles/elk/1-filebeat-index.gif [インデックスの作成]

先に進み、[インデックスパターン]メニュー(左側)から* [filebeat] -YYY.MM.DD を選択し、[*スター(デフォルトインデックスとして設定)]ボタンをクリックして、Filebeatインデックスをデフォルトとして設定します。

次に、上部ナビゲーションバーの[検出]リンクをクリックします。 デフォルトでは、過去15分間のすべてのログデータが表示されます。 以下のログメッセージとともに、ログイベントのヒストグラムが表示されます。

image:https://assets.digitalocean.com/articles/elk/2-filebeat-discover.png [ページを発見]

クライアントサーバーからsyslogを収集しているだけなので、現時点ではそれほど多くはありません。 ここで、ログを検索および参照できます。 ダッシュボードをカスタマイズすることもできます。

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

  • 「ルート」を検索して、誰かがルートとしてサーバーにログインしようとしているかどうかを確認します

  • 特定のホスト名を検索( `+ host:" "+`を検索)

  • ヒストグラム上の領域を選択するか、上のメニューから時間枠を変更します

  • ヒストグラムの下のメッセージをクリックして、データがどのようにフィルタリングされているかを確認します

Kibanaには、グラフ作成やフィルタリングなど、他にも多くの機能がありますので、お気軽にご確認ください!

結論

syslogがElasticsearchとLogstashによって一元化され、Kibanaでそれらを視覚化できるようになったので、重要なログをすべて一元化することから始めましょう。 あらゆる種類のログまたはインデックス付きデータをLogstashに送信できることを忘れないでください。ただし、grokを使用して解析および構造化すると、データはさらに便利になります。

新しいELKスタックを改善するには、Logstashとhttps://www.digitalocean.com/community/tutorials/how-to-use-kibana-dashboards-and-visualizations[creating Kibanaダッシュボード]。 https://www.digitalocean.com/community/tutorials/how-to-gather-infrastructure-metrics-with-topbeat-and-elk-on-ubuntu-14-04 [システムメトリックを使用して収集することもできますトップビート] ELKスタック。 これらのトピックはすべて、このシリーズの他のチュートリアルで説明されています。

がんばろう!

Related