FAQ

FAQ:

Please contact nmisdev@nmis.co.nz for help.

Update 13May2009:

Q. If i want to customize dashboard to delete some of the buttons:
(Tables -> Locations Contacts Event Policy Logs List Escalation Thresholds Users Nodes Links Interface sysNodes sysInterface Services Model Slaves Toolset), which file do i edit?

A. You have two options - for example if the logged in user is privilege 'operator', then some buttons are grey out, and do not have an attached href. If this is not what you want, you want to remove the button, then set the bgroup to 'disabled' in toolset.csv.

Q. If i want to modify top row "Tue May 12 10:43:36 2009 EDT,
Dash,Large Dash,Doc,Statistics Type,Node,Group,Find,NMIS 4.3.1-beta4", which file do i edit?

A. Look at 'sub nmisMenuSmall' in cgi-bin/nmiscgi.pl and edit the select boxes as you require.
The version 'NMIS 4.3.1-xxx' is at the top of lib/NMIS.pm

Q. If i want to delete some of the buttons in NMIS_Tools column:
HEALTH TRAFFIC LINKLIST PORTSTATS TELNET HTTP PING TRACE
which file do i edit?

A. Set these to 'disabled' in toolset.csv

Tips: A couple of things

to check before you start to panic !!

    Always check your file permissions, the files should be in the right

    group and the HTTP Daemon should be able to read the files as well as

    write some directories.

    Did you check your config against the nmis-sample.conf?

    Did you run "nmis.pl type=config" to make sure the config was right?

    Have you run a "nmis.pl type=update debug=true"?

    Have you been running NMIS for more then 1 hour?

File Sizes:

NMIS creates lots of rrd's Round Robin Databases for each device it manages. 

The current statistics options make the file sizes as follows:

    health rrd 2.5megabytes

    reachability rrd 756kilobytes

    interface rrd 568kilobytes.

All of these RRD's make up the database and for a few routers could become

quite large quite quick.

Q. What is the format for

the "interfaces" file?

A. The interfaces file is automatically generated by the NMIS system. 

You don't need to manually make these interface files.  There is

also an interfaces.dat which is all the interface data for all the devices

put together also generated automatically by the update process.

Q. There are problems with

the loadoids_file subroutine?

A. This is a modification to the SNMP Simple package, SINS has made up

a distribution of SNMP_Simple availble here SNMP_Simple_NMIS.tar.gz

Q. How do I add support for my "name

of box" to NMIS ?

A. NMIS was written to support Cisco routers and switches. Well, thats

not quite true. NMIS can and does use the standard MIB-II SNMP statistics

that are available on modern equipment. So if you want to monitor a server,

printer or some other brand of equipment just identify it as a "server"

in the nodes.csv.

Of course, you aren't going to get the cool graphs that NMIS does for

CPU, Memory or Buffers. This is because they are not standard info and

moust be hardcoded into the Perl code. So if you want to monitor a Nortel

router or a Cabletron switch you will have to get the MIBs and read which

ones you want, then code into NMIS. This is not difficult but you do need

some Perl skills and you would have to be able to read a MIB and generate

an OID file. (Of course, networking knowledge would also be required to

configure the SNMP agent on the device).

Q. How do I add mibs to NMIS?

A. You need to edit the loadmibs.pl script, put the names of the mibs

into the script and generate the OID files.  Not straight forward

if you don't program in Perl but quite easy really.  Something like:

mibdump.pl mibdir=/usr/local/share/snmp/mibs mibs=router outfile=/data/nmis/mibs/cisco-router.oid

You will need copies of MIBS, some available at http://www.sins.com.au/public/

Q. I am having problems with Ping?

A. NMIS now uses Perl Net::Ping and requires NMIS to be run with Root

privileges.  For backwards compatibility the old routines are included

which execute Unix Ping.

Q, Why do my Catalyst (4000, 5000, 6000)

Switch Interfaces not appear in NMIS?

A. NMIS requires a description in the configuration on the switch interfaces

before it will collect data on them.

This is a good idea. You normally only want to monitor ports that connect

to servers or uplinks and who wants to spend time unmarking the interfaces

you don't want. Far better to put a description and let NMIS build the

config dynamically, than to spend time selecting which one of the {large

number} of interfaces you want to monitor (a la MRTG when you use configmaker).

Q.I have a Linux server that I would like to

test reachability of, and preferably graph interface statistics for. I've

got the ucd snmp server on it, and an snmpwalk from the box nmis is running

on to it gives me all the information I would think would be needed.

If I run an update or collect with debug true, it always tells me: "No

system file exists creating one."

and once I'm done, neither <BASE>/var/$node.dat nor <BASE>/var/$node-interface.dat

exists. This is the case when the node type is server or router.

Also, <BASE>/database/health/server/$node-reach.rrd exists, but

with no data in it, and <BASE>/database/interface/server/$node/

exists, but there are no files in it.

A. "The main thing is the removal of the check on system.sysServices,

as ucd-snmp doesn't define this (so NMIS will always think that SNMP is

not working for Linux boxes). "

Q. Do I need to do anything to SNMP Simple ?

A. No. SNMP Simple is now a part of the NMIS files and is already in

place. You can ignore those files.

You should take a few seconds to have a look through it and familiarise

yourself with what it does though. Its not compulsory just a good idea.

< height="223">

Q. What does SNMP Simple do ?

A. SNMP Simple is a set of Perl 5 modules that perform SNMP access requests.

They written by Simon Leinen simon@switch.ch.

Check his website

for full information. The SNMP Simple package contains Perl 5 modules

SNMP_Session.pm and BER.pm, which, when used together, provide rudimentary

access to remote SNMP (v1/v2) agent.

This module differs from existing SNMP packages in that it is completely

stand-alone, i.e. you don't need to have another SNMP package such as

NET-SNMP (as other monitoring packages do). It is also written entirely

in Perl, so you don't have to compile any C modules (very handy and easy

to use). It uses the Perl 5 Socket.pm module and should therefore be very

portable, even to non-Unix systems (so therefore works on a unusual platforms

like Amiga, Alpha and even Microsoft Windows ).

The SNMP operations currently supported are "get", "get-next",

"get-bulk" and "set", as well as trap generation and

reception. NMIS doesn't use the trap features at this time.

< height="142">

Q. What does RRDtool do ?

A. RRDtool refers to Round Robin Database tool. Round robin is a technique

that works with a fixed amount of data, and a pointer to the current element.

Think of a circle with some dots plotted on the edge, these dots are the

places where data can be stored. Draw an arrow from the center of the

circle to one of the dots, this is the pointer. When the current data

is read or written, the pointer moves to the next element. As we are on

a circle there is no beginning nor an end, you can go on and on. After

a while, all the available places will be used and the process automatically

reuses old locations. This way, the database will not grow in size and

therefore requires no maintenance. RRDtool works with with Round Robin

Databases (RRDs). It stores and retrieves data from them.

NMIS uses RRDtool as the database for SNMP information and the graphing

tool. Since NMIS does all of the requests to and from RRDtool, the average

NMIS user has little or no interaction with RRDtool.

Q. Does NMIS work on Microsoft

Windows (any version)?

A. You aren't going to like this. The short answer is no. The long answer

is yes, but.....

NMIS uses the Perl language and an Open Source Perl distribution is available

from ActiveState. However, NMIS uses

a couple of modules to provide Time to the program flow and these do so

at very high resolution. From what we (those good people on

the mailing list) can tell it seems that these modules are Unix/Linux

specific. Its seems that everyone uses a Unix/Linux variant at this time

(usually Red Hat or Debian although Keith wrote NMIS on Solaris i386)

so no-one has gotten around to fixing the problem. Some people have reported

problems with RRDtool on Microsoft platforms also but this is unconfirmed.

A couple of other points. One.The general consensus is that this

program is well suited to Linux/Unix environment and you are broadly encouraged

to do so as well. Two. Since very few people, or perhaps no-one,

is using Microsoft Windows then support is going to be a bit limited.

Three. It would be great if you can get it working on Microsoft

Windows and let us know. Then we can get a more people using NMIS and

develop the software even further than it is now.

< height="31">

Q. Why Don't ping and traceroute work?

NMIS was written on Solaris so until version 2.2 is finalised there are some hard-coded file locations you might have to change in /bin/admin.pl change the file locations for ping, traceroute etc. to suit your machine (the command 'which ping' will tell you where it lives)

You may need to change the syntax of ping - for eample the following works in Linux at about line 89 of /cgi-bin/admin.pl

if ($admin eq "ping") {

$adminoutput=`/bin/ping -c 5 -s 64 $node`;

}

The same applies for other commands. This will be automagically fixed in 2.2 :)

< height="31">

Q. Why Aren't I getting any stored reports?

Change the first line of run-reports.sh to #!/bin/sh if you don't have ksh at /bin/ksh ('which ksh' will tell you where it is or report an error if you don't have it at all.) Check that the path listed in the script will find all the commands listed in the file eg. date, col etc. Again, you can find their locations with 'which commandname

< height="31">

Q. How is the Group Summary metric derived

?

Reachability is 40%, health is 40% and availability is 20%.

< height="186">

Q. What are the weighting for the Health Metric

?

A. This more fully explained in the NMIS Changelog but the basic info

is:

reachability is 30%

interface utilisation is 20%

response time is 20%

availability is 10%

CPU is 10%

MEM is 10%

Interface Utilisation consists of all interface input and output utilisation

are each subtracted from 100, added together and then averaged, this number

is the interface weight, this will contribute 20% of the health metric

and should be quite responsive to interface utilisation.

Q. Can NMIS handle SNMP traps and

syslog?

A. No.  But the NMIS event subsystem could be used in a real

time event system.  It would be possible to integrate NMIS into the

Perl Syslog Daemon @ http://www.weirdness.net/acd/code/syslogacd

or into NET-SNMP which includes a trap daemon, some details are available

@ http://www.sins.com.au/nmis/net-snmp.html.

Q. Can't locate loadable object for module RRDs in @INC
A.
If you try to look at NMIS via a web browser at something like http://<your-web-server>/cgi-nmis/nmiscgi.pl
and you get an error message have a peek in your logs files (usually /usr/local/apache/logs/error.log).
If the last entry mentions "Can't locate loadable object for module RRDs
in @INC" then there are a couple of possibilities

    You did install RRDTool didn't you?
    It should also say what's in @INC. If you don't see a directory
    there like /usr/local/rrdtool/lib/perl then go back to wher your rrdtool
    source is and do a 'make site-perl-install' and try the webpage again
    Check where RRDs.pm is (find /usr/local -name RRDs.pm
    -print should do it). If that's in one of the paths in @INC then check each
    and every dir and subdir from the root down to it is r_x by the apache user
    (usually nobody or httpd).