FAT47の底辺インフラ議事録

学んだことのメモ帳です

ZABBIXでApache Solr1.4のステータス監視をする

CentOS5.7にZABBIX1.8.7をインストール

上記の記事で導入したZABBIXでApache Solrのステータス値を取得する手順を紹介します。
本当はApache Soler3.xの値を取得したかったのですが、どうもうまくいかずバージョン1.4での利用になります。
どなたかSolr3.xでの設定方法わかる方いたら教えて頂きたいです。


Solrの情報を得るためにはブリッジアプリケーションであるzapcatを導入します。
http://www.kjkoster.org/zapcat/

wget http://sourceforge.net/projects/zapcat/files/zapcat/zapcat-1.2/zapcat-1.2.zip/download

ここでダウンロードしてきたzapcat-1.2.zipの中にある、zapcat-1.2.warをsolrに配置します。

unzip zapcat-1.2.zip
mv zapcat-1.2/zapcat-1.2.war /usr/local/apache-solr/example/webapps/

Solr起動時のオプションに以下のオプションを追加します
 -Dcom.sun.management.jmxremote=true
 -Dcom.sun.management.jmxremote.authenticate=false
起動スクリプトに追加するとこのようになります。

vim /etc/init.d/solr 
start() {
  $JAVA -Dsolr.solr.home=$CORE -DSTOP.PORT=8079 -DSTOP.KEY=$KEY -Dcom.sun.management.jmxremote=true -Dcom.sun.management.jmxremote.authenticate=false -jar start.jar >> $LOG_FILE 2>&1 &
  echo "Solr started!"
}

このオプションをつけることによりl、JMXJava Management Extensions)によるモニタリングを受け付けるようになります。
zapcatはWeb画面を提供しているため、以下のアドレスで「Welcome to Zapcat」という画面が確認できるはずです。

http://localhost:8983/zapcat-1.2/

このページにある「mbean list」を見ることでZABBIXで監視できる項目を確認できます。
以下のような項目を監視すると良いでしょう。

項目名 説明 キー 単位
documentCache evictions ドキュメントキャッシュから追い出された回数 jmx[solr:type=documentCache,id=org.apache.solr.search.LRUCache][evictions]
documentCache hits ドキュメントキャッシュからデータを返せた回数 jmx[solr:type=documentCache,id=org.apache.solr.search.LRUCache][hits]
documentCache size ドキュメントキャッシュに入れられる個数 jmx[solr:type=documentCache,id=org.apache.solr.search.LRUCache][size]
queryResultCache evictions クエリキャッシュから追い出された回数 jmx[solr:type=queryResultCache,id=org.apache.solr.search.LRUCache][evictions]
queryResultCache hits クエリキャッシュからデータを返せた回数 jmx[solr:type=queryResultCache,id=org.apache.solr.search.LRUCache][hits]
queryResultCache size クエリキャッシュに入れられる個数 jmx[solr:type=queryResultCache,id=org.apache.solr.search.LRUCache][size]
searcher maxDoc 検索対象になった文書の最大数 jmx[solr:type=searcher,id=org.apache.solr.search.SolrIndexSearcher][maxDoc]
searcher numDocs 現在検索対象とされている文書数 jmx[solr:type=searcher,id=org.apache.solr.search.SolrIndexSearcher][numDocs]
standard errors 検索クエリの処理エラー累計数 jmx[solr:type=standard,id=org.apache.solr.handler.component.SearchHandler][errors]
standard requests 検索クエリの処理累計数 jmx[solr:type=standard,id=org.apache.solr.handler.component.SearchHandler][requests]
updateHandler commits コミット回数 jmx[solr:type=updateHandler,id=org.apache.solr.update.DirectUpdateHandler2][commits]
updateHandler optimizes オプティマイズ回数 jmx[solr:type=updateHandler,id=org.apache.solr.update.DirectUpdateHandler2][optimizes]


ZABBIXでの追加方法
1.「configuration」→「Hosts」→「Create Host」でSolrのホスト登録をします。

ポートは10052を指定してください。

2.追加したホストにモニタするアイテムを追加します。
「configuration]→「Hosts」のホスト一覧が表示されている中でSolrのホストの欄にある「Items」をクリックします。

3.「create Item」をクリックし監視したいアイテムを追加します。Keyの部分に上記表の監視したいキーを入れましょう。


これでZABBIXからsolrの値を取得することができます。
最初にも書いた通り、Solr3.xのバージョンだと値が取得できませんでした。何か内部変わっているんでしょうか…。