試してみた: サーバ/インフラエンジニア養成読本 ログ収集~可視化編【特集1】

f:id:syonx:20140814144354j:plain

夏休みにやることリストの第二弾「Fluentd」です。
これをとりあえず全部読むだけ読んだので、次は実際に試してみました。今日は 特集1 だけです。

ちなみに僕はサーバ/インフラエンジニアではありません。
「Fluentd っていうなんか便利そうなのが流行っている」「ロゴがカッコいい」なんて理由で分野を問わず試したくなる、フルスタックファッションエンジニアです。



検証環境

[ 1 ] Vagrant のアップデート

[ 2 ] Vagrantfile の設置

  • 「適当なディレクトリ」って言われても困っちゃう。僕はここにおいたよ。
    • C:¥my¥vagrantbox¥demo¥Vagrantfile

[ 3 ] Ubuntu 14.04 LTS のインストール

C:¥my¥vagrantbox¥demo>vagrant up

10分くらいかかった。
続いて SSH ログイン。

C:¥my¥vagrantbox¥demo>vagrant ssh
Welcome to Ubuntu 14.04.1 LTS (GNU/Linux 3.13.0-33-generic x86_64)
 :
 :
Last login: Thu Aug 14 08:07:01 2014 from 10.0.2.2
vagrant@vagrant-ubuntu-trusty-64:~$

[ 4 ] Elasticsearch のインストール

openjdk-7-jre-headless のインストール

$ sudo apt-get install openjdk-7-jre-headless -y

Elasticsearch 本体のダウンロード

$ wget https://download.elasticsearch.org/elasticsearch/elasticsearch/elasticsearch-1.3.2.deb

$ sudo dpkg -i elasticsearch-1.3.2.deb

$ sudo service elasticsearch start

[ 5 ] Fluentd のインストール

現在試しているのは Ubuntu 14.04 LTS だけど、td-agent ではまだサポートされていない。
そのため "Ubuntu 12.04 LTS / Precise" のものを利用しているようだ。

$ wget http://packages.treasure-data.com/debian/RPM-GPG-KEY-td-agent
$ sudo apt-key add RPM-GPG-KEY-td-agent
$ curl -L http://toolbelt.treasuredata.com/sh/install-ubuntu-precise.sh | sh
$ sudo apt-get install libcurl4-openssl-dev -y
$ sudo /usr/lib/fluent/ruby/bin/fluent-gem install fluent-plugin-elasticsearch

[ 6 ] Fluentd の設定

おっといきなりなんたらディレクティブの設定を変えましょうときた。
どこのどの設定ファイルをいじればいいんだろう……ここかな?上の公式ドキュメントに書いてある。

/etc/td-agent/td-agent.conf

## built-in TCP input
## @see http://docs.fluentd.org/articles/in_forward
<source>
  type forward
  port 24224    #追加
</source>

[ 7 ] Elasticsearch への転送設定

/etc/td-agent/td-agent.conf の一番下に追加した。

<match log.**>
  type elasticsearch
  logstash_format true
  logstash_prefix demo-log
  hosts localhost:9200
  type_name application-log
  buffer_type memory
  buffer_chunk_limit 1m
  buffer_queue_limit 128
  flush_interval 2s
  retry_limit 17
</match>

[ 8 ] Kibana を使ってみる

$ sudo apt-get install apache2 -y
$ sudo chown vagrant:vagrant -R /var/www
$ cd /var/www/html
$ wget https://download.elasticsearch.org/kibana/kibana/kibana-3.1.0.tar.gz
$ tar xvf kibana-3.1.0.tar.gz
$ ln -s kibana-3.1.0 kibana

ホストOS (Windows 7) のブラウザから Kibana にアクセス

はいエラー

f:id:syonx:20140814194750p:plain

「[ 5 ] Fluentd のインストール」で設定したときに再起動したから Elasticsearch サービスが止まっていました。起動して再試行します。

$ sudo service elasticsearch start

f:id:syonx:20140814195321p:plain

(๑˃̵ᴗ˂̵)و ̑̑

[ 9 ] サンプルアプリ「技評コーヒー」のインストール

$ sudo apt-get install apache2 build-essential libcurl4-openssl-dev php5 php5-cli git libapache2-mod-php5 php5-mcrypt -y
$ git clone https://github.com/suzuken/gihyo-coffee-sample.git /var/www/html/gihyo-coffee-sample
$ make -C /var/www/html/gihyo-coffee-sample install

f:id:syonx:20140814202207p:plain

真っ白です。幻滅しました…… 技評さんのファンやめます。

困ったときの再起動

$ sudo reboot
$ sudo service elasticsearch start

f:id:syonx:20140814202837p:plain

はいきたー

コーヒーの画像をポチッとな

f:id:syonx:20140814213319p:plain

(°⌓°;)!!

$ sudo service apache2 restart

をやっても変化なし。

Kibana さんの Logstash Dashboard ってのを開いてみてもこんな感じで反応なし。

f:id:syonx:20140814221316p:plain

apt-get のクソ長い記述間違えたかな?とか思って見直したけど合ってるっぽいしインストールログにもエラーっぽいのなかった。
404 だし PHP 動いてないんじゃ?といろいろ試したけど動いてる。PHP のことはよくわからん。

追加情報はないか

記述内容を疑うフェーズに移行。たぶん自分が悪いんだろうけど(´д`)
著者のブログを見つけたけど特に情報はなし。

サンプルアプリのリポジトリを参照。

うーむ。

誰か同じことで引っかかったりしてないかなーとググってみても、引っかかるのは「献本いただきました^^」みたいな記事ばかりで誰も実際に試してはいない模様。もうわかってるからわざわざ手を動かす必要ないんだろうなー。重要なのは考察みたいな部分だしね。

あきらめた

この 特集1 を読み進めたけど、別にこのアプリが動かないと次に進めないわけでもなかった。 各特集は独立しているようなのでさっさと次に移ることにします!

データ収集のプロならこの記事も捕捉してくれそうなのでフォローに期待します><

直してもらっちゃった (2014.8.18追記)

f:id:syonx:20140819000905p:plain

動いた〜(๑′ᴗ‵๑) suzuken さんありがとうございます。 さすがデータ収集のプロ!ほんとにキャッチされた><
でもまだ Kibana さんは無反応です…続きはまた今度。



Fluentd とかの記事まとめたやつ

ぼくが集めた(だけで満足してる)やつです。

LogManagement - syon/wiki