Elasticsearch、Fluentd、Kibana:オープンソースのログ検索と可視化

Fluentdの記事

概要

Elasticsearch、Fluentd、およびKibana(EFK)を使用すると、ログデータを収集、インデックス付け、検索、および視覚化できます。 これはプロプライエタリなソフトウェアSplunkに代わる優れた代替手段であり、無料で開始できますが、データ量が増えると有料ライセンスが必要になります。

このチュートリアルでは、3つのオープンソースソフトウェアコンポーネント(http://www.elasticsearch.org [Elasticsearch]、https://www.fluentd.org/ [Fluentd]、http:// www)を使用してログソリューションを構築する方法を示します。 kibana.org [Kibana]。

前提条件

  • * Ubuntu 14.04 *のドロップレット

  • sudo特権を持つユーザー

Elasticsearchのインストールと構成

Javaを入手する

ElasticsearchにはJavaが必要なので、最初のステップはJavaをインストールすることです。

sudo apt-get update
sudo apt-get install openjdk-7-jre-headless --yes

Javaが実際にインストールされたことを確認してください。 Run:

java -version

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

java version "1.7.0_55"
OpenJDK Runtime Environment (IcedTea 2.4.7) (7u55-2.4.7-1ubuntu1)
OpenJDK 64-Bit Server VM (build 24.51-b03, mixed mode)

Elasticsearchの入手

次に、Elasticsearchのdebパッケージを次のようにダウンロードしてインストールします。

sudo wget https://download.elasticsearch.org/elasticsearch/elasticsearch/elasticsearch-1.2.2.deb
sudo dpkg -i elasticsearch-1.2.2.deb

Elasticsearchの保護

バージョン1.2まで、Elasticsearchの動的スクリプト機能はデフォルトで有効になっていました。 このチュートリアルでは、パブリックインターネットからアクセスできるようにKibanaダッシュボードを設定するため、 `+ / etc / elasticsearch / elasticsearch.yml +`の最後に次の行を追加して、動的スクリプトを無効にします。

script.disable_dynamic: true

Elasticsearchの開始

次のコマンドでElasticsearchの実行を開始します。

sudo service elasticsearch start

Kibanaのインストールと構成

キバナの入手

ホームディレクトリに移動します。

cd ~

次のようにKibanaをダウンロードします。

curl -L https://download.elasticsearch.org/kibana/kibana/kibana-3.1.0.tar.gz | tar xzf -
sudo cp -r kibana-3.1.0 /usr/share/

Kibanaの構成

Kibanaはデフォルトのポート9200ではなくポート80を使用してElasticsearchと通信するため、Kibanaの `+ config.js +`を更新する必要があります。

`+ / usr / share / kibana-3.1.0 / config.js +`を開き、次の行を探します。

elasticsearch: "http://"+window.location.hostname+":",

次の行に置き換えます。

elasticsearch: "http://"+window.location.hostname+":",

Nginx(プロキシサーバー)のインストールと構成

Nginxをプロキシサーバーとして使用して、パブリックインターネットから(基本認証を使用して)ダッシュボードにアクセスできるようにします。

次のようにNginxをインストールします。

sudo apt-get install nginx --yes

Kibanaは適切なデフォルトのnginx.confを提供しますが、これを少し変更します。

まず、次のように構成ファイルをインストールします。

wget https://assets.digitalocean.com/articles/fluentd/nginx.conf
sudo cp nginx.conf /etc/nginx/sites-available/default

注:元のファイルはhttps://github.com/elasticsearch/kibana/raw/master/sample/nginx.conf[Kibana GitHub repository]からのものです。

次に、次のように `+ / etc / nginx / sites-available / default +`を編集します(変更は赤でマークされています)。

#
# Nginx proxy for Elasticsearch + Kibana
#
# In this setup, we are password protecting the saving of dashboards. You may
# wish to extend the password protection to all paths.
#
# Even though these paths are being called as the result of an ajax request, the
# browser will prompt for a username/password on the first request
#
# If you use this, you'll want to point config.js at http://FQDN:80/ instead of
# http://FQDN:9200
#
server {
listen                *:80 ;
server_name           ;
access_log            ;
location / {
  root  /usr/share/;
  index  index.html  index.htm;
}

最後に、次のようにnginxを再起動します:

$ sudo service nginx restart

これで、お気に入りのブラウザを使用して、サーバーのIPアドレスまたはドメインで汎用Kibanaダッシュボードを表示できるようになります。

image:https://assets.digitalocean.com/articles/fluentd/kibana_welcome.png [Kibana Welcome]

Fluentdのインストールと構成

最後に、https://www.fluentd.org [Fluentd]をインストールしましょう。 http://www.treasuredata.com [Treasure Data]が構築および保守する、Fluentdのパッケージバージョンであるtd-agentを使用します。

td-agentパッケージを介してFluentdをインストールする

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

wget http://packages.treasuredata.com/2/ubuntu/trusty/pool/contrib/t/td-agent/td-agent_2.0.4-0_amd64.deb
sudo dpkg -i td-agent_2.0.4-0_amd64.deb

プラグインのインストール

いくつかのプラグインが必要です。

  1. out_elasticsearch:このプラグインにより、FluentdはElasticsearchにデータをストリーミングできます。

  2. outrecordreformer:このプラグインにより、データをより便利な形式に処理できます。

次のコマンドは両方のプラグインをインストールします(最初のapt-getはout_elasticsearch用です: `+ make `と ` libcurl +`が必要です)

sudo apt-get install make libcurl4-gnutls-dev --yes
sudo /opt/td-agent/embedded/bin/fluent-gem install fluent-plugin-elasticsearch
sudo /opt/td-agent/embedded/bin/fluent-gem install fluent-plugin-record-reformer

次に、syslogメッセージをリッスンしてElasticsearchに送信するようにFluentdを構成します。 `+ / etc / td-agent / td-agent.conf +`を開き、ファイルの先頭に次の行を追加します。

<source>
type syslog
port 5140
tag  system
</source>
<match system.*.*>
type record_reformer
tag elasticsearch
facility ${tag_parts[1]}
severity ${tag_parts[2]}
</match>
<match elasticsearch>
type copy
<store>
  type stdout
</store>
<store>
type elasticsearch
logstash_format true
flush_interval 5s #debug
</store>
</match>

Fluentdの開始

次のコマンドでFluentdを起動します。

sudo service td-agent start

Fluentdへのrsyslogトラフィックの転送

Ubuntu 14.04にはrsyslogdが付属しています。 Fluentdがリッスンするポート(この例ではポート5140)にsyslogイベントを転送するように再構成する必要があります。

`+ / etc / rsyslog.conf `を開き( ` sudo +`が必要です)、次の行を先頭に追加します

*.* @127.0.0.1:5140

エディターを保存して終了したら、次のようにrsyslogdを再起動します。

sudo service rsyslog restart

Kibanaダッシュボードパネルのセットアップ

Kibanaのデフォルトパネルは非常に汎用的なため、カスタマイズすることをお勧めします。 ここでは、2つの方法を示します。

方法1:テンプレートを使用する

Fluentdチームは、この設定でデフォルトの設定よりも機能する代替Kibana設定を提供します。 この代替構成を使用するには、次のコマンドを実行します。

wget -O default.json https://assets.digitalocean.com/articles/fluentd/default.json
sudo cp default.json /usr/share/kibana-3.1.0/app/dashboards/default.json

注:元の設定ファイルは、作成者のhttps://bit.ly/fluentd-kibana[GitHub gist]からのものです。

サーバーのURLでKibanaダッシュボードのホームページを更新する場合、Sysbの重大度と機能、および表の最近のログ行ごとにヒストグラムを表示するようにKibanaを構成する必要があります。

方法2:手動で構成する

サーバーのIPアドレスまたはドメインに移動して、Kibanaダッシュボードを表示します。

image:https://assets.digitalocean.com/articles/fluentd/kibana_welcome.png [Kibana Welcome]

スターターテンプレートはいくつかありますが、ウェルカムテキストの下部に表示されている* Blank Dashboard:自分で設定するのは問題ありません*という空のテンプレートを選択しましょう。

image:https://assets.digitalocean.com/articles/fluentd/kibana_blank.png [Kibana Blank Template]

次に、ダッシュボードの右側にある[* + ADD A ROW ]ボタンをクリックします。 新しい行の設定画面(*行*は1つ以上のパネルで構成されます)が表示されます。 タイトルを入力し、 Create Row ボタンを押し、続いて Save *を押します。 これにより行が作成されます。

image:https://assets.digitalocean.com/articles/fluentd/kibana_row.png [Kibana Row]

空行が作成されると、Kibanaは左側に*空の行にパネルを追加*というプロンプトを表示します。 このボタンをクリックしてください。 構成画面に移動して、新しいパネルを追加します。 ドロップダウンメニューから[ヒストグラム]を選択します。 ヒストグラムはタイムチャートです。詳細については、http://www.elasticsearch.org/guide/en/kibana/current/_histogram.html#_histogram [Kibanaのドキュメント]をご覧ください。

画像:https://assets.digitalocean.com/articles/fluentd/kibana_histogram.png [キバナヒストグラム]

新しいヒストグラム用に設定する多くのパラメーターがありますが、下にスクロールして*保存*ボタンを押すだけです。 これにより、新しいパネルが作成されます。

image:https://assets.digitalocean.com/articles/fluentd/kibana_histogram_details.png [Kibana Histogram Details]

さらに詳しい情報

Kibanaの構成の詳細については、http://www.elasticsearch.org/guide/en/kibana/current/ [Kibana documentation page]を参照してください。