Taste of Tech Topics

Acroquest Technology株式会社のエンジニアが書く技術ブログ

elasticの新プロダクト「Beats」シリーズに震える!

初めてこのブログに投稿します、PlNOKlOです!
皆さんよろしくお願いします。

このエントリーは、Elasticsearch Advent Calendar 2015の15日目です。

f:id:acro-engineer:20151215231044p:plain

さて、
今日紹介したいのは、elasticの新プロダクト「Beats」シリーズです。

社内で @ さんが「みんなでBeatsのWebinarを見る夕食会」なるイベントを
突発的に企画したので、よく分からないながらも参加してきたのですが、、、

震えました

モニタリングツールとしてかなりよくできている感じで、
@ さんが騒ぐ理由も分かる気がしました。

特にPacketbeatは想像以上にヤバかったですね。
皆さん、こいつは注目です!

ということで、そんなBeatsシリーズのうち、
TopbeatPacketbeatの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の画面は、こんな感じ。

f:id:acro-engineer:20151215231155p:plain

HOOOOOOOOOO!!FURUERU!!!!


4. Packetbeatで取れる情報に震えた

Packetbeatって、せいぜい通信量の可視化ができる程度の
プロダクトって思いません?名前的に。

ところがどっこい。全然それどころじゃないんですよ。

Packetbeatは、キャプチャしたパケットを解析して、
それがたとえばHTTPのパケットであれば、リクエストURLやHTTPステータスを取得する、
MySQLのパケットであれば、発行しているSQLや、発行結果を取得することができます。

ミドルウェアごとのパケットを解析して、その中身を見ているということです。
たとえばMySQL(実際にはAWS Auroraなんですが)は、こう見えています。

f:id:acro-engineer:20151215233810p:plain

発行したSQL回数や、時間が掛かったSQLのランキングなどは、明らかに便利そうですね。
PreparedStatementのバインド変数 ? も、値をバインドした状態で出力されます。助かります!


ちなみに、Packetbeatはクライアント側でパケットキャプチャをするので、
MySQLサーバにインストールするのではなく、Webサーバ側にインストールすることになります。
だからAWSのRDSでも問題なくパケットキャプチャ&可視化ができるというわけですね。

現在までに対応しているミドルウェア
MySQLPostgreSQL、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では、キャリア採用を行っています。


  • 日頃勉強している成果を、AWSHadoop、Storm、NoSQL、SpringBoot、HTML5/CSS3/JavaScriptといった最新の技術を使ったプロジェクトで発揮したい。
  • 社会貢献性の高いプロジェクトに提案からリリースまで携わりたい。
  • 書籍・雑誌等の執筆や対外的な勉強会の開催を通した技術の発信や、社内勉強会での技術情報共有により、技術的に成長したい。
  • OSSの開発に携わりたい。

 
少しでも上記に興味を持たれた方は、是非以下のページをご覧ください。
 キャリア採用ページ