Monitoring 〜雑まとめだけどドコかに残しておきたい〜
Monitoringについて詳しくないので、Web Developer Roadmap 2018が出たので2017年版と比較してみるのMonitoring and Alerting
にあるツールを全て調べてみた。
あとちょうど最近、流行っていると聞いたDataDog、Grafanaについても調べてみる。
Zabbix
インフラ寄りのイメージ。
ネットワーク、サーバ、クラウド、サービスと監視対象範囲は非常に広い気がする。
https://www.zabbix.com/jp/java_applications
JavaアプリケーションはJMXによる監視のみ。
ヒープ、メモリなどのJVM寄りの監視。
インフラ監視には◯、アプリケーション監視には✕。
Prometheus
https://prometheus.io/docs/instrumenting/clientlibs/
https://github.com/prometheus/client_java
完全にアプリケーション監視向け。
アプリケーション側にログを埋め込むため、アプリケーション側に改修が必要になるが、
その分、柔軟に必要な情報(例えばメソッド単位でのパフォーマンスなど)を取得することができる。
Graphite
Graphite自体は2つのことしかやらない。
- Store numeric time-series data
- Render graphs of this data on demand
なので、データ収集は他ツールとつなげる必要がある。
ツールはこちら。
http://graphite.readthedocs.io/en/latest/tools.html
オールインワンではないので、カスタマイズは柔軟だが構築に手こずりそう。
Munin
どうでもいいけどとにかくトップページがダサい。http通信だし…
Munin is a networked resource monitoring tool that can help analyze resource trends and "what just happened to kill our performance?" problems. It is designed to be very plug and play. A default installation provides a lot of graphs with almost no work.
プラグイン形式。
http://munin-monitoring.org/wiki/plugins
JavaはJMXの監視。
https://github.com/munin-monitoring/contrib/tree/master/plugins/jmx
PagerDuty
http://blog.serverworks.co.jp/tech/2015/10/13/start-pagerduty/ (こっちのほうがわかりやすい)
つまり、通知サービス。
監視は別で、監視からの集約を担う。
集約した情報からSlack,SNS,メールへのエスカレーションを行う。
New Relic
いくつかのサービスに分かれている。
https://newrelic.com/products
アプリ、WEB、WEBアプリ、アプリケーション、インフラとダッシュボードのInsightsに分かれており、
広範囲のモニタリングがNew Relic製品の組み合わせで可能になる。
Javaについてもインストールは簡単で、エラー、トランザクション、レスポンスタイム、外部システムのレスポンスタイムなど必要な情報は見ることができる。
https://newrelic.com/java
Nagios
プラグイン形式。豊富なプラグイン。
サーバ、ネットワーク、アプリケーションをカバー。
https://www.nagios.com/solutions/java-monitoring/
アプリケーション監視自体はJavaを見る限り、アプリケーション内部ではなく、メモリとかがメイン。
AppDynamics
アプリケーションのパフォーマンス、モバイル、ブラウザなどアプリケーション層を幅広くサポート。
またデータベースやサーバもサポートしている。
Java,Springにも対応している。
https://www.appdynamics.jp/java/
https://www.appdynamics.jp/java/spring/
DataDog
可視化がメインのよう。UIがすごいリッチ!
非常に豊富なインテグレーションをもつ。
https://www.datadoghq.com/product/integrations/#all
JMXによるJava監視が可視化。
https://docs.datadoghq.com/integrations/java/
Grafana
ビジュアライズツール。Kibanaみたいなツールと認識。