solr
graphite
ganglia
prometheus
jconsole
SolrDay 7

Solr のモニタリングに使えるソフトウェア

More than 1 year has passed since last update.

Solr のモニタリングに使える API で、Apache Solr (以下「Solr」) のモニタリングに使える API を紹介しました。

とはいえ、JSON でレスポンスが返ってきても、それを目視するのは大変です。スクリプトを書いて jq コマンドで毎回整形するのも手間ですし、取得したメトリクスの可視化やアラーティングを考えると、自作するのは結構大変です。

terminal.png

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 アプリケーションとして提供されているので、ローカルのマシンで起動し、サーバーへ接続して使用します。

jconsole.png

詳細は下記の URL を参照してください。

jconsole は簡単なグラフを描画するだけなので、テスト、検証に使用するとよいです。

Graphite

Graphite はオープンソースの統合監視ツールです。

Solr の Metrics Reporting の機能である、Graphite Reporter を使用して、メトリクスを Graphite へ送信することができます。

実際に Solr のメトリクスを表示したものではありませんが、次のような画面で可視化が行えます。

sample

参考 https://www.infoq.com/articles/graphite-intro

アラーティングについては、graphite-beaconを使用することで行えるようです。

詳細は下記の URL を参照してください。

Ganglia

Ganglia もオープンソースの統合監視ツールです。

Solr の Metrics Reporting の機能である、Ganglia Reporter を使用して、メトリクスを Ganglia へ送信します。

実際に Solr のメトリクスを表示したものではありませんが、次のような画面で可視化が行えます。

sample

参考 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 での可視化サンプル

prometheus.png

Grafana での可視化サンプル

grafana.png

参考 https://techblog.yahoo.co.jp/architecture/abyss_2/

アラーティングについては、Prometheus が提供する Alertmanager を使用することで行えます。

Yahoo! JAPAN でも、3000台規模の Solr のモニタリングに Prometheus を使用しているようです。

詳細は下記の URL を参照してください。

まとめ

サードパーティの製品を利用することで、メトリクスのモニタリングを可能にし、サービスの安定運用に役立つと思います。
既に監視システムを導入済みであれば、Solr のモニタリングに使える API を利用するプラグインやツールを開発し、組み込んでもよいでしょう。

TH160_9784774189307.jpg

JMX を使ったモニタリングについては、[改訂第3版]Apache Solr入門 でも簡単に解説されているので、興味ある方は是非読んでみてください。