初めてこのブログに投稿します、PlNOKlOです!
皆さんよろしくお願いします。
このエントリーは、Elasticsearch Advent Calendar 2015の15日目です。
さて、
今日紹介したいのは、elasticの新プロダクト「Beats」シリーズです。
社内で @cero_t さんが「みんなでBeatsのWebinarを見る夕食会」なるイベントを
突発的に企画したので、よく分からないながらも参加してきたのですが、、、
震えました
モニタリングツールとしてかなりよくできている感じで、
@cero_t さんが騒ぐ理由も分かる気がしました。
特にPacketbeatは想像以上にヤバかったですね。
皆さん、こいつは注目です!
ということで、そんなBeatsシリーズのうち、
TopbeatとPacketbeatの2つについて、私の震えポイントを紹介します!
1. Beatsとは?
まずBeatsって何ですの?ってところからですよね。
Beatsはelastic社の新プロダクト群で、
Elasticsearch/Logstashに情報を送信するshipperという位置づけです。
サーバに常駐して、リソース情報や、ログファイル、HTTPリクエストや、
発行したSQLなど(!)を取得して、Elasticsearchなどに情報を転送します。
そのあと、Elasticsearch側でKibanaを使って可視化をする、ということになります。
2. インストールの手軽さに震えた
最初の震えポイントは、インストールの手軽さ、というか構成のシンプルさでした!
Topbeat、Packetbeatとも、それぞれファイルが「3つ」ずつしかありません。
RPMでインストールしても、zipやtar.gzを解凍しても、3ファイルしかできません。
Topbeatで言えば、
1. topbeat : 実行用バイナリ
2. topbeat.yml : 設定ファイル
3. topbeat.template.json : elasticsearch用テンプレート
この3つです。ホントにこれだけ。
そして設定ファイルにelasticsearchのアドレスを書いて、
Elasticsearchにテンプレート (json) をcurl -XPUTで流し込めば、すぐに使い始めることができます。
※もちろん事前にelasticsearchがセットアップされてることが条件ですが(◎_◎;)!
この手軽さ、震えます!!
3. ダッシュボード作成の簡単さに震えた
私は仕事でElasticsearch + Kibanaを使ってダッシュボードを作成しているのですが、
難しくないとはいえ、それなりに面倒な作業だったりします。
じゃぁBeatsの可視化も面倒かというと・・・
なんと、ダッシュボードのサンプルがgithubで公開されていて、
これをダウンロードしてelasticsearchに突っ込めば、ダッシュボードが完成します。
https://github.com/elastic/beats-dashboards
これで作ったTopbeatの画面は、こんな感じ。
HOOOOOOOOOO!!FURUERU!!!!
4. Packetbeatで取れる情報に震えた
Packetbeatって、せいぜい通信量の可視化ができる程度の
プロダクトって思いません?名前的に。
ところがどっこい。全然それどころじゃないんですよ。
Packetbeatは、キャプチャしたパケットを解析して、
それがたとえばHTTPのパケットであれば、リクエストURLやHTTPステータスを取得する、
MySQLのパケットであれば、発行しているSQLや、発行結果を取得することができます。
ミドルウェアごとのパケットを解析して、その中身を見ているということです。
たとえばMySQL(実際にはAWS Auroraなんですが)は、こう見えています。
発行したSQL回数や、時間が掛かったSQLのランキングなどは、明らかに便利そうですね。
PreparedStatementのバインド変数 ? も、値をバインドした状態で出力されます。助かります!
ちなみに、Packetbeatはクライアント側でパケットキャプチャをするので、
MySQLサーバにインストールするのではなく、Webサーバ側にインストールすることになります。
だからAWSのRDSでも問題なくパケットキャプチャ&可視化ができるというわけですね。
現在までに対応しているミドルウェアは
MySQL、PostgreSQL、Redis、Thrift、MongoDB、memcache、
それDNS、HTTP、TCP/UDP、ICMPに対応していて、今後も対応プロトコルを増やすとのことです。
これがOSSで公開されているというのがすごい!!
震えますね!!!!!
5. Go言語が便利で震えた
ところでBeatsシリーズってどの言語で実装されているの?
と思ってリポジトリを見てみると、
https://github.com/elastic/beats
ふむふむ。Go言語で実装されていると。
Go言語はLinux / Mac / Windowsのクロスコンパイルができるので、複数の環境で動かしやすいとか、
Javaのようなランタイムをインストールする必要がないとか、
また、メモリのフットプリントが小さいので、マシンのリソースあまり食わないとかですから、
なるほど、Beatsシリーズのようなエージェントの実装には最適だと思わされました。
まぁ全部先輩の受け売りなんですが。。。
とにかくGo言語
なんか便利そうで震える!!!!!!
まとめ
震えました。
なお、明日12/16(水)に開催されるElastic{ON} Tokyoでは、
Acroquestもブーススポンサーとして出展します ^^)/
様々なダッシュボードのデモもお見せしますので、
皆さん、よければぜひお越しください!
Acroquest Technologyでは、キャリア採用を行っています。
- 日頃勉強している成果を、AWS、Hadoop、Storm、NoSQL、SpringBoot、HTML5/CSS3/JavaScriptといった最新の技術を使ったプロジェクトで発揮したい。
- 社会貢献性の高いプロジェクトに提案からリリースまで携わりたい。
- 書籍・雑誌等の執筆や対外的な勉強会の開催を通した技術の発信や、社内勉強会での技術情報共有により、技術的に成長したい。
- OSSの開発に携わりたい。
少しでも上記に興味を持たれた方は、是非以下のページをご覧ください。
キャリア採用ページ