NSClient documentation

November 2000 - Copyright © 2000 Yves Rubin - rubiyz@yahoo.com - Silicon Graphics Inc.

Purpose

NSClient has been developed to get vital information concerning Windows NT servers from Netsaint. The decision has been made to developpe a new tool as none had enough features and stability at this time.

License

This tool has been developed in the same spirit as Netsaint, which means that it is freeware and release under the GNU General Public License.

Requirement

History

06.12.2000 - Version 1.03 - Add the memory usage feature
29.11.2000 - Version 1.02 - First release

Features

Installation

On the Windows machine

  1. Copy pNSClient.exe in any directory on the machine you want to monitor. ie. (c:\nsclient).

  2. Open a dos prompt in the installation directory

  3. Run the following command : >pNSClient /install

  4. Start the service 'Netsaint NT Agent' in the services applet of the control panel.

The installation will create an entry for the service in the registry and create a new key to store parameters. The created key is the following:

HKEY_LOCAL_MACHINE\SOFTWARE\NSClient

On the Unix machine

  1. Copy the file 'check_nt' under the libexec folder of Netsaint

  2. Add the following lines to the commands.cfg file:


# NSClient

command[check_nt_disk]=$USER1$/check_nt -H $HOSTADDRESS$ -p 1248 -v USEDDISKSPACE -l $ARG1$ -w $ARG2$ -c $ARG3$
command[check_nt_cpuload]=$USER1$/check_nt -H $HOSTADDRESS$ -p 1248 -v CPULOAD -l $ARG1$
command[check_nt_uptime]=$USER1$/check_nt -H $HOSTADDRESS$ -p 1248 -v UPTIME
command[check_nt_clientversion]=$USER1$/check_nt -H $HOSTADDRESS$ -p 1248 -v CLIENTVERSION
command[check_nt_process]=$USER1$/check_nt -H $HOSTADDRESS$ -p 1248 -v PROCSTATE -l $ARG1$
command[check_nt_service]=$USER1$/check_nt -H $HOSTADDRESS$ -p 1248 -v SERVICESTATE -l $ARG1$
command[check_nt_memuse]=$USER1$/check_nt -H $HOSTADDRESS$ -p 1248 -v MEMUSE -w $ARG1$ -c $ARG1$

 

Uninstallation

  1. Go to the installation directory and run the following command: >pNSClient /uninstall

All entries in the registry will be removed as well as the definition of the service..

Configuration

There are two parameters you can change: the port (default: 1248) and the password (default: 'None'). These two settings are store in the registry and can only be changed using 'regedit'. Open the following key and change the values if needed :

HKEY_LOCAL_MACHINE\SOFTWARE\NSClient\Parms

 

Plugin syntax

CPULoad

Syntax: check_nt -H <hostname> -p <port> -v CPULOAD -l <minutes range>,<warning percent>,<critical percent>

You can check several intervals in one shot. The follwing command get the average for the last 10min., 60min. and 24hours.

Example: ./check_nt -H 192.168.1.1 -p 1248 -V CPULOAD -l 10,80,95,60,80,95,1440,80,95

 

Disk usage

Syntax: check_nt -H <hostname> -p <port> -v USEDDISKSPACE -l <drive letter> [-w <warning percent> ] [-c <critical percent>]

Example: ./check_nt -H 192.168.1.1 -p 1248 -V USEDDISKSPACE -l C -w 80 -c 90


Uptime

Syntax: ./check_nt -H <hostname> -p <port> -v UPTIME

This plugin doesn't care about warning or critical values. Only the uptime of the machine is received.

 

Services states

Syntax: check_nt -H <hostname> -p <port> -v SERVICESTATE [-d SHOWALL] -l <service 1>[,<service 2>,<service 3>,...]

You can specify serveral services in one request. No blank should appear in the list !

If not all services are running, you get the faulty one(s) and a critical state.

Example: ./check_nt -H 192.168.1.1 -p 1248 -v SERVICESTATE -d SHOWALL -l LanmanServer,Schedule


Processes states

Syntax: check_nt -H <hostname> -p <port> -v PROCSTATE [-d SHOWALL] -l <process 1>[,<process 2>,<process 3>,...]

You can specify serveral processes in one request. No blank should appear in the list !

If not all processes are running, you get the faulty one(s) and a critical state.

Example: ./check_nt -H 192.168.1.1 -p 1248 -v PROCSTATE -d SHOWALL -l McShield.exe,RASMAN.EXE


Client version

Syntax: check_nt -H <hostname> -p <port> -v CLIENTVERSION

Return the NSClient version. No warning or critical threshold can be specified.

 

Memory usage

Syntax: check_nt -H <hostname> -p <port> -v MEMUSE [-w <warning percent> ] [-c <critical percent>]

Example: ./check_nt -H 192.168.1.1 -p 1248 -V MEMUSE -w 80 -c 90

 

Technical information

Windows agent

NSClient has been developed using Borland Delphi 5. It is installed as a service.

Every five seconds, NSClient query Windows to get the CPU load and store this information in a circular buffer which keeps the measures for the last 24 hours. That's the only task of the agent if no request is sent to him.

Have a look at the source code in case you want to know more about it. It's well documented so you shouldn't have too much pain to figure out how it works. Some functions and pieces of code where found on the internet, so I thank very much the programmers who release them as open source. When possible, credits are left in the code.

Unix plug in

The Unix plugin has been written in C, using a template by Ethan Galstad. It mostly uses common functions and shoud be compiled in the same directory as all other plugins. I hope that it will be included in the common distribution.