Novell Home

MiniChecker

Novell Cool Solutions: Cool Tool

Digg This - Slashdot This

In Brief

Monitor individual drivers on NW, Linux, and Windows, as well as some LDAP search/auth performance and directory sync.

Vitals

Updated:24 Jul 2007
File Size:900KB
License:Free
Download:/coolsolutions/tools/downloads/MiniChecker_20070724.zip
Publisher:Mike Cook

Disclaimer

Please read the note from our friends in legal before using this file.


Details

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.


Screenshots of desktop to give you an idea of what the config GUI looks like.

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 README
==================
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 configuration file.

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.)

Requirements
------------

  • Java JVM v1.4 or higher (on Linux, NetWare, or Windows)
  • Other Java libraries (.jar's) as needed for JDBC, JNDI/LDAP, JSSE, etc.

Command-Line Options
--------------------

java -jar MiniChecker.jar [option] [config file]
Options:
-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.

Configuration File
------------------

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).

Check Classes
-------------

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 are:
  • 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.
------------------------------------------------------------------------------

Novell Cool Solutions (corporate web communities) are produced by WebWise Solutions. www.webwiseone.com

© 2014 Novell