This tool has been used to monitor several things, including individual drivers on NW, Linux, and Windows, as well as some LDAP search/auth performance and directory sync.
It can be run in GUI to config the different checks you want and then in "console" mode for actual monitoring, or you can run it in GUI for actual monitoring also if you wish. For DirXML this tool is currently designed to be run as an agent on the actual box where the DirXML engine is in order to access the local cache files. Most of the other checks can be run anywhere... (See the README for some more details.) It can currently send a SMTP mail, an SNMP trap, or a BB (Big Brother) status message. But if you look at the code it's fairly easy to add some other custom methods.
No support provided for this tool.
MiniChecker is designed to run several different types of checks (such as file
size, LDAP timestamp, or JDBC query) which return either an Up, Warning, or
Down status, and then send an alert (such as email and/or an SNMP trap) when
the status changes. For example, it can be used to monitor cache files of
DirXML drivers, check synchronization between and within LDAP directories, or
other custom needs. MiniChecker can be run in GUI mode (by default) to
configure and/or run checkers, or in console mode to run a specified
The main MiniChecker app acts as a manager for a set of threads each running a
checker. The code for the generic checkers are written as Java classes, such
as CheckFileSize or CheckLDAPTimestamp. The configuration settings determine
the behavior you want. For example, you could check five different files all
using the CheckFileSize class, but with different settings in each (such as
filename). See the "Configuration File" section below for more details.
(NOTE: See the traps section of MINICHECKER-MIB for details on SNMP traps.)
- Java JVM v1.4 or higher (on Linux, NetWare, or Windows)
- Other Java libraries (.jar's) as needed for JDBC, JNDI/LDAP, JSSE, etc.
java -jar MiniChecker.jar [option] [config file]
| -c || Run checks in console mode using specified configuration file.|
| -g ||Run checks in GUI mode using specified configuration file.|
| -G ||Start GUI mode, but don't run checking process (default).|
| -? ||Show this help text.|
The app can normally be run with the following command on Linux and Windows:
java -jar MiniChecker.jar
If you need to include other libraries you can also use a fuller command-line
like this (Linux example, use ";" separator on Win):
java -cp MiniChecker.jar:mail.jar:activation.jar:SNMP4J.jar:LenientSSL.jar com.novell.services.it.monitoring.minichecker.MiniChecker -c test.minichecker
See minichecker.ncf for example to run on NetWare.
A *.minichecker configuration file (run GUI or see example.minichecker for
settings) defines some global settings and specifies the check threads which
will be run, including the check class to execute and settings to use for each
thread. Any global settings will be used if not re-defined in the thread's
specific settings section, thus allowing "global" settings. Be sure to set
the AlertName to be unique for each checker (otherwise it will be hard to tell
which process an alert is for).
Included are simple checkers for file size, LDAP timestamp, JDBC query, and
others. Select the class in the GUI to see required settings. Custom
checkers may be written that implement the MCInterface interface. See
existing checker code for examples of the required methods.
- CheckDirXML: reads a driver 'DirXML-State' via LDAP, indicating if a driver
is running, stopped, etc. (NOTE: A 'running' driver may not be
processing events, so consider CheckFileSize for subscriber checks.)
- CheckFileSize: used to check file size changes, such as DirXML cache files
(this may require MiniChecker to be run on a server hosting the file)
- CheckHTTP: read a URL via HTTP(S) and match an expected return code status
or search for a specified result in HTML content
- CheckLDAPAuthentication: connect via LDAP and perform a user/password bind
within a specified time
- CheckLDAPSearch: connect via LDAP and perform a search, with any returned
results within a specified time indicating success
- CheckLDAPTimestamp: set and/or check a timestamp value in an attribute on an
object via LDAP, used to check sync within or between directories by
comparing the timestamp value to current time
- CheckPSDirXML: reads a timestamp from a Windows registry key set by the
PeopleSoft DirXML driver (v3.x) and triggers an error if age is over
a specified treshold
- CheckSQL: connects to a database and performs a simple check which is
considered an error when the result doesn't match expected
NOTE: DirXML Cache Files
The subscriber channel of DirXML drivers use a cache file which can we used
with the CheckFileSize checker to verify the driver is processing. A filename
is in the form #####.TAO, where ##### is the decimal value of the driver's
entry ID on the specific server that is running the driver. To find this
value you can use DSBROWSE.NLM or iMonitor on the server and find the
hexidecimal (base 16) value of the entry ID, such as 123AB. Then convert that
to decimal (base 10), such as 74667. With DirXML 2 the empty size (i.e., no
pending events) of the file is 12 bytes, and for older versions (1.0 1.1a)
it is 8 bytes.
The default paths for each OS
- NetWare: SYS:\_NETWARE\#####.TAO
- Linux: /var/nds/dib/#####.TAO
- Win: C:\Novell\NDS\DIBFiles\#####.TAO
Copyright (c) 2000-2007, Novell, Inc. All rights reserved.
Redistribution and use in source and binary
forms, with or without
modification, are permitted provided that the following conditions are met:
- Redistributions of source code must retain the above copyright notice, this
list of conditions and the followng disclaimer.
- Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution.
- Neither the name of Novell, Inc., nor the names of its contributors may be
used to endorse or promote products derived from this software without
specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
POSSIBILITY OF SUCH DAMAGE.
Disclaimer: As with everything else at Cool Solutions, this content is definitely not supported by Novell (so don't even think of calling Support if you try something and it blows up).
It was contributed by a community member and is published "as is." It seems to have worked for at least one person, and might work for you. But please be sure to test, test, test before you do anything drastic with it.