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
プラグインのインストール
いくつかのプラグインが必要です。
-
out_elasticsearch:このプラグインにより、FluentdはElasticsearchにデータをストリーミングできます。
-
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]を参照してください。