Solr のモニタリングに使える API で、Apache Solr (以下「Solr」) のモニタリングに使える API を紹介しました。
とはいえ、JSON でレスポンスが返ってきても、それを目視するのは大変です。スクリプトを書いて jq コマンドで毎回整形するのも手間ですし、取得したメトリクスの可視化やアラーティングを考えると、自作するのは結構大変です。
Apache Software Foundation の Lucene/Solr プロジェクトは、検索ライブラリ・サーバのプロジェクトなので、Elastic のように、検索サーバ (Elasticsearch) とその可視化 (Kibana)、モニタリング (X-Pack) のためのソフトウェアスタックまで包括提供していません。
それらを行うためには他の OSS の力を借りることになります。
そこで、Solr のモニタリングに使えるソフトウェアをいくつか紹介します。
Solr のモニタリングに使えるソフトウェア
メトリクスのモニタリングをするソフトウェアは、Monitoring Solr | Apache Solr Reference Guide 7.1 や Blog でもいくつか紹介されています。
jconsole
Solr の JMX 機能を有効にすることで、Solr の MBean を jconsole で可視化できます。jconsole は JDK に同梱されています。
jconsole は JMX に準拠した、監視ツールで、JMX 機能を使用してアプリケーションのリソースを可視化する機能を提供しています。
スタンドアローンの Java アプリケーションとして提供されているので、ローカルのマシンで起動し、サーバーへ接続して使用します。
詳細は下記の URL を参照してください。
jconsole は簡単なグラフを描画するだけなので、テスト、検証に使用するとよいです。
Graphite
Graphite はオープンソースの統合監視ツールです。
Solr の Metrics Reporting の機能である、Graphite Reporter を使用して、メトリクスを Graphite へ送信することができます。
実際に Solr のメトリクスを表示したものではありませんが、次のような画面で可視化が行えます。
参考 https://www.infoq.com/articles/graphite-intro
アラーティングについては、graphite-beaconを使用することで行えるようです。
詳細は下記の URL を参照してください。
Ganglia
Ganglia もオープンソースの統合監視ツールです。
Solr の Metrics Reporting の機能である、Ganglia Reporter を使用して、メトリクスを Ganglia へ送信します。
実際に Solr のメトリクスを表示したものではありませんが、次のような画面で可視化が行えます。
参考 http://heig-cloud.github.io/article/2015-12-21%20ganglia/
アラーティングについては、ganglia-alert を使用することで行えるようです。
詳細は下記の URL を参照してください。
Prometheus + Grafana
Prometheus もオープンソースの統合監視ツールです。
jmx_exporterを使用して、Solr のメトリクスを公開 (expose) し、Prometheus で Pull します。
Prometheus 自体もメトリクスの可視化のためにグラフを表示できますが、強力な可視化を行える Grafana と連携することができます。
Prometheus での可視化サンプル
Grafana での可視化サンプル
参考 https://techblog.yahoo.co.jp/architecture/abyss_2/
アラーティングについては、Prometheus が提供する Alertmanager を使用することで行えます。
Yahoo! JAPAN でも、3000台規模の Solr のモニタリングに Prometheus を使用しているようです。
詳細は下記の URL を参照してください。
- Overview | Prometheus
- jmx_exporter
- Grafana Documentation
- Prometheus: Monitoring at ABYSS - Yahoo! JAPAN Tech Blog
まとめ
サードパーティの製品を利用することで、メトリクスのモニタリングを可能にし、サービスの安定運用に役立つと思います。
既に監視システムを導入済みであれば、Solr のモニタリングに使える API を利用するプラグインやツールを開発し、組み込んでもよいでしょう。
JMX を使ったモニタリングについては、[改訂第3版]Apache Solr入門 でも簡単に解説されているので、興味ある方は是非読んでみてください。