#!/bin/bash if [ $# -lt 2 ]; then echo Usage: `basename $0` SolrMasterIP[:port] SolrSlaveIP[:port] [AlertThreshold] exit 1 fi # read command params MASTER=$1 SLAVE=$2 THRESHOLD=${3:-1} # read index version from master and slave MASTER_INDEX=`wget -qO - http://$1/solr/admin/replication/index.jsp | awk '/Index Version/ {print substr($3,0,length($3)-1)}'` [ -z "$MASTER_INDEX" ] && echo Error reading Master index && exit 2 SLAVE_INDEX=`wget -qO - http://$2/solr/admin/replication/index.jsp | awk '/Index Version/ {print substr($3,0,length($3)-1)}'` [ -z "$SLAVE_INDEX" ] && echo Error reading Master index && exit 3 # check if master-slave index difference is within acceptable threshold let "$MASTER_INDEX - $SLAVE_INDEX < $THRESHOLD" && echo Slave index version \($SLAVE_INDEX\) is behind master \($MASTER_INDEX\) && exit 4 echo Slave index version \($SLAVE_INDEX\) is in sync with master \($MASTER_INDEX\)
A mix of how-tos, notes, and gotchas that I might need again sometime in the future.
Friday, November 2, 2012
Solr replication monitoring
I am using Solr replication on some projects for load balancing (not that Solr really needs that ;) ) and high-availability. Recently, due to a network problem, replication was stalled on one of the slave without me noticing it, so I wrote a small script to check the index version difference between master and slave and which admins can integrate with current monitoring system (nagios, zenoss, munin, whatever).
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment