CVS User Account cvsuser
Thu Nov 16 11:03:38 PST 2006
Log Message:
-----------
Add a new tool script, search-logs.sh, which may be used to do an
hourly search for error messages in slon logs. Includes admin guide
documentation...

Tags:
----
REL_1_2_STABLE

Modified Files:
--------------
    slony1-engine/doc/adminguide:
        monitoring.sgml (r1.29.2.1 -> r1.29.2.2)
        adminscripts.sgml (r1.40.2.2 -> r1.40.2.3)

Added Files:
-----------
    slony1-engine/tools:
        search-logs.sh (r1.1.2.1)

-------------- next part --------------
Index: adminscripts.sgml
===================================================================
RCS file: /usr/local/cvsroot/slony1/slony1-engine/doc/adminguide/adminscripts.sgml,v
retrieving revision 1.40.2.2
retrieving revision 1.40.2.3
diff -Ldoc/adminguide/adminscripts.sgml -Ldoc/adminguide/adminscripts.sgml -u -w -r1.40.2.2 -r1.40.2.3
--- doc/adminguide/adminscripts.sgml
+++ doc/adminguide/adminscripts.sgml
@@ -226,7 +226,7 @@
 <para>This starts a slon daemon for the specified cluster and node, and uses
 slon_watchdog to keep it running.</para>
 </sect3>
-<sect3><title>slon_watchdog</title>
+<sect3 id="slonwatchdog"><title>slon_watchdog</title>
 
 <para>Used by <command>slon_start</command>.</para>
 
@@ -534,7 +534,6 @@
 environment variables, you will get a set of slonik scripts.  They may
 not correspond, of course, to any database you actually want to
 use...</para>
-</sect3>
 
 <sect3><title>Node-Specific Values</title>
 
@@ -607,8 +606,7 @@
 
 <para>There are two assumptions in this script that could be
 invalidated by circumstances:</para>
-</listitem>
-</itemizedlist>
+
 <itemizedlist>
      <listitem><para> That all of the tables and sequences have been
      included.</para>
@@ -626,7 +624,10 @@
      linkend="stmttableaddkey">, you will have to modify this script
      by hand to accomodate that. </para></listitem>
 
-<listitem><para> <filename> subscribe_set_2.slonik </filename></para>
+</itemizedlist>
+</listitem>
+
+<listitem><para> <filename> subscribe_set_2.slonik </filename>
 
   <para> And 3, and 4, and 5, if you set the number of nodes
   higher... </para>
@@ -644,7 +645,7 @@
   attempt running this step.  To do otherwise would be rather
   foolish.</para> </listitem>
 </itemizedlist>
-</sect3>
+
 </sect2>
 </sect1>
 <!-- Keep this comment at the end of the file
Index: monitoring.sgml
===================================================================
RCS file: /usr/local/cvsroot/slony1/slony1-engine/doc/adminguide/monitoring.sgml,v
retrieving revision 1.29.2.1
retrieving revision 1.29.2.2
diff -Ldoc/adminguide/monitoring.sgml -Ldoc/adminguide/monitoring.sgml -u -w -r1.29.2.1 -r1.29.2.2
--- doc/adminguide/monitoring.sgml
+++ doc/adminguide/monitoring.sgml
@@ -159,6 +159,23 @@
 
 </sect2>
 
+<sect2 id="search-logs"> <title> <command>search-logs.sh</command> </title>
+
+<para> This script is constructed to search for &slony1; log files at
+a given path (<envar>LOGHOME</envar>), based both on the naming
+conventions used by the <xref linkend="launchclusters"> and <xref
+linkend="slonwatchdog"> systems used for launching &lslon; processes.
+
+<para> Errors, if found, are listed, by log file, and emailed to the
+specified user (<ENVAR>LOGRECIPIENT</ENVAR>); if no email address is
+specified, output goes to standard output. </para>
+
+<para> <ENVAR>LOGTIMESTAMP</envar> allows overriding what hour to
+evaluate (rather than the last hour). </para>
+
+<para> An administrator might run this script once an hour to monitor
+for replication problems. </para>
+
 </sect1>
 <!-- Keep this comment at the end of the file
 Local variables:
--- /dev/null
+++ tools/search-logs.sh
@@ -0,0 +1,33 @@
+#!/bin/sh 
+# $Id: search-logs.sh,v 1.1.2.1 2006/11/16 19:03:35 cbbrowne Exp $ 
+ 
+# Search logs for errors from the last hour 
+LOGHOME=${LOGHOME:-"/opt/logs"}    # Directory to search
+LOGRECIPIENT=${LOGRECIPIENT:-""}   # Email recipient - if not set, use STDOUT
+LOGTIMESTAMP=${LOGTIMESTAMP:-""}   # Override time - format should be "YYYY-MM-DD HH"
+
+if [[ -z $LOGTIMESTAMP ]] ; then
+    HRRE=`date -d "1 hour ago" +"%Y-%m-%d %H:[0-9][0-9]:[0-9][0-9] ${TZ}"`
+else
+    HRRE="${LOGTIMESTAMP}:[0-9][0-9]:[0-9][0-9] ${TZ}"
+fi
+
+for log in `find ${LOGHOME} -name "*.log" -mmin -60 | egrep "/node[0-9]+/[^/]+.log"` ; do 
+    egrep "${HRRE} (ERROR|FATAL)" $log > /tmp/slony-errors.$$ 
+    if [[ -s /tmp/slony-errors.$$ ]] ; then 
+        echo "
+Errors in log ${log} 
+===============================================================" >> /tmp/slony-summary.$$ 
+        cat /tmp/slony-errors.$$ >> /tmp/slony-summary.$$ 
+    fi 
+done 
+ 
+if [[ -s /tmp/slony-summary.$$ ]] ; then 
+    if [[ -z $LOGRECIPIENT ]] ; then
+	echo "Errors found!"
+	cat /tmp/slony-summary.$$  
+    else
+	mail -s "Slony-I log errors for ${HRRE}" ${LOGRECIPIENT} < /tmp/slony-summary.$$
+    fi
+fi 
+rm -f /tmp/slony-errors.$$ /tmp/slony-summary.$$



More information about the Slony1-commit mailing list