おはようございます、サーバエンジニアLv.1のEuviccです。ちなみにMacユーザLvは2か3ぐらい? LinuxユーザLvも大差ないです(^_^;)
以前書いた通り、環境構築記録でも書き残してみようかと思います。なんでって、現行最新バージョンをMac上に入れる情報が少なかったもんで。まあ……備忘録みたいなもんです。興味ない人にとってはチンプンカンプンだと思うので素直にブラウザをそっ閉じすることをオススメします(^^; では、いってみよう。
前提条件
環境面のことをいうなら、うちのMacタソの状態も書いとかねばですよね。こんな感じです。
その1. fluentdとLogstash
fluentd(td-agent)
fluentdはもちろんOSSですが、商用としてはTreasure Data社が提供しているロギング環境です。
- Fluentd | Open Source Data Collector | Unified Logging Layer
- Fluentd Enterprise Edition Subscription - Treasure Data
今回はこれを入れてみます。あちこちwebを漁って調べたところ、Homebrewではインストールできないらしい。なので、上記リンクのうちfluentd.orgの方(上)から、Mac向けの最新バージョンをDLします。fluentdとRubyが一緒になったtd-agentというパッケージで、dmg形式で置いてあるのでこいつをgetしダブルクリック!→署名がねえとかって文句つけられて先に進めずorz ナンデ!?
ここでMacユーザとしてもレベルが低いのが響きました。何度試してもダメなものはダメで、初回はそのまま諦めた次第。後日OSのヘルプ見たら「dmgファイルをCtrlキー押したままダブルクリックする」なる対処法がちゃんと書いてあって、うっわー俺だっさーと思いながらその通りに手順を試し無事にインストール成功(^_^;) td-agentは
/opt/td-agent/
下にきちんと入りましたとさ(苦笑)
Logstash
ロギングプラットフォームとしてはこちらも有名らしい。後述する全文検索エンジンElasticsearchと同じくElastic社が出してます。
Logstash | Elastic
順番的にはElasticsearchの方を先に入れておりまして、こちらのインストールは同じやり方をしただけ。Homebrewです。
% brew install logstash
おしまいw
/usr/local/Cellar/logstash/
に入っていることが確認できました。
その2. Elasticsearch
本体
先ほどちらっと書いたElasticsearch。最初、コレの存在を聞いたときは「あー、RDBとは別種のデータストア的なもの?」みたいに思ったけど、これはおもくそ間違ってて、DBとして考えるもんではないらしい(汗
Elasticsearch | Elastic
なお、本体はあっさりHomebrewで入りました。
% brew install elasticsearch
こんだけ。そうすると
/usr/local/Cellar/elasticsearch/
下に入ります。
プラグイン
プラグインはとりあえず管理画面的なヤツとしてheadと、あと一応日本語構文解析機能?としてkuromojiを導入。
% bin/elasticsearch-plugin install mobz/elasticsearch-head % bin/elasticsearch-plugin install analysis-kuromoji
パスをちゃんと切ってなかったかもしれません。たぶんインストールディレクトリのbinまでcdしてます(^_^;) あと、Qiitaのいくつかの記事には"bin/plugin"て書いてあったんだけど、ウチではそれじゃ動かず上記のコマンドをたたきました。あとでわかったことによると"plugin"コマンドはdeprecatedらしく、最新Ver.なら上記のコマンドでよろしいようだ。
その3. Kibana
KibanaはElasticsearchで抽出した結果の可視化ツールです。
Kibana: Explore, Visualize, Discover Data | Elastic
同じElasticなんでbrewでインストールしようとしましたが、何故か失敗しました(´・ω・`) なんでだろ? エラーメッセージは見たんだけどよくわからず。結局、Elasticのサイトから最新バージョン(4.6.2)のMac向けtar.gzファイルをDLしてきて手動で展開。
/usr/local/etc/kibana/
に手で配置しました。
さて、動作確認
アホな私はターミナル上でとりあえずKibanaを起動……うん、エラーですよねわかりますw "status=red"が出まくってる。それもそのはずElasticsearchの方起動してなかった(´・ω・`) 慌ててターミナルをもうひとつ立ち上げElasticsearchを起動! ……あ。Kibanaの方のコンソールでstatusがgreenに変わったぞ(°∀°)
Elasticsearch……問題なし。動いてます。
Kibanaもオッケイ♪
ならばここでブラウザから見てみよう。そのためにElasticsearchにheadプラグインを入れたわけだし。Chromeを起動し、URLにこう入力する。
おお〜、ちゃんと表示できてる\(^o^)/ お次はKibana。
やったよママン! ボク、ついにMacちゃんを開発機っぽく動かすことに成功したよ!!←レベル低すぎ
問題はここからです。データを投入しなければクソの役にも立たないからな、この環境は!w
しかしだからといって、自分のマシン上でJVMのヒープサイズだとかディスクI/Oだとか現状見る必要性ないし、ローカルマシンでhttpd*1やらTomcat*2やらのアクセスログを見る必要もないですよね。だいいち、そんなものが見たいわけではないのだ。決して∠( ゚д゚)/ビシッ
じゃあこれからどうする
そうですね……とりあえずはデータの入口としてLogstashの使い方を勉強していこうかな、と。手でデータを投入するのがメインだと、ざっと見た限りではLogstashの方が使いやすそうなので。とりあえずは練習として適当なCSVデータを作るorどこかから入手して食わせてみることになるかな。
既にconfファイルで、入力元:CSVファイル/出力先:Elasticsearchとする記述方法は調べがついてるんだけど、データをparseする"filter"の記述方法がまだまだ全然わかってない。まあElastic社のドキュメントを中心に読み込んでいろいろ試すしかないかなあ、と。あとはまあそうですね……Macちゃんのネットワークトラフィック量推移をログ出しできたら、そいつを食わせるのも練習になるかもしれません。その辺少し進んだら、記録②ってことで続きを書くことにします。
ではでは。
【追記】
まさかこのエントリを書いた翌日にElasticから最新バージョン"5.0.0"安定版がリリースされるなんて……_| ̄|○
Elastic Stack 5.0.0 GA リリース | Elastic