サーバ監視・性能測定ツールまとめ

エージェントソフトウェアを対象PCにインストール形でサーバの監視・性能測定を行うツールのまとめ。

# SaaSサービス

## NewRelic

アプリケーションの性能測定が簡単にできるSaaS。あちこちで導入実績があってスタートアップではデフォルト担っているようにさえ感じる。各言語でのプラグインだけがあって、自作アプリ外のサービスは対象外なのかと思っていたが、[プラグインのリスト](http://newrelic.com/plugins)をみると色々と対応しているようだ。

### Good

* 豊富な実績がある

### Bad

* インターネットにつながっていないと利用できない。

### 参考リンク

* [New Relic](http://newrelic.com/)
* [Wantedlyを支えるモニタリング](http://qiita.com/koudaiii/items/bc89368e1279649f2498)

## DataDog

"Cloud Monitoring as a Service"とHPタイトルにしっかり明記されている。後述するMackerelと真っ向からバッティングする海外サービスはきっとこれなんだろうと思う。エージェントは[OSSで公開](https://github.com/DataDog/dd-agent)されていて、Pythonで作られているよう。

### Good

* ある程度実績がある・・・のだと思う
* イベントとグラフが並んでいるUIは見やすくていいかも

### Bad

* インターネットにつながっていないと利用できない。
* 個人的にPythonはちょっと・・・

### 参考リンク

* [DataDog](https://www.datadoghq.com/)
* [Datadogでメトリクスの監視を始めよう!](http://docs.datadoghq.com/ja/)
* [Datadogの本当の魅力とは](http://qiita.com/jhotta/items/e7e20a1acd797bf2665b)

## Splunk

ログ収集のSaaS だと思う。Googleで調べると技術ブログよりもディストリビュータの紹介HPばかりが出てくるので実態がよくわからない。ディストリビュータを増やしていてビジネス上手なのかな・・・という印象

### Good

* 日本のディストリビュータが選べてお金さえ払えば日本語で解決できる度合いが大きそう。

### Bad

* インターネットにつながっていないと利用できない。
* 基本はログ収集と簡単な集計なんだと思う。グラフはおまけぐらいなのではないか?

### 参考リンク

* [Splunk](http://www.splunk.com/en_us/homepage.html)
  * [Panasonic](http://panasonic.biz/it/sol/security/splunk/)
  * [macnica](http://www.macnica.net/splunk/)
  * [NTT Data](http://www.intellilink.co.jp/pd/products/package/security/splunk.html)
  * [SCSK](https://www.scsk.jp/product/common/splunk/)
  * [富士通ソーシアルサイエンスラボラトリ](http://www.ssl.fujitsu.com/products/sysope/splunk/)
  * [日立ソリューションズ](http://www.hitachi-solutions.co.jp/splunk/)

## Mackerel

はてな社が提供するSaaS。[mackerel-agent](https://github.com/mackerelio/mackerel-agent)はOSSとして公開されており、プラグインも[mackerel-agent-plugins](https://github.com/mackerelio/mackerel-agent-plugins)に揃っている。
mackerel-agentはgolang製。
参考リンクにあげた技術紹介によると、収集したメトリクスの保存は時系列DBのGraphiteを使っている模様。

### Good

* 導入が簡単そう
* Windows対応をうたっている
* カスタムメトリクスにも対応している。
* グラフを外部サイトに貼り付けられるのは良い。

### Bad

* インターネットにつながっていないと使用できない。"Mackerel Enterprise"とかあればいいのに。

### 参考リンク

* [Mackerel（マカレル）](https://mackerel.io/ja/)
* [Mackerelで採用している技術一覧とその紹介](http://developer.hatenastaff.com/entry/mackerel-overview)

# OSS

## Zabbix

サーバ監視の老舗。情報はたくさんあるが、サーバ監視ツールが雨後の筍のようにでてきているのは求められるなんらかの要件が足りてないのかもしれない。

### Good

* 実績豊富

### Bad

* グラフ描画など表示周りが弱い?

### 参考リンク

* [Zabbixオフィシャル日本語サイト](http://www.zabbix.com/jp/)
* [クックパッドにおけるサーバ監視と運用の工夫](http://techlife.cookpad.com/entry/2015/04/28/100000)
* [気になったZabbix関連ツールまとめ](http://qiita.com/usiusi360/items/6c84e9a9be3f1056f730)

## InfluxDB社製 TICKスタック (Telegraf + InfluxDB + Chronograf(Grafana) + Kapacitor)

[Telegraf](https://github.com/influxdb/telegraf)がgolang製のエージェント。
[InfluxDB](https://github.com/influxdb/influxdb)はgolang製の時系列DB。
Chronografは[Grafana](https://github.com/influxdb/grafana)をベースに開発された表示UI、ちなみにGrafanaもgolang製。
[Kapacitor](https://github.com/influxdb/kapacitor)は[Norikra](http://norikra.github.io/)のようなストリーム解析基盤、これもgolang製。

各々の素性は良さそうで、Go言語好きじゃなくてもチェックはしておいて良さそう。

### Good

* Grafanaでグラフを作るのは割と簡単
* Kapacitorによるストリーム解析が統合しやすそう

### Bad

* TelegrafはWindows対応がされていない。
* TICKスタックはGrafanaではなくChronografらしい。Grafanaの立ち位置が微妙?

### 参考リンク

* [Telegrafを使ってInfluxDBとKafkaにメトリクスを送信する(InfluxDB Blogより)](https://yakst.com/ja/posts/3189)
* [InfluxDB専用の可視化フレームワーク「Chronograf」(InfluxDB Blogより)](https://yakst.com/ja/posts/2675)
* [Kapacitor: オープンソースのストリーミングとバッチの時系列プロセッサ(InfluxDB Blogより)](https://yakst.com/ja/posts/3614)

## Elastic社製 ELKスタック(ElasticSearch + Kibana + Beats)

先日のElastic{On} Tokyo 2015に合わせてリリースされたばかり。ELKスタックはBeatsではなくElasticSearch + Logstash + Kibanaで構成される。BeatsはELKスタックにデータを流し込む役割を持つ。

### Good

* ダッシュボードのサンプルが用意されている。
* 勢いがある。ElasticSearch/Kibanaともに今後の開発も期待して良さそう。
* HTTP/TCP/DB接続をパケットキャプチャして性能測定してくれるPacketbeatはすごい
* ログ収集も同じ基盤に乗っけられる
* エージェントを実装するためのlibbeatが提供されており、拡張が簡単そう。

### Bad

* Elasticsearch重い。運用監視データは時系列だが、全文検索のElasticsearchで扱うことに無理がある気がする。
* Kibanaでグラフを書くのにElasticSearchの知識がないと辛い。

### 参考リンク

* [2015-12-15
elasticの新プロダクト「Beats」シリーズに震える!](http://acro-engineer.hatenablog.com/entry/2015/12/15/234056)
* [Beatsを使ってみた(まとめ編)](http://dev.classmethod.jp/serverde/elasticsearch/beats-entry-matome/)

## Prometheus (+Grafana)

SoundCloud社中心に開発されているOSS、Google社内で使われているBorgmonというシステムを参考に作られているらしい。他のツールがエージェントから収集したメトリクスをPushで送らせるのに対し、PrometheusではPullで取得することが特徴。PrometheusにもUIはあるが、グラフ化は別ツールを使うことを推奨している。Grafanaを使えばPrometheusのデータを簡単に可視化できる。

### Good

* Golang製でOS問わず動く
* メトリクスが収集できない時の切り分けが容易

### Bad

* 日本語の情報が他と比べて少し少ないかも。

### 参考リンク

* [次世代監視の大本命! Prometheus を実運用してみた](http://qiita.com/sugitak/items/ff8f5ad845283c5915d2)

## re:dash

BIツールなんだけど、バックエンドが色々選べてクエリを書くことでグラフが描画できて要件は満たしているような気がする。

### Good

* BIツールなので凝った解析ができそう

### Bad

* グラフを定期的に更新してダッシュボードとして使うにはアーキテクチャが向いていないかも。

参考リンク

* [re:dash](http://redash.io/)
* [re:dashは何が良くて、何が足りないのか](http://qiita.com/toyama0919/items/c6c600d8bfd4dcdd69e1)