euvicc's sphere cycloalkanique

自転車とMETALとその他雑多な物欲記録。そして大病から生還し生き残り続ける奇跡の徒然など。

何故か四十手前にして自転車趣味に目覚めてしまったある男の記録...のようなもの。

ライドの記録、買い物記録、超私的レビューみたいな駄文を書き連ねます。

2021/10、急性大動脈解離(Stanford-A型)から奇跡の生還。

以降は予後のこととかも書いたりすると思います。

うちのMacタソへのログ可視化環境構築記録①

おはようございます、サーバエンジニアLv.1のEuviccです。ちなみにMacユーザLvは2か3ぐらい? LinuxユーザLvも大差ないです(^_^;)
以前書いた通り、環境構築記録でも書き残してみようかと思います。なんでって、現行最新バージョンをMac上に入れる情報が少なかったもんで。まあ……備忘録みたいなもんです。興味ない人にとってはチンプンカンプンだと思うので素直にブラウザをそっ閉じすることをオススメします(^^; では、いってみよう。

前提条件

環境面のことをいうなら、うちのMacタソの状態も書いとかねばですよね。こんな感じです。

  • H/W: MacBook Pro (Mid 2014)
  • OS: macOS Sierra (10.12)
  • 開発環境
    • Xcode8 インストール済
    • Java: JDK1.8
    • Homebrew導入済
    • とりあえずzsh

その1. fluentdとLogstash

fluentd(td-agent)

fluentdはもちろんOSSですが、商用としては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に変わったぞ(°∀°)
f:id:Euvicc:20161028005804p:plain
Elasticsearch……問題なし。動いてます。
f:id:Euvicc:20161028005817p:plain
Kibanaもオッケイ♪

ならばここでブラウザから見てみよう。そのためにElasticsearchにheadプラグインを入れたわけだし。Chromeを起動し、URLにこう入力する。

http://localhost:9200/_plugin/head/

f:id:Euvicc:20161028005827p:plain
おお〜、ちゃんと表示できてる\(^o^)/ お次はKibana。

http://localhost:5601/

f:id:Euvicc:20161028005839p:plain
やったよママン! ボク、ついに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

*1:立ててもいない……立ってないことはポート80で一応確認した

*2:立ててないことはポート8080でry)