?
Solved

Sonicwall router/firewall monitoring with Nagios

Posted on 2011-10-03
43
Medium Priority
?
9,998 Views
Last Modified: 2012-05-12
Hi Guys,

I've got a Sonicwall TZ200 that I'd like to monitor with our Nagios server.  So far I'm having trouble finding anything from google regarding this.  I think it can be done using a SNMP arrangement but I've not found any examples to work with.

Have any of you guys done something like this or have any ideas where to look?
0
Comment
Question by:sjb79
  • 22
  • 21
43 Comments
 
LVL 9

Expert Comment

by:Red-King
ID: 36902907
I've set up Nagios in the past to monitor a range of things. The only real requirement is that SNMP is running on the device you want to monitor.
Can you confirm SNMP is enabled on the Sonicwall and that you have the community string set?
0
 

Author Comment

by:sjb79
ID: 36903663
Here are a couple of screenshots of what I've done so far, is this what you are refering too?
Interface-X0-LAN-settings.JPG
snmp-settings.JPG
0
 
LVL 9

Assisted Solution

by:Red-King
Red-King earned 2000 total points
ID: 36903785
Yeah, that's it exactly. It doesn't say there but I'm going to assume the Sonicwall is using SNMP v2c.
I'm also going to assume you have Nagios running on a Linux server and lastly I'll assume you have the net-snmp package installed. Correct me if I'm wrong on any of these.

From the command line of your Nagios server (192.168.0.9 yeah?) try the following command to see that you can access the Sonicwall via SNMP

snmpwalk -v 2c -c public 192.168.0.254 system

This should return all the results from within the System OID that the Sonicwall will respond to. That should look something like in this link http://net-snmp.sourceforge.net/tutorial/tutorial-5/commands/snmpwalk.html

If you can confirm you can connect to the Sonicwall with snmpwalk then the next step would be to look at your nagios config

0
A Cyber Security RX to Protect Your Organization

Join us on December 13th for a webinar to learn how medical providers can defend against malware with a cyber security "Rx" that supports a healthy technology adoption plan for every healthcare organization.

 

Author Comment

by:sjb79
ID: 36903924
Hi Red,

Not sure if the Sonicwall is using SNMP v2c, do you know where that setting is?
Yes Nagios is running on a Linux server - Ubuntu 11.04
Yes the Nagios server is on ip address 192.168.0.9
Got the following output from that command;

rs3@RS3:~$ snmpwalk -v 2c -c public 192.168.0.254 system
system: Unknown Object Identifier (Sub-id not found: (top) -> system)
rs3@RS3:~$


I'm not sure if I have the net-snmp package installed, when I went to apt-get snmp* it came up wth nearly 300megs worth of downloads.  (tried apt-get snmpwalk/* but didn't find anything)
0
 
LVL 9

Assisted Solution

by:Red-King
Red-King earned 2000 total points
ID: 36904235
From what I've found you can use version 1 or version 2c with your Sonicwall. This website has instructions for downloading the MIB file for your device. See the aside below for a bit of an explanation on what a MIB is

It looks like you do have net-snmp installed. If you didn't it would have said something like "could not find snmpwalk in  /usr/local/bin". Net-snmp is a package that has a few different tools in it. One being snmpwalk and snmpget is another that would be used by Nagios.
The error you got simply said that it didn't understand the word System as an Object Identifier (OID).
http://net-snmp.sourceforge.net/docs/FAQ.html#Requesting_an_object_fails_with__Unknown_Object_Identifier___Why_

Try the command again with different OIDs at the end. If these don't work then you need to download the MIB file(s)

snmpwalk -v 2c -c public 192.168.0.254 sysDescr
snmpwalk -v 2c -c public 192.168.0.254 sysUpTime


This is a bit of an aside but it might help.
A device will have many things that can be reported on via SNMP, these are called Objects. Applications that get the information on these Objects use Object Identifiers (OIDs) to tell the device which Object it is interested in and what type of information it wants.
OIDs have a hierarchical structure, you have the System Object at the top of the hierarchy, then below that you will have things like a disk drive Object  or a network Object etc. Each sub level will then have its own Sub level of Objects which can be queried via SNMP.
An OID can be written in number format or text format e.g. .1.3.6.1.2.1.1.3.0 and SNMPv2-MIB::sysUpTime.0 are the same.
An application will use many OIDs for many different devices but will not have list of all the OIDs for all devices. In order to have your application understand an OID from a device it doesn't recognise you need to add the MIB (Management Information Base) file to your application so that your application can query your device and understand what is returned.

0
 
LVL 9

Assisted Solution

by:Red-King
Red-King earned 2000 total points
ID: 36904596
Here's the web page with the details about downloading the mib file which I forgot in my last post.
https://www.fuzeqna.com/sonicwallkb/consumer/kbdetail.asp?kbid=3917

Here's the page that tells you how to add MIBs to Net-SNMP
http://net-snmp.sourceforge.net/wiki/index.php/TUT:Using_and_loading_MIBS
0
 

Author Comment

by:sjb79
ID: 36909457
Hi Red,

I've been reading those links etc (thanks) and I've still not quite got it sorted :-/

this is what I've done.

Downloaded from Sonicwall;
SNWL-COMMON-MIB.MIB
SONICWALL-FIREWALL-IP-STATISTICS-MIB.MIB
SONICWALL-FIREWALL-TRAP-MIB.MIB
SONICWALL-SMI.MIB

placed them in /usr/share/mibs/netsnmp/

rs3@RS3:/etc/snmp$ net-snmp-config --default-mibdirs
/home/rs3/.snmp/mibs:/usr/share/mibs/site:/usr/share/snmp/mibs:/usr/share/mibs/iana:/usr/share/mibs/ietf:/usr/share/mibs/netsnmp

looked in SONICWALL-FIREWALL-IP-STATISTICS-MIB.MIB and found;

sonicCurrentCPUUtil OBJECT-TYPE
        SYNTAX Counter
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
                " Instantaneous CPU Utilization in percent"
        ::= { sonicwallFwStats 3 }


So I tried rs3@RS3:/usr/share/mibs/netsnmp$ snmptranslate -m +SONICWALL-FIREWALL-IP-STATISTICS-MIB.MIB -IR -On sonicCurrentCPUUtil

No log handling enabled - turning on stderr logging
MIB search path: /home/rs3/.snmp/mibs:/usr/share/mibs/site:/usr/share/snmp/mibs:/usr/share/mibs/iana:/usr/share/mibs/ietf:/usr/share/mibs/netsnmp
Cannot find module (HOST-RESOURCES-MIB): At line 1 in (none)
Cannot find module (HOST-RESOURCES-TYPES): At line 1 in (none)
Cannot find module (SNMPv2-TC): At line 10 in /usr/share/mibs/netsnmp/UCD-DLMOD-MIB
Cannot find module (SNMPv2-SMI): At line 34 in /usr/share/mibs/netsnmp/UCD-SNMP-MIB
Cannot find module (SNMPv2-TC): At line 37 in /usr/share/mibs/netsnmp/UCD-SNMP-MIB
blah blah blah
Cannot adopt OID in UCD-SNMP-MIB: laLoad ::= { laEntry 3 }
Cannot adopt OID in UCD-SNMP-MIB: laNames ::= { laEntry 2 }
Cannot adopt OID in UCD-SNMP-MIB: laIndex ::= { laEntry 1 }
Unknown object identifier: sonicCurrentCPUUtil

Now I am a little confused, is there something I've missed (probably)?
0
 

Author Comment

by:sjb79
ID: 36910384
Took a few more minutes to try a few things;

rs3@RS3:~$ snmpwalk -v2c -c public 192.168.0.254
iso.3.6.1.2.1.1.1.0 = STRING: "SonicWALL TZ 200 (SonicOS Enhanced 5.6.0.11-61o)"
iso.3.6.1.2.1.1.2.0 = OID: iso.3.6.1.4.1.8741.1
iso.3.6.1.2.1.1.3.0 = Timeticks: (226018639) 26 days, 3:49:46.39
iso.3.6.1.2.1.1.4.0 = ""
iso.3.6.1.2.1.1.5.0 = STRING: "Sonicwall TZ200"
iso.3.6.1.2.1.1.6.0 = ""
iso.3.6.1.2.1.1.7.0 = INTEGER: 79
iso.3.6.1.2.1.2.1.0 = INTEGER: 7
iso.3.6.1.2.1.2.2.1.1.1 = INTEGER: 1
iso.3.6.1.2.1.2.2.1.1.2 = INTEGER: 2
iso.3.6.1.2.1.2.2.1.1.3 = INTEGER: 3
iso.3.6.1.2.1.2.2.1.1.4 = INTEGER: 4
iso.3.6.1.2.1.2.2.1.1.5 = INTEGER: 5
iso.3.6.1.2.1.2.2.1.1.6 = INTEGER: 6
iso.3.6.1.2.1.2.2.1.1.7 = INTEGER: 7
iso.3.6.1.2.1.2.2.1.2.1 = STRING: "LOOPBACK"
iso.3.6.1.2.1.2.2.1.2.2 = STRING: "X0 (Portshield Host)"
iso.3.6.1.2.1.2.2.1.2.3 = STRING: "X1 (WAN)"
iso.3.6.1.2.1.2.2.1.2.4 = STRING: "X2 (WAN)"

0
 
LVL 9

Assisted Solution

by:Red-King
Red-King earned 2000 total points
ID: 36910977
Most of those errors you've gotten back are informational. Its a good idea to clean them up because they might fill up the Nagios log file ... if Nagios logs them, I'm not sure if it does.

You've come across the "Unknown Object Identifier" error again which is the one line you're really interested in.

The option you've used "-m +SONICWALL-FIREWALL-IP-STATISTICS-MIB.MIB" is a problem here. The -m option is for a mib module which is not the same as a mib file.

When I tried this on my own system I found that even though I had the file in the correct directory it still didn't find the OID from a new mib file when I ran an snmptranslate.

What I did was set an environment variable called MIBS to the value ALL i.e.

export MIBS=ALL

Then I ran an snmptranslate, without the -m option, and it found the OID.
So, after exporting the MIBS variable, try;

snmptranslate -IR -On sonicCurrentCPUUtil

Remember if this works you'll need to make sure that the MIBS variable is set when the machine boots, otherwise everything might break on a restart.

If the snmptranslate works then run
snmpget -v 2c -c public 192.168.0.254 sonicCurrentCPUUtil

You should get a single value back which I think will be a percentage.

Rory
0
 
LVL 9

Assisted Solution

by:Red-King
Red-King earned 2000 total points
ID: 36911041
I had this page open ages and just saw your last post.
That's great, the snmpwalk has returned lots of info from different OIDs

I think if it can read the MIB file correctly it will change all those OID numbers to the text equivalent.
If you can get the text equivalent back from an snmp walk then you should be able to use that text in Nagios to  specify what you want it to monitor.

If you can't get the text equivalent you should be able to use the OID numbers i.e.

snmpget -v2c -c public 192.168.0.254 iso.3.6.1.2.1.1.1.0

Should return

SonicWALL TZ 200 (SonicOS Enhanced 5.6.0.11-61o)
0
 

Author Comment

by:sjb79
ID: 36911193
Hi Rory,

Ok I did what you suggested and got the following;

rs3@RS3:~$ export MIBS=ALL
rs3@RS3:~$
rs3@RS3:~$
rs3@RS3:~$ snmptranslate -IR -On sonicCurrentCPUUtil
No log handling enabled - turning on stderr logging
MIB search path: /home/rs3/.snmp/mibs:/usr/share/mibs/site:/usr/share/snmp/mibs:/usr/share/mibs/iana:/usr/share/mibs/ietf:/usr/share/mibs/netsnmp
Cannot find module (SNMPv2-TC): At line 15 in /usr/share/mibs/netsnmp/UCD-DISKIO-MIB
Cannot find module (SNMPv2-SMI): At line 34 in /usr/share/mibs/netsnmp/UCD-SNMP-MIB
Cannot find module (SNMPv2-TC): At line 37 in /usr/share/mibs/netsnmp/UCD-SNMP-MIB
Did not find 'enterprises' in module #-1 (/usr/share/mibs/netsnmp/UCD-SNMP-MIB)
Did not find 'DisplayString' in module #-1 (/usr/share/mibs/netsnmp/UCD-SNMP-MIB)
Did not find 'TruthValue' in module #-1 (/usr/share/mibs/netsnmp/UCD-SNMP-MIB)
Unlinked OID in UCD-SNMP-MIB: ucdavis ::= { enterprises 2021 }
Undefined identifier: enterprises near line 39 of /usr/share/mibs/netsnmp/UCD-SNMP-MIB
blah blah blah
Cannot adopt OID in SNWL-COMMON-MIB: snwlSysAssetNumber ::= { snwlSys 5 }
Cannot adopt OID in SNWL-COMMON-MIB: snwlSysROMVersion ::= { snwlSys 4 }
Cannot adopt OID in SNWL-COMMON-MIB: snwlSysFirmwareVersion ::= { snwlSys 3 }
Cannot adopt OID in SNWL-COMMON-MIB: snwlSysSerialNumber ::= { snwlSys 2 }
Cannot adopt OID in SNWL-COMMON-MIB: snwlSysModel ::= { snwlSys 1 }
Cannot adopt OID in LM-SENSORS-MIB: lmTempSensorsEntry ::= { lmTempSensorsTable 1 }
Cannot adopt OID in SONICWALL-FIREWALL-TRAP-MIB: anonymous#73 ::= { sonicwallFwTrapRoot 0 }
Cannot adopt OID in SONICWALL-FIREWALL-TRAP-MIB: anonymous#72 ::= { sonicwallFwTrapRoot 0 }
Cannot adopt OID in SONICWALL-FIREWALL-TRAP-MIB: anonymous#71 ::= { sonicwallFwTrapRoot 0 }
Cannot adopt OID in SONICWALL-FIREWALL-TRAP-MIB: anonymous#70 ::= { sonicwallFwTrapRoot 0 }
Cannot adopt OID in SONICWALL-FIREWALL-TRAP-MIB: anonymous#69 ::= { sonicwallFwTrapRoot 0 }
Cannot adopt OID in SONICWALL-FIREWALL-TRAP-MIB: anonymous#68 ::= { sonicwallFwTrapRoot 0 }
Cannot adopt OID in SONICWALL-FIREWALL-TRAP-MIB: anonymous#67 ::= { sonicwallFwTrapRoot 0 }
Cannot adopt OID in SONICWALL-FIREWALL-TRAP-MIB: anonymous#66 ::= { sonicwallFwTrapRoot 0 }
blah blah blah
Cannot adopt OID in NET-SNMP-AGENT-MIB: nsNotifyShutdown ::= { netSnmpNotifications 2 }
Cannot adopt OID in NET-SNMP-AGENT-MIB: nsNotifyStart ::= { netSnmpNotifications 1 }
Unknown object identifier: sonicCurrentCPUUtil
rs3@RS3:~$

So it appears now to be finding the Sonicwall MIB files but can't seem to read the contents...?
0
 
LVL 9

Assisted Solution

by:Red-King
Red-King earned 2000 total points
ID: 36911396
Ok, there might be a dependency issue here in this case.
Lets see if you can clear up some of those errors which will hopefully sort out some of the problems

You can download the SNMPv2-SMI mib from the link below, click on the Zip icon at the top.
http://www.oidview.com/mibs/0/SNMPv2-SMI.html

Add the mib file to your repository and try the translate again.
0
 
LVL 9

Assisted Solution

by:Red-King
Red-King earned 2000 total points
ID: 36911425
If you still the the SNMPv2-TC error after that then you can download the relevant mib at
http://www.mibsearch.com/vendors/RFC/mibview/SNMPv2-TC

0
 

Author Comment

by:sjb79
ID: 36915771
Hi Rory,

I copied SNMPv2-SMI onto the Nagios server and tried the following;

rs3@RS3:~$ snmpget -v2c -c public 192.168.0.254 iso.3.6.1.2.1.1.1.0
iso.3.6.1.2.1.1.1.0 = STRING: "SonicWALL TZ 200 (SonicOS Enhanced 5.6.0.11-61o)"

rs3@RS3:~$ snmpget -v 2c -c public 192.168.0.254 sonicCurrentCPUUtil
sonicCurrentCPUUtil: Unknown Object Identifier (Sub-id not found: (top) -> sonicCurrentCPUUtil)

rs3@RS3:~$ snmpwalk -v 2c -c public 192.168.0.254 sysDescr
sysDescr: Unknown Object Identifier (Sub-id not found: (top) -> sysDescr)

rs3@RS3:~$ snmpwalk -v 2c -c public 192.168.0.254 sysUpTime
sysUpTime: Unknown Object Identifier (Sub-id not found: (top) -> sysUpTime)

rs3@RS3:~$ snmpwalk -v 2c -c public 192.168.0.254 system
system: Unknown Object Identifier (Sub-id not found: (top) -> system)


So I still need to copy that SNMPv2-TC file from that website mentioned above?
0
 
LVL 9

Assisted Solution

by:Red-King
Red-King earned 2000 total points
ID: 36916632
It looks like the SNMPv2-SMI mib cleared up everything which is great, that narrows down the potential issues and you probably won't need the other SNMPv2-TC mib.

One reason I've seen for the "Sub-id not found" error is that the text OID specified is case sensitive and you may not have gotten the right case.

Do an snmp walk  of the sonicwall again to see if you get all the text names for the OIDs. It may be that the names used in you last post dont respond for your TZ200 or maybe you need to be more specific with name.

snmpwalk -v2c -c public 192.168.0.254

The first snmpget you did worked because you used the number format which is very specific as it starts from the top of the hierarchy (i.e. iso) When you use the text version as you have above that references only the last or second last number in the numerical OID.

Try an SNMP translate of the sonicCurrentCPUUtil module and then try the SNMP get with the resulting numerical  OID.

snmptranslate -IR -On sonicCurrentCPUUtil
(lets say this gives the OID .1.3.6.1.2.1.1.7.0)

snmpget -v 2c -c public 192.168.0.254 .1.3.6.1.2.1.1.7.0

If the snmpget works using the numerical OID of sonicCurrentCPUUtil then try working backwards by translating the numerical OID back to the text version. Once you get the text version back from snmptranslate try doing an snmpget with the text returned e.g.

snmptranslate .1.3.6.1.2.1.1.7.0
SONICWALL-FIREWALL-IP-STATISTICS-MIB::sonicCurrentCPUUtil

snmpget -v 2c -c public 192.168.0.254 SONICWALL-FIREWALL-IP-STATISTICS-MIB::sonicCurrentCPUUtil

If that is successful then you can do the same thing to find out the correct text you should be using for each OID that you wish to return data for.

I think you nearly have this sorted now. Hopefully the Nagios config will be pretty straight forward once the snmp commands are working as expected.
0
 

Author Comment

by:sjb79
ID: 36917145
Hi Rory,

Ok I gave that snmpwalk -v2c -c public 192.168.0.254 and got;
 
rs3@RS3:~$ snmpwalk -v2c -c public 192.168.0.254
iso.3.6.1.2.1.1.1.0 = STRING: "SonicWALL TZ 200 (SonicOS Enhanced 5.6.0.11-61o)"
iso.3.6.1.2.1.1.2.0 = OID: iso.3.6.1.4.1.8741.1
iso.3.6.1.2.1.1.3.0 = Timeticks: (234115419) 27 days, 2:19:14.19
iso.3.6.1.2.1.1.4.0 = ""
iso.3.6.1.2.1.1.5.0 = STRING: "Sonicwall TZ200"
iso.3.6.1.2.1.1.6.0 = ""
Blah Blah Blah
iso.3.6.1.2.1.31.1.1.1.19.7 = Timeticks: (0) 0:00:00.00

I take it those iso numbers reference the different objects.
So ok then I tried;

rs3@RS3:~$ snmptranslate -IR -On sonicCurrentCPUUtil
Unknown object identifier: sonicCurrentCPUUtil

AGGGHHHH!!!!

So I had a cup of tea and did some re-reading and thought I'd try this;

rs3@RS3:~$ snmptranslate -m SNWL-COMMON-MIB -IR -On sonicCurrentCPUUtil
No log handling enabled - turning on stderr logging
MIB search path: /home/rs3/.snmp/mibs:/usr/share/mibs/site:/usr/share/snmp/mibs:/usr/share/mibs/iana:/usr/share/mibs/ietf:/usr/share/mibs/netsnmp
Cannot find module (SNMPv2-TC): At line 18 in /usr/share/mibs/netsnmp/SNWL-COMMON-MIB.MIB
Attempt to define a root oid (iso): At line 9 in /usr/share/mibs/netsnmp/SNMPv2-SMI.mib
Bad parse of OBJECT IDENTIFIER: At line 9 in /usr/share/mibs/netsnmp/SNMPv2-SMI.mib
Did not find 'enterprises' in module SNMPv2-SMI (/usr/share/mibs/netsnmp/SONICWALL-SMI.MIB)
Unlinked OID in SONICWALL-SMI: sonicwall ::= { enterprises 8741 }
Undefined identifier: enterprises near line 39 of /usr/share/mibs/netsnmp/SONICWALL-SMI.MIB
Did not find 'DisplayString' in module #-1 (/usr/share/mibs/netsnmp/SNWL-COMMON-MIB.MIB)
Did not find 'sonicwallCommon' in module SONICWALL-SMI (/usr/share/mibs/netsnmp/SNWL-COMMON-MIB.MIB)
Unlinked OID in SNWL-COMMON-MIB: snwlCommonModule ::= { sonicwallCommon 1 }
Undefined identifier: sonicwallCommon near line 25 of /usr/share/mibs/netsnmp/SNWL-COMMON-MIB.MIB
Cannot adopt OID in SNWL-COMMON-MIB: snwlSysAssetNumber ::= { snwlSys 5 }
Cannot adopt OID in SNWL-COMMON-MIB: snwlSysROMVersion ::= { snwlSys 4 }
Cannot adopt OID in SNWL-COMMON-MIB: snwlSysFirmwareVersion ::= { snwlSys 3 }
Cannot adopt OID in SNWL-COMMON-MIB: snwlSysSerialNumber ::= { snwlSys 2 }
Cannot adopt OID in SNWL-COMMON-MIB: snwlSysModel ::= { snwlSys 1 }
Cannot adopt OID in SONICWALL-SMI: sonicwall ::= { enterprises 8741 }
Cannot adopt OID in SONICWALL-SMI: sonicwallCDP ::= { sonicwall 7 }
Cannot adopt OID in SONICWALL-SMI: sonicwallSSLVPN ::= { sonicwall 6 }
Cannot adopt OID in SONICWALL-SMI: sonicwallDataCenter ::= { sonicwall 5 }
Cannot adopt OID in SONICWALL-SMI: sonicwallEmailSec ::= { sonicwall 4 }
Cannot adopt OID in SONICWALL-SMI: sonicwallGMS ::= { sonicwall 3 }
Cannot adopt OID in SONICWALL-SMI: sonicwallCommon ::= { sonicwall 2 }
Cannot adopt OID in SONICWALL-SMI: sonicwallFw ::= { sonicwall 1 }
Cannot adopt OID in SNWL-COMMON-MIB: snwlSys ::= { snwlCommonModule 1 }
Cannot adopt OID in SNWL-COMMON-MIB: snwlCommonModule ::= { sonicwallCommon 1 }
Unknown object identifier: sonicCurrentCPUUtil
rs3@RS3:~$

I noticed the Cannot find module (SNMPv2-TC) comment.  Should I go and download that file you mentioned earlier?
If so it appears to be just text on a webpage, so I take it I just copy that text and paste it into a file of the same name on the server?

When we do get this working I am going to write up all of this so that anyone can get a Sonicwall device up and running with Ubuntu/Nagios...!
0
 
LVL 9

Expert Comment

by:Red-King
ID: 36917530
Well it looks like you do need the SNMPv2-TC after all.
Just copy the text from the webpage into a text file and save it as SNMPv2-TC.mib (I don't think the filename matters other than it should end in .mib)

You're right in saying the iso numbers reference the different objects, they are the numeric form of the OID.

As I understand it the snmpget command will change sonicCurrentCPUUtil to a numeric OID or iso number. It will then use that number to get the info from the sonicwall.
If you do an snmpget with the iso number it will probably work no problem. When you use the text form though, it doesn't work because it can't translate the text to the iso number.

Anyway, try adding the SNMPv2-TC MIB and we'll see how that works.
0
 

Author Comment

by:sjb79
ID: 36917747
Ok,

rs3@RS3:/usr/share/mibs/netsnmp$ ls -l
total 408
-rw-r--r-- 1 root root   1913 2011-02-02 18:15 GNOME-SMI
-rw-r--r-- 1 root root   5931 2011-02-02 18:15 LM-SENSORS-MIB
-rw-r--r-- 1 root root  15901 2011-02-02 18:15 NET-SNMP-AGENT-MIB
-rw-r--r-- 1 root root   9160 2011-02-02 18:15 NET-SNMP-EXAMPLES-MIB
-rw-r--r-- 1 root root   9326 2011-02-02 18:15 NET-SNMP-EXTEND-MIB
-rw-r--r-- 1 root root   2036 2011-02-02 18:15 NET-SNMP-MIB
-rw-r--r-- 1 root root   1215 2011-02-02 18:15 NET-SNMP-MONITOR-MIB
-rw-r--r-- 1 root root   3350 2011-02-02 18:15 NET-SNMP-PASS-MIB
-rw-r--r-- 1 root root   1226 2011-02-02 18:15 NET-SNMP-SYSTEM-MIB
-rw-r--r-- 1 root root   4495 2011-02-02 18:15 NET-SNMP-TC
-rw-r--r-- 1 root root   5039 2011-02-02 18:15 NET-SNMP-VACM-MIB
-rw-r--r-- 1 root root  10571 2011-10-05 09:53 SNMPv2-SMI.mib
-rw-r--r-- 1 root root  40397 2011-10-05 15:50 SNMPv2-TC.MIB
-rw-r--r-- 1 root root   2207 2011-09-30 09:56 SNWL-COMMON-MIB.MIB
-rw-r--r-- 1 root root   6486 2011-09-30 09:56 SONICWALL-FIREWALL-IP-STATISTICS-MIB.MIB
-rw-r--r-- 1 root root 189201 2011-09-30 09:56 SONICWALL-FIREWALL-TRAP-MIB.MIB
-rw-r--r-- 1 root root   2615 2011-09-30 09:56 SONICWALL-SMI.MIB
-rw-r--r-- 1 root root   2163 2011-02-02 18:15 UCD-DEMO-MIB
-rw-r--r-- 1 root root   4613 2011-02-02 18:15 UCD-DISKIO-MIB
-rw-r--r-- 1 root root   3087 2011-02-02 18:15 UCD-DLMOD-MIB
-rw-r--r-- 1 root root   8118 2011-02-02 18:15 UCD-IPFWACC-MIB
-rw-r--r-- 1 root root  44971 2011-02-02 18:15 UCD-SNMP-MIB


So....

rs3@RS3:~$ snmptranslate -m SNWL-COMMON-MIB -IR -On sonicCurrentCPUUtil
No log handling enabled - turning on stderr logging
Attempt to define a root oid (iso): At line 9 in /usr/share/mibs/netsnmp/SNMPv2-SMI.mib
Bad parse of OBJECT IDENTIFIER: At line 9 in /usr/share/mibs/netsnmp/SNMPv2-SMI.mib
Did not find 'enterprises' in module SNMPv2-SMI (/usr/share/mibs/netsnmp/SONICWALL-SMI.MIB)
Unlinked OID in SONICWALL-SMI: sonicwall ::= { enterprises 8741 }
Undefined identifier: enterprises near line 39 of /usr/share/mibs/netsnmp/SONICWALL-SMI.MIB
Did not find 'sonicwallCommon' in module SONICWALL-SMI (/usr/share/mibs/netsnmp/SNWL-COMMON-MIB.MIB)
Unlinked OID in SNWL-COMMON-MIB: snwlCommonModule ::= { sonicwallCommon 1 }
Undefined identifier: sonicwallCommon near line 25 of /usr/share/mibs/netsnmp/SNWL-COMMON-MIB.MIB
Cannot adopt OID in SNWL-COMMON-MIB: snwlSysAssetNumber ::= { snwlSys 5 }
Cannot adopt OID in SNWL-COMMON-MIB: snwlSysROMVersion ::= { snwlSys 4 }
Cannot adopt OID in SNWL-COMMON-MIB: snwlSysFirmwareVersion ::= { snwlSys 3 }
Cannot adopt OID in SNWL-COMMON-MIB: snwlSysSerialNumber ::= { snwlSys 2 }
Cannot adopt OID in SNWL-COMMON-MIB: snwlSysModel ::= { snwlSys 1 }
Cannot adopt OID in SONICWALL-SMI: sonicwall ::= { enterprises 8741 }
Cannot adopt OID in SONICWALL-SMI: sonicwallCDP ::= { sonicwall 7 }
Cannot adopt OID in SONICWALL-SMI: sonicwallSSLVPN ::= { sonicwall 6 }
Cannot adopt OID in SONICWALL-SMI: sonicwallDataCenter ::= { sonicwall 5 }
Cannot adopt OID in SONICWALL-SMI: sonicwallEmailSec ::= { sonicwall 4 }
Cannot adopt OID in SONICWALL-SMI: sonicwallGMS ::= { sonicwall 3 }
Cannot adopt OID in SONICWALL-SMI: sonicwallCommon ::= { sonicwall 2 }
Cannot adopt OID in SONICWALL-SMI: sonicwallFw ::= { sonicwall 1 }
Cannot adopt OID in SNWL-COMMON-MIB: snwlSys ::= { snwlCommonModule 1 }
Cannot adopt OID in SNWL-COMMON-MIB: snwlCommonModule ::= { sonicwallCommon 1 }
Unknown object identifier: sonicCurrentCPUUtil
rs3@RS3:~$

Hmmm... still not working...I've noticed inside the files there are lists of what appears to be called "OBJECT IDENTIFIER"s ...perhaps the mib files from sonicwalls' website don't have "sonicCurrentCPUUtil" as an OID, I've had a quick read through one and can't find it.... perhaps they (now?) use a different name?
0
 
LVL 9

Expert Comment

by:Red-King
ID: 36918361
I just did a fresh install of net-snmp from source on a base CentOS server that I installed yesterday (this had almost nothing else on it, I had to install make and gcc just to be able to install other stuff).
This fresh install of net-snmp has the following mib files listed in the directory /usr/local/share/snmp (amoung many others)

-rw-r--r--. 1 root root  29305 Oct  5 17:47 SNMPv2-MIB.txt
-rw-r--r--. 1 root root   8924 Oct  5 17:47 SNMPv2-SMI.txt
-rw-r--r--. 1 root root  38034 Oct  5 17:47 SNMPv2-TC.txt

I'm not getting the errors you are seeing with this fresh install (though I don't have the same sonicwall mibs)

I think it might be worth removing and reinstalling net-snmp on your server.

Alternatively, you could do the following;
Download the source package from http://www.net-snmp.org/download.html
Backup you current mibs folder to another location.
Delete all the files from /usr/share/mibs/netsnmp/ (excluding the sonicwall ones)
Copy all the mib files from downloaded source package mibs folder to your /usr/share/mibs/netsnmp/ folder.

0
 
LVL 9

Assisted Solution

by:Red-King
Red-King earned 2000 total points
ID: 36918658
(I've used code blocks below to make this more legible)

To find something you can query in a MIB do the following.
Pick a file and search for DEFINITIONS in it e.g.

grep DEFINITIONS SNWL-COMMON-MIB.MIB

Open in new window


This will return something like

SNWL-COMMON-MIB DEFINITIONS ::= BEGIN

Open in new window


The first part before the word DEFINITIONS is the Module.

Now search the same file for the term OBJECT-TYPE e.g.

grep OBJECT-TYPE SNWL-COMMON-MIB.MIB

Open in new window

Which returns;

    OBJECT-TYPE,
snwlSysModel OBJECT-TYPE
snwlSysSerialNumber OBJECT-TYPE
snwlSysFirmwareVersion OBJECT-TYPE
snwlSysROMVersion OBJECT-TYPE
snwlSysAssetNumber OBJECT-TYPE

Open in new window


The first part before the term OBJECT-TYPE is a text identifier of an OID which you can use along with the module to be very specific of the OID you are looking for in your snmpget or translate commands. Concatenate the module and object text with a double colon e.g.

snmptranslate -IR -On SNWL-COMMON-MIB::snwlSysFirmwareVersion

Open in new window


This should return a numerical OID, but for me it gave the following errors;

Did not find 'sonicwallCommon' in module SONICWALL-SMI (/usr/local/share/snmp/mibs/SNWL-COMMON-MIB.MIB)
Unlinked OID in SNWL-COMMON-MIB: snwlCommonModule ::= { sonicwallCommon 1 }
Undefined identifier: sonicwallCommon near line 27 of /usr/local/share/snmp/mibs/SNWL-COMMON-MIB.MIB
Unknown object identifier: SNWL-COMMON-MIB::snwlSysFirmwareVersion

Open in new window



Looking more closely at the content of the SNWL-COMMON-MIB mib file it says to import the object sonicwallCommon from the module SONICWALL-SMI. When you look at the mib file that contains the SONICWALL-SMI module there is no object sonicwallCommon listed.

So in an effort to see if this would make it work I edited the SONICWALL-SMI.MIB file to be that shown in the code block below.
-- *****************************************************************
-- SONICWALL-SMI.MIB
--
-- February 2001, Susan Yan
--
-- Copyright (c) 2001 by SonicWall, Inc.
-- All rights reserved.
-- *****************************************************************



--FORCE-INCLUDE <asn1conf.h>
--FORCE-INCLUDE <mib.h>
--FORCE-INCLUDE <snmpdefs.h>
--FORCE-INCLUDE "swMibhand.h"


SONICWALL-SMI DEFINITIONS ::= BEGIN

IMPORTS
        MODULE-IDENTITY,
        OBJECT-IDENTITY,
        enterprises
                FROM SNMPv2-SMI;

sonicwall MODULE-IDENTITY
        LAST-UPDATED "200102230000Z"
        ORGANIZATION "SonicWall, Inc."
        CONTACT-INFO
                "       SonicWall Inc.

                Postal: 1160 Bordeaux Dr.
                        Sunnyvale, CA 94089
                        USA

                   Tel: +1 408 745 9600
                   Fax: +1 408 745 9300

                E-mail: product@sonicwall.com"
        DESCRIPTION
                "The MIB Module for Sonicwall enterprise."
        REVISION      "200102230000Z"
        DESCRIPTION
                "Initial version."
        ::= { enterprises 8714 }


sonicwallFw OBJECT-IDENTITY
        STATUS  current
        DESCRIPTION
                "sonicwallFw is the subtree for the sonicwall firewall production."
        ::= { sonicwall 1 }

sonicwallCommon OBJECT-IDENTITY
        STATUS  current
        DESCRIPTION
                "Added by Rory to see if it makes any difference."
        ::= { sonicwall 2 }

END

Open in new window



I then tried running the translate again;

[root@SVR006 mibs]# snmptranslate -IR -On SNWL-COMMON-MIB::snwlSysFirmwareVersion
.1.3.6.1.4.1.8714.2.1.1.3

Open in new window


Bingo! That seemed to do it.


0
 

Author Comment

by:sjb79
ID: 36929827
Sorry for not getting back sooner.  I decided yesterday that as things on the server had become a bit messy (and you said about reinstalling NET-SNMP I decided to wipe the slate clean and start again, so I copied all the config files off the server and did a whole sale reinstall.  Once Ubuntu 11.04 was reinstalled it only took about an hour to put all the Nagios stuff back on it and get it back up and runnig.

I'll keep in mind your suggestion about downloading and compiling NET-SNMP - I'm not that confident about doing that and still have some hope that the version supplied from Canonical/Ubuntu is up to it.

I followed your entry above;
grep DEFINITIONS SNWL-COMMON-MIB.MIB - output matched
grep OBJECT-TYPE SNWL-COMMON-MIB.MIB - output matched
snmptranslate -IR -On SNWL-COMMON-MIB::snwlSysFirmwareVersion - output matched


Now, I stopped at the point where you edited SONICWALL-SMI.MIB.  Mine is a little different from yours;

 
-- *****************************************************************
-- SONICWALL-SMI.MIB
--
-- February 2001, Susan Yan
-- Apr  2003,     Change Postal, Susan Yan
-- Nov  2007,     Added sonicwallCommon, Mike Uy
-- Sep 19, 2008   Added sonicwallEmailSec, Mike Uy
-- Jan 28, 2009   Added sonicwallDataCenter, Mike Uy
-- Apr 07, 2009   Inserted sonicwallGMS Group, Mike Uy
--                at index 3, bumped up sonicwallEmailSec to 4
--                and sonicwallDataCenter to 5
-- 04-17-09       Updated E-mail CONTACT-INFO, Rosalea Real
-- 09-17-09       Added sonicwallSSLVPN and sonicwallCDP 
--                groups; cosmetic/text changes, Mike Uy
-- 11-11-09       Renamed this file from
--                SW-SMI.MIB to
--                SONICWALL-SMI.MIB, Mike Uy
--
-- Copyright (c) 2007-2009 by SonicWall, Inc.
-- All rights reserved.
-- *****************************************************************


SONICWALL-SMI
 
--FORCE-INCLUDE <mib.h>
--FORCE-INCLUDE <snmpdefs.h>
--FORCE-INCLUDE "swPrivMibhand.h"


DEFINITIONS ::= BEGIN

IMPORTS
	MODULE-IDENTITY,
	OBJECT-IDENTITY,
	enterprises
		FROM SNMPv2-SMI;

sonicwall MODULE-IDENTITY
	LAST-UPDATED "200911110000Z"
	ORGANIZATION "SonicWALL, Inc."
	CONTACT-INFO
		"	SonicWall Inc.

		Postal: 2001 Logic Drive
			San Jose, CA 95124-3452
			USA

		   Tel: +1 408 745 9600
		   Fax: +1 408 745 9300

		E-mail: products@sonicwall.com"
	DESCRIPTION
		"The MIB Module for SonicWALL enterprise."
	REVISION      "200304220000Z"
	DESCRIPTION
		"Initial version."
	::= { enterprises 8741 }
	

sonicwallFw OBJECT-IDENTITY
	STATUS	current
	DESCRIPTION
		"sonicwallFw is the subtree for the SonicWALL firewall products."
	::= { sonicwall 1 }

sonicwallCommon OBJECT-IDENTITY
	STATUS	current
	DESCRIPTION
		"Subtree for MIBs common for all SonicWALL products"
	::= { sonicwall 2 }

sonicwallGMS OBJECT-IDENTITY
	STATUS	current
	DESCRIPTION
		"sonicwallGMS is the subtree for the SonicWALL Global Management System products."
	::= { sonicwall 3 }

sonicwallEmailSec OBJECT-IDENTITY
	STATUS	current
	DESCRIPTION
		"sonicwallEmailSec is the subtree for SonicWALL email security products."
	::= { sonicwall 4 }

sonicwallDataCenter OBJECT-IDENTITY
	STATUS	current
	DESCRIPTION
		"sonicwallDataCenter is the subtree for SonicWALL datacenter operations."
	::= { sonicwall 5 }

sonicwallSSLVPN OBJECT-IDENTITY
	STATUS	current
	DESCRIPTION
		"sonicwallSSLVPN is the subtree for SonicWALL SSL VPN products."
	::= { sonicwall 6 }

sonicwallCDP OBJECT-IDENTITY
	STATUS	current
	DESCRIPTION
		"sonicwallCDP is the subtree for SonicWALL CDP products."
	::= { sonicwall 7 }

END

Open in new window


Before I did anything I wanted to see what you thought, should I rename this file and cut and paste yours in?
0
 

Author Comment

by:sjb79
ID: 36931984
I've been looking and looking and looking at the sonicwall files and snmp files and thinking lots.  I was still getting that error message;

rs3@RS3:/usr/lib/nagios/plugins$ snmptranslate -On SONICWALL-FIREWALL-IP-STATISTICS-MIB::sonicCurrentCPUUtil
No log handling enabled - turning on stderr logging
Attempt to define a root oid (iso): At line 9 in /usr/share/mibs/netsnmp/SNMPv2-SMI.mib
Bad parse of OBJECT IDENTIFIER: At line 9 in /usr/share/mibs/netsnmp/SNMPv2-SMI.mib
Did not find 'enterprises' in module SNMPv2-SMI (/usr/share/mibs/netsnmp/SONICWALL-SMI.MIB)
Unlinked OID in SONICWALL-SMI: sonicwall ::= { enterprises 8741 }
Undefined identifier: enterprises near line 39 of /usr/share/mibs/netsnmp/SONICWALL-SMI.MIB
Did not find 'sonicwallFw' in module SONICWALL-SMI (/usr/share/mibs/netsnmp/SONICWALL-FIREWALL-IP-STATISTICS-MIB.MIB)
Unlinked OID in SONICWALL-FIREWALL-IP-STATISTICS-MIB: sonicwallFwStatsModule ::= { sonicwallFw 3 }
Undefined identifier: sonicwallFw near line 32 of /usr/share/mibs/netsnmp/SONICWALL-FIREWALL-IP-STATISTICS-MIB.MIB
SONICWALL-FIREWALL-IP-STATISTICS-MIB::sonicCurrentCPUUtil: Unknown Object Identifier

Then I thought I'd see what it was complaining about;

The first bit said;

Attempt to define a root oid (iso): At line 9 in /usr/share/mibs/netsnmp/SNMPv2-SMI.mib
Bad parse of OBJECT IDENTIFIER: At line 9 in /usr/share/mibs/netsnmp/SNMPv2-SMI.mib


So I thought I'd look at line 9 of SNMPv2-SMI.mib;


 
-- extracted from rfc2578.txt
-- at Mon Nov 15 17:12:02 1999

SNMPv2-SMI DEFINITIONS ::= BEGIN


-- the path to the root

iso            OBJECT IDENTIFIER ::= { 1 }
org            OBJECT IDENTIFIER ::= { iso 3 }  --  "iso" = 1
dod            OBJECT IDENTIFIER ::= { org 6 }
internet       OBJECT IDENTIFIER ::= { dod 1 }

directory      OBJECT IDENTIFIER ::= { internet 1 }
<...CUT FOR BREVITY...>

Open in new window


Now I compared that with the same file but downloaded from www.net-snmp.org 

 
SNMPv2-SMI DEFINITIONS ::= BEGIN

-- the path to the root

org            OBJECT IDENTIFIER ::= { iso 3 }  --  "iso" = 1
dod            OBJECT IDENTIFIER ::= { org 6 }
internet       OBJECT IDENTIFIER ::= { dod 1 }

directory      OBJECT IDENTIFIER ::= { internet 1 }

mgmt           OBJECT IDENTIFIER ::= { internet 2 }
mib-2          OBJECT IDENTIFIER ::= { mgmt 1 }
transmission   OBJECT IDENTIFIER ::= { mib-2 10 }

experimental   OBJECT IDENTIFIER ::= { internet 3 }

Open in new window


I noticed that the latest copy from net-snmp.org did not have;
iso            OBJECT IDENTIFIER ::= { 1 }
on line 9 that snmptranslate was complaining about, so I thought I'd just comment it out to see what happens. So after making that change I ran the snmptranslate command again and got the following;

 
rs3@RS3:/usr/lib/nagios/plugins$ snmptranslate -On SONICWALL-FIREWALL-IP-STATISTICS-MIB::sonicCurrentCPUUtil
.1.3.6.1.4.1.8741.1.3.1.3

Open in new window


This is very different...!  So I thought I'd run that command you ran;

 
rs3@RS3:/usr/lib/nagios/plugins$ snmptranslate -IR -On SNWL-COMMON-MIB::snwlSysFirmwareVersion
.1.3.6.1.4.1.8741.2.1.1.3

Open in new window



...so do I now get the shout bingo too..?
0
 
LVL 9

Expert Comment

by:Red-King
ID: 36933683
I've been off work today so I havn't been checking for updates. But anyway ...

Brilliant! Nicely done! Sorry for the link to the bad mib file. I didn't realise it was a standard mib or I would have pointed to the net-snmp download in the first place.

I definitely think that deserves a bingo :)

Have you tried the snmpget on the CPU yet?
I'd say you're set for the Nagios config ... or maybe you've already done that.
0
 

Author Comment

by:sjb79
ID: 36941766
Good Morning.  I hope you had a good weekend.

Ok, Logged on Monday morning and tried the following;





rs3@RS3:~$ snmptranslate -On SONICWALL-FIREWALL-IP-STATISTICS-MIB::sonicCurrentCPUUtil
.1.3.6.1.4.1.8741.1.3.1.3
rs3@RS3:~$ snmpget -v 2c -c public 192.168.0.254 .1.3.6.1.4.1.8741.1.3.1.3
iso.3.6.1.4.1.8741.1.3.1.3 = No Such Instance currently exists at this OID

Open in new window

0
 

Author Comment

by:sjb79
ID: 36941768
Now am I  missing something realy obvious?
0
 
LVL 9

Assisted Solution

by:Red-King
Red-King earned 2000 total points
ID: 36954852
Hi, sorry I'm only coming back to you now. I was enjoying some well earned time off :)

You may have sorted this out already but the error you are receiving will usually indicate that you have not specified which object you want. This is because the "sonicCurrentCPUUtil" item can have more than one value associated with it. So even if there is only one value you still need to specify that you want that value.

Try the snmpget command with .0 added on the end i.e.

snmpget -v 2c -c public 192.168.0.254 .1.3.6.1.4.1.8741.1.3.1.3.0

You should be able to do the same with the text version;

snmpget -v 2c -c public 192.168.0.254 SONICWALL-FIREWALL-IP-STATISTICS-MIB::sonicCurrentCPUUtil.0

Let me know if that works out.

Rory
0
 

Author Comment

by:sjb79
ID: 36955843
Hi Rory,

I tried what you suggested;

 
rs3@RS3:~$ snmpget -v 2c -c public 192.168.0.254 SONICWALL-FIREWALL-IP-STATISTICS-MIB::sonicCurrentCPUUtil.0
SONICWALL-FIREWALL-IP-STATISTICS-MIB::sonicCurrentCPUUtil.0 = Counter32: 7
rs3@RS3:~$

Open in new window


So I'd say that works, and that 7 (%) tallys with what the Sonicwall is saying on it's web interface!!!

So we're very nearly there...!

a couple of more questions on this if I may;

I'm looking into writing the config for this in Nagios and I've come up with the following;

 
in sonicwall.cfg

define service{
	use			        generic-service
	host_name			SonicWall
	service_description		Sonicwall CPU load
	check_command			snmp_sonicwall_cpu_util
}

in commands.cfg

define command{
	command_name		snmp_sonicwall_cpu_util
	command_line		snmpget -v 2c -c public 192.168.0.254 SONICWALL-FIREWALL-IP-STATISTICS-MIB::sonicCurrentCPUUtil.0
}

Open in new window


Now have I got the right?
Also, how do I define caution and critical levels for the CPU value?

I'll take your answers from this and apply them to putting the memory utilisation value also.

After this all I'll need to know is how to see if either of the PPPoE connections is down and check if VPN tunnels are up or down.  Is tempreture worth checking?

Also, I've noticed that there are "NOTIFICATION-TYPE"s and something else called trap types with a lot of entries in the MIB files.  Can these be monitored/queried?

Stephen
0
 
LVL 9

Assisted Solution

by:Red-King
Red-King earned 2000 total points
ID: 36956484
I'm not too sure about the details of notification and trap types as I've never configured them on a system.
Essentially these work in the opposite way as you are configuring yours at the moment. Instead of setting up Nagios to get the values from the device you configure the device to send the values on the server. This means you're not waiting for Nagios to poll the device, you get an alert when it happens.
That's my understanding of it anyhow.

For the Nagios config, I have to refresh my memory a bit more but I'm not sure if that command will work. You can always give it a try and see what comes of it. I think it uses variables from the other config files and also other files.

I'd suggest adding the nagiosplugins http://nagiosplugins.org/ if you havn't already.
Adding these will give you some extra functionality, specifically a "check_snmp" command.

This takes the following form

in sonicwall.cfg

define service{
	use			        generic-service
	host_name			SonicWall
	service_description		Sonicwall CPU load
	check_command		check_snmp!-C public -o SONICWALL-FIREWALL-IP-STATISTICS-MIB::sonicCurrentCPUUtil.0 -w 80 -c 90
}

Open in new window


The -w and -c above mark the Warning and Critical thresholds. Here's the man page for the Check_Snmp command
http://nagiosplugins.org/man/check_snmp

I don't think there's a big need to monitor temperature, its entirely up to you tho. Its not a big deal to add it in anyway, if you want to.

Now that you have the MIBs working correctly have a look at the results of an snmpwalk command and see if you can pick out the PPPoE and VPN tunnel OIDs from there.

I need to have a look at Nagios again to refresh my memory on the configs but what I've added there should work I think.

Rory
0
 

Author Comment

by:sjb79
ID: 36961093
Morning Rory,

I'm sure we're so very nearly there...!  I'd award more than 500 points if I could for this one :-)

Ok, I'd already got the check_snmp plugin installed as that's what's being used to check our APC UPS (all the bits I needed I downloaded from the Nagios exchange).

Now when Nagios runs that check it gives me "(Return code of 127 is out of bounds - plugin may be missing)" on the webpage.  This is a little misleading as when I run the command in bash I do get the value but it's within a string of other bits.  I've played around with it a bit and this is what I'm now getting;

 
rs3@RS3:/usr/lib/nagios/plugins$ ./check_snmp -H 192.168.0.254 -C public -o .1.3.6.1.4.1.8741.1.3.1.3.0 -l -w '\CPU Utilisation\' 80 -c 90
SNMP OK - -w 1 | -w=1c

Open in new window


Is there some way of masking the output to suit Nagios?
0
 
LVL 9

Expert Comment

by:Red-King
ID: 36961180
Good morning! I agree, you're definitely almost there, and you should be assigning points to yourself if you could.

I think that the webpage is giving that error because it can't find the plugin. At least the knowledge base would have you think so.

Have a look at the config for the UPS and check the syntax of the 'check_command'. I think its case sensitive, I'm not sure.

If that doesn't clear things up have a look at the log file and see if that gives any more detail. I think the following command would work for you;

grep "Sonicwall CPU load" /usr/local/nagios/var/nagios.log
0
 

Author Comment

by:sjb79
ID: 36961318
Ok, I've taken some code from my nagios setup of how the UPS is being checked (for your reference on the check_snmp setup on RS3);

   
#############################################################################################
###		snippet from /etc/nagios3/objects/apcups.cfg
#############################################################################################

define host{
        use                     generic-host
        host_name               APC_UPS
        alias                   APC UPS
        notification_period     24x7
        check_period            24x7
        address                 192.168.0.251
        parents                 MainSwitch
        icon_image              base/apc_ups.png
        vrml_image              base/apc_ups.png
        statusmap_image         base/apc_ups.png

}

define hostgroup{
}

define service{
        use                             generic-service
        host_name                       APC_UPS
        service_description             PING
        check_command                   check_ping!100.0,20%!500.0,60%
        }

define service{
        use                             generic-service
        host_name                       APC_UPS
        service_description             UPS Capacity
        check_command                   snmp_ups_capacity! -H $HOSTADDRESS$ -C public
        }

#############################################################################################
###		snippet from /etc/nagios3/commands.cfg
#############################################################################################

define command{
        command_name    snmp_ups_capacity
        command_line    $USER1$/check_snmp -H $HOSTADDRESS$ -C $ARG1$ -o .1.3.6.1.4.1.318.1.1.1.2.2.1.0 -l '\Battery Charge\' -u '\%\'
        }

Open in new window


rs3@RS3:/var/log/nagios3$ grep "Sonicwall CPU load" nagios.log

 
[1318494334] Warning: Return code of 127 for check of service 'Sonicwall CPU load' on host 'SonicWall' was out of bounds. Make sure the plugin you're trying to run actually exists.
[1318494517] Warning: Return code of 127 for check of service 'Sonicwall CPU load' on host 'SonicWall' was out of bounds. Make sure the plugin you're trying to run actually exists.
[1318494517] SERVICE ALERT: SonicWall;Sonicwall CPU load;CRITICAL;SOFT;1;(Return code of 127 is out of bounds - plugin may be missing)
[1318494577] Warning: Return code of 127 for check of service 'Sonicwall CPU load' on host 'SonicWall' was out of bounds. Make sure the plugin you're trying to run actually exists.
[1318494577] SERVICE ALERT: SonicWall;Sonicwall CPU load;CRITICAL;SOFT;2;(Return code of 127 is out of bounds - plugin may be missing)
[1318494637] Warning: Return code of 127 for check of service 'Sonicwall CPU load' on host 'SonicWall' was out of bounds. Make sure the plugin you're trying to run actually exists.
[1318494637] SERVICE ALERT: SonicWall;Sonicwall CPU load;CRITICAL;SOFT;3;(Return code of 127 is out of bounds - plugin may be missing)
[1318494697] Warning: Return code of 127 for check of service 'Sonicwall CPU load' on host 'SonicWall' was out of bounds. Make sure the plugin you're trying to run actually exists.
[1318494697] SERVICE ALERT: SonicWall;Sonicwall CPU load;CRITICAL;HARD;4;(Return code of 127 is out of bounds - plugin may be missing)
[1318494697] SERVICE NOTIFICATION: root;SonicWall;Sonicwall CPU load;CRITICAL;notify-service-by-email;(Return code of 127 is out of bounds - plugin may be missing)
[1318494997] Warning: Return code of 127 for check of service 'Sonicwall CPU load' on host 'SonicWall' was out of bounds. Make sure the plugin you're trying to run actually exists.
[1318495297] Warning: Return code of 127 for check of service 'Sonicwall CPU load' on host 'SonicWall' was out of bounds. Make sure the plugin you're trying to run actually exists.
[1318495597] Warning: Return code of 127 for check of service 'Sonicwall CPU load' on host 'SonicWall' was out of bounds. Make sure the plugin you're trying to run actually exists.

Open in new window


Now I've manually run the snmp_ups_capacity check in bash and got the following;

 
rs3@RS3:/usr/lib/nagios/plugins$ sudo ./check_snmp -H 192.168.0.251 -C public -o .1.3.6.1.4.1.318.1.1.1.2.2.1.0 -l '\Battery Charge\' -u '\%\'
SNMP OK - \Battery Charge\ 100 \%\ | \Battery Charge\=100

Open in new window


Now I've tinkered further with the check_snmp command for the sonicwall and got the following ;

 
rs3@RS3:/usr/lib/nagios/plugins$ sudo ./check_snmp -H 192.168.0.254 -C public -o .1.3.6.1.4.1.8741.1.3.1.3.0 -l '\CPU Utilisation\' -u '\%\' -w 80 -c 90
SNMP OK - \CPU Utilisation\ 1 \%\ | \CPU Utilisation\=1c

Open in new window


I've put this into the commands file;

 
define command{
        command_name    snmp_sonicwall_cpu_util
        command_line    $USER$/check_snmp -H $HOSTADDRESS$ -C $ARG1$ -o .1.3.6.1.4.1.8741.1.3.1.3.0 -l '\CPU Utilisation\' -u '\%\' -w 80 -c 90
        }

Open in new window


and it STILL doesn't like it...AAARRRRGGGHHHHH!!!! ;-)

Though looking very closely at the output it actually says 1c not just 1.  Is that 'c' throwing it?  I mean is it expecting something like an integer but getting something like a string?
0
 
LVL 9

Accepted Solution

by:
Red-King earned 2000 total points
ID: 36961720
I noticed that you have a typo in your command_line of your final code block above. The variable at the start should be $USER1$

That might fix it. I'm not sure if the c is throwing it though. Maybe go back to the text form of your OID too ( SONICWALL-FIREWALL-IP-STATISTICS-MIB::sonicCurrentCPUUtil.0 ), just in case the value you're pulling back is not the CPU usage.

An alternative way of doing the command would be like so;

define service{
	use			        generic-service
	host_name			SonicWall
	service_description		Sonicwall CPU load
	check_command		snmp_sonicwall_cpu_util!-C public -o SONICWALL-FIREWALL-IP-STATISTICS-MIB::sonicCurrentCPUUtil.0 -l '\CPU Utilisation\' -u '\%\' -w 80 -c 90
}

define command{
        command_name    snmp_sonicwall_cpu_util
        command_line    $USER$/check_snmp -H $HOSTADDRESS$ $ARG1$
        }

Open in new window


The check_command has the following syntax if I remember correctly;

check_command		command_to_call!ARG1!ARG2!ARG3

Open in new window


So the start of each new ARG variable is defined by the exclamation mark (or bang as its sometimes called in American)
This allows you to be really flexible about creating generic commands like this

define command{
        command_name    generic_snmp
        command_line    $USER1$/check_snmp -H $HOSTADDRESS$ -C $ARG1$ -o $ARG2$ -w $ARG3$ -c $ARG4$ $ARG5$
}

Open in new window


Then to call this command you'd specify the community string the OID to use the warning threshold and the critical threshold as follows
define service{
        use                             generic-service
        host_name                       myHost
        service_description             Host SNMP Check
        check_command                   generic_snmp!public!HOST-RESOURCES-MIB::hrSystemNumUsers.0!30!50!-t 40 -r 8
        }

Open in new window


The ARG5 variable allows you to add whatever else you'd like on the end of the check_command which will just be passed through to the command defined in the command_line.
0
 

Author Comment

by:sjb79
ID: 36962796
Hi Rory,
Good catch! Corrected that typo and it worked, see attached image

 Nagios Service Status

What a journey!

The only thing now is to have a look at the VPN side, which I will look a now and update as I've found an object (sonicwallSSLVPN) and I'm just going to look to see if that also works (to make this huge if not epic question as useful as possible to anyone reading it....


Stephen
0
 
LVL 9

Expert Comment

by:Red-King
ID: 36963047
That is a very satisfying screen shot! :)

You should be able to include other things such as the WAN and LAN interfaces as well as the VPN i.e. if the VPN interface is down but the WAN is up then you've got an issue with the VPN. If the WAN is down too maybe the service provider hardware is screwed.

Once you've gotten your nagios config nailed down you might be interested in looking at http://www.cacti.net/, which is a great monitoring tool that graphs usage. It uses SNMP to get the information and uses http://oss.oetiker.ch/mrtg/ to draw the graphs. It can be very insightful to see the pattern of bandwidth over the course of the day/month. You can also graph anything else with it such as CPU or RAM utilisation over time, or maybe even the number of users logged into the VPN if the router has an OID for that.

This has definitely been an epic journey. I think a few beers are in order :)
0
 

Author Comment

by:sjb79
ID: 36968663
Hi Rory,

Well Ok I've been fiddling some more and added the firmware version to the service status details for host (why not eh?) and now some serious stuff; VPN and WAN status.
Ok, I initially (and imaginatively) grep'd for vpn on all the Sonicwall mib files;

 
rs3@RS3:/usr/share/mibs/netsnmp$ grep OBJECT-TYPE SNWL-COMMON-MIB.MIB
    OBJECT-TYPE,
snwlSysModel OBJECT-TYPE
snwlSysSerialNumber OBJECT-TYPE
snwlSysFirmwareVersion OBJECT-TYPE
snwlSysROMVersion OBJECT-TYPE
snwlSysAssetNumber OBJECT-TYPE
rs3@RS3:/usr/share/mibs/netsnmp$ grep OBJECT-TYPE SONICWALL-FIREWALL-IP-STATISTICS-MIB.MIB
    OBJECT-TYPE,
sonicMaxConnCacheEntries OBJECT-TYPE
sonicCurrentConnCacheEntries OBJECT-TYPE
sonicCurrentCPUUtil OBJECT-TYPE
sonicCurrentRAMUtil OBJECT-TYPE
sonicSAStatTable OBJECT-TYPE
sonicSAStatEntry OBJECT-TYPE
sonicIpsecSaIndex OBJECT-TYPE
sonicSAStatPeerGateway OBJECT-TYPE
sonicSAStatSrcAddrBegin OBJECT-TYPE
sonicSAStatSrcAddrEnd OBJECT-TYPE
sonicSAStatDstAddrBegin OBJECT-TYPE
sonicSAStatDstAddrEnd OBJECT-TYPE
sonicSAStatCreateTime OBJECT-TYPE
sonicSAStatEncryptPktCount OBJECT-TYPE
sonicSAStatEncryptByteCount OBJECT-TYPE
sonicSAStatDecryptPktCount OBJECT-TYPE
sonicSAStatDecryptByteCount OBJECT-TYPE
sonicSAStatInFragPktCount OBJECT-TYPE
sonicSAStatOutFragPktCount OBJECT-TYPE
sonicSAStatUserName  OBJECT-TYPE
rs3@RS3:/usr/share/mibs/netsnmp$ grep OBJECT-TYPE SONICWALL-FIREWALL-TRAP-MIB.MIB
    OBJECT-TYPE,
swTrapInfoTrapType OBJECT-TYPE
swTrapInfoTrapDescription OBJECT-TYPE
swTrapInfoSrcIpAddress OBJECT-TYPE
swTrapInfoDstIpAddress OBJECT-TYPE
swTrapInfoSrcPort OBJECT-TYPE
swTrapInfoDstPort OBJECT-TYPE
swTrapInfoSrcMacAddress OBJECT-TYPE
swTrapInfoDstMacAddress OBJECT-TYPE
swTrapInfoIpType OBJECT-TYPE
swTrapInfoPrivMsg OBJECT-TYPE
swTrapInfoIpAddress OBJECT-TYPE
swTrapInfoSaName OBJECT-TYPE
swTrapInfoFwSrlNumber OBJECT-TYPE
swTrapInfoSaStatus OBJECT-TYPE
swTrapInfoSrcAddrBegin OBJECT-TYPE
swTrapInfoSrcAddrEnd OBJECT-TYPE
swTrapInfoDstAddrBegin OBJECT-TYPE
swTrapInfoDstAddrEnd OBJECT-TYPE
swTrapInfoGateway OBJECT-TYPE
swTrapInfoIsDHCPCentral OBJECT-TYPE
swTrapInfoSrcResolvedHostName OBJECT-TYPE
swTrapInfoDstResolvedHostName OBJECT-TYPE
swTrapInfoSrcInterface OBJECT-TYPE
swTrapInfoDstInterface OBJECT-TYPE
swTrapInfoClientUserName OBJECT-TYPE
rs3@RS3:/usr/share/mibs/netsnmp$ grep OBJECT-TYPE SONICWALL-SMI.MIB
rs3@RS3:/usr/share/mibs/netsnmp$

Open in new window


Nothing that shouts out VPN.... so I did a bit of further digging into each of the mib files;

SONICWALL-FIREWALL-TRAP-MIB.MIB
 
swFwTrapEnhVpnIpsec NOTIFICATION-TYPE
        OBJECTS {
            swTrapInfoTrapType,
            swTrapInfoTrapDescription
        }
        STATUS current
        DESCRIPTION
            "This trap indicates an event from a VPN IPSec ctivity.
             The bound objects provide more detailed information about this problem."
    ::= { sonicwallFwTrapRoot 0 143 }


swFwTrapEnhWanFailover NOTIFICATION-TYPE
        OBJECTS {
            swTrapInfoTrapType,
            swTrapInfoTrapDescription
        }
        STATUS current
        DESCRIPTION
            "This trap indicates an event from a WAN failover activity.
             The bound objects provide more detailed information about this problem."
    ::= { sonicwallFwTrapRoot 0 145 }

Open in new window

Now I know you said that traps coudl not be used with Nagios, is it the same with these NOTIFICATION-TYPE's?

Also, in SONICWALL-SMI.MIB
 
sonicwallSSLVPN OBJECT-IDENTITY
        STATUS  current
        DESCRIPTION
                "sonicwallSSLVPN is the subtree for SonicWALL SSL VPN products."
        ::= { sonicwall 6 }

rs3@RS3:/usr/share/mibs/netsnmp$ snmptranslate -IR -On SONICWALL-SMI::sonicwallSSLVPN
.1.3.6.1.4.1.8741.6
rs3@RS3:/usr/share/mibs/netsnmp$ snmpget -v 2c -c public 192.168.0.254 .1.3.6.1.4.1.8741.6
iso.3.6.1.4.1.8741.6 = No Such Object available on this agent at this OID
rs3@RS3:/usr/share/mibs/netsnmp$ snmpget -v 2c -c public 192.168.0.254 .1.3.6.1.4.1.8741.6.0
iso.3.6.1.4.1.8741.6.0 = No Such Object available on this agent at this OID
rs3@RS3:/usr/share/mibs/netsnmp$ snmpget -v 2c -c public 192.168.0.254 .1.3.6.1.4.1.8741.6.1
iso.3.6.1.4.1.8741.6.1 = No Such Object available on this agent at this OID

Open in new window


It might be that it's late in the afternoon on a Friday and so I'm doing something silly but I can't see why that isn't working (just wanted to see what came out in the result and thus if it had what I'm looking for).

Any ideas?
0
 

Author Comment

by:sjb79
ID: 36986760
Hello!

Ok, I've been continuing work on this and now have it to the point shown below;

 Our Sonicwall as of today
Now to get it monitoring the NICs on the device I had to ....cheat a little bit.  I downloaded a trial of some software that could identify a snmp'able device and give me all the OID's values for the Sonicwall.  I then looked to see which of the mib files it had downloaded and copied them onto our Nagios server and wrote up the configs accordingly.  Works find, tested ect. and all works.  The lines I put into the configs were;

 
# commands.cfg file for nagios
# Sonicwall Z200

define command{
        command_name    snmp_sonicwall_ifOperStatus_X1
        command_line    $USER1$/check_snmp -H $HOSTADDRESS$ -C $ARG1$ -o .1.3.6.1.2.1.2.2.1.8.3 -c 2,3,4,5,6,7
}

define command{
        command_name    snmp_sonicwall_ifOperStatus_X2
        command_line    $USER1$/check_snmp -H $HOSTADDRESS$ -C $ARG1$ -o .1.3.6.1.2.1.2.2.1.8.4 -c 2,3,4,5,6,7
}

Open in new window

# sonicwall.cfg

define host{
        use                     generic-switch
        host_name               SonicWall
        alias                   SonicWall TZ200
        address                 192.168.0.254
        parents                 MainSwitch
        icon_image              base/sonicwall.png
        vrml_image              base/sonicwall.png
        statusmap_image         base/sonicwall.png

}

define service{
        use                     generic-service
        host                    SonicWall
        service_description     PING
        check_command           check_ping!200.0,20%!600.0,60%
        normal_check_interval   2
        retry_check_interval    1
}

define service{
        use                             generic-service
        host_name                       SonicWall
        service_description             CPU Utilisation
        check_command                   snmp_sonicwall_cpu_util! -H $HOSTADDRESS$ -C public
}

define service{
        use                             generic-service
        host_name                       SonicWall
        service_description             RAM Utilisation
        check_command                   snmp_sonicwall_ram_util! -H $HOSTADDRESS$ -C public
}

define service{
        use                             generic-service
        host_name                       SonicWall
        service_description             Firmware Version
        check_command                   snmp_sonicwall_firmware_version! -H $HOSTADDRESS$ -C public
}

define service{
        use                             generic-service
        host_name                       SonicWall
        service_description             WAN - BT Internet - X1
        check_command                   snmp_sonicwall_ifOperStatus_X1! -H $HOSTADDRESS$ -C public
}

define service{
        use                             generic-service
        host_name                       SonicWall
        service_description             WAN - Merula Internet - X2
        check_command                   snmp_sonicwall_ifOperStatus_X2! -H $HOSTADDRESS$ -C public
}

Open in new window


The OID for the NICs is .1.3.6.1.2.1.2.2.1.8.x where X is the interface (starting from 1-7 in the case of this device).  It will return INTEGER values from 1-7.  2 is interface down and 5 is dormant (I think).  Value of 5 is a critical in our case as if the internet connection on that NIC is lost (but the modem is still working and thus connected) it returns a value of 5.  Basically the command line is written so that if it's not a 1 (OK) then it's critical.

I don't know if you need the mib files for this, I've downloaded a few new ones for this and another device.

What do you think?
0
 

Author Comment

by:sjb79
ID: 36987195
I've double checked the website where I got the mib files (and the software on a 30 day trial) and all the mib files are publically available so it should be ok to use;

mib file website

The files I used from this website in the end where;

IF-MIB.mib
IANAifType-MIB.mib


And the commands I used where as follows;
 
# to get the oid number:

rs3@RS3:/usr/share/mibs/netsnmp$ snmptranslate -IR -On IF-MIB::ifOperStatus
.1.3.6.1.2.1.2.2.1.8
rs3@RS3:/usr/share/mibs/netsnmp$

Open in new window

# This, of course, doesn't work;
rs3@RS3:/usr/share/mibs/netsnmp$ snmpget -v 2c -c public 192.168.0.254 .1.3.6.1.2.1.2.2.1.8
iso.3.6.1.2.1.2.2.1.8 = No Such Instance currently exists at this OID
rs3@RS3:/usr/share/mibs/netsnmp$

Open in new window

#add an extra 1,2,3,4,5,6 or 7 on the end for that interface.  And if it's working you'll get a 1.  If not you'll get 2,3,4,5,6 or 7 as a result.
rs3@RS3:/usr/share/mibs/netsnmp$ snmpget -v 2c -c public 192.168.0.254 .1.3.6.1.2.1.2.2.1.8.1
iso.3.6.1.2.1.2.2.1.8.1 = INTEGER: 1
rs3@RS3:/usr/share/mibs/netsnmp$

Open in new window


So I think this is it, there are a lot more OBJECT-TYPE's that you can use to get values out of this Sonicwall device and potentially any other Sonicwall device I guess.
0
 
LVL 9

Expert Comment

by:Red-King
ID: 36987326
Hello again,

Sorry I wasn't able to get back to you about your previous post.
From what I can see, the sonicwall device itself (the agent) doesn't have an object for the VPN so when you try the snmpget the sonicwall gives an error and snmpget tells you there's no value for that OID on it.
Maybe one of the new Mibs you downloaded will have an OID that can check the VPN as an interface?


Nice job on getting around the issue with identifying the interfaces. The screenshot shows that your config is obviously fine and I can't see anything I'd change in it.

You'll need to test that the interface will trigger the critical alert though. A simple unplugging of the respective cables should do it.
You might need to wait until after hours or maybe you could do it at lunch?
0
 

Author Comment

by:sjb79
ID: 36991985
Hey,

Ok, I've got a slightly weird one;
check_command     snmp_sonicwall_ifOperStatus_X2! -H $HOSTADDRESS$ -C public -c 2,3,4,5,6,7

Open in new window

Now it comes back as OK if that INTEGER 1, if it returns an INTEGER of 5 it's a critical, this is correct.  But if it returns any other value within the range of 1-7 it still returns an OK.... so how do I get it to declare a critical for all values other than 1?
0
 
LVL 9

Assisted Solution

by:Red-King
Red-King earned 2000 total points
ID: 36992942
I think I see the problem.
You've configured the following command
define command{
        command_name    snmp_sonicwall_ifOperStatus_X2
        command_line    $USER1$/check_snmp -H $HOSTADDRESS$ -C $ARG1$ -o .1.3.6.1.2.1.2.2.1.8.4 -c 2,3,4,5,6,7
}

Open in new window


And you define the following service to use that command
define service{
        use                             generic-service
        host_name                       SonicWall
        service_description             WAN - Merula Internet - X2
        check_command                   snmp_sonicwall_ifOperStatus_X2! -H $HOSTADDRESS$ -C public
}

Open in new window


In this service definition the check_command entry specifies snmp_sonicwall_ifOperStatus_X2. This is immediately followed by an exclamation mark (!) which tells the command the everything that comes next is $ARG1$.
So;
HOSTADDRESS = 192.168.0.254
ARG1 =  -H 192.168.0.254 -C public

Open in new window

This results in your defined command_line being
$USER1$/check_snmp -H 192.168.0.254 -C  -H 192.168.0.254 -C public -o .1.3.6.1.2.1.2.2.1.8.4 -c 2,3,4,5,6,7

Open in new window

If you use the command that you last posted this gets even more complicated because ARG1 then becomes;
 -H $HOSTADDRESS$ -C public -c 2,3,4,5,6,7

Open in new window


So to correct this, you don't need to supply the $HOSTADDRESS$ variable because you have already specified this in your command. You also don't need to supply the critical threshold or the OID value. The only thing you need to supply to your command is the community string.

So you service definition should be as follows

define service{
        use                             generic-service
        host_name                       SonicWall
        service_description             WAN - Merula Internet - X2
        check_command                   snmp_sonicwall_ifOperStatus_X2!public
}

Open in new window



Also, I don't think it will understand the way you've written your critical threshold. The format you need to use is here;
http://nagiosplug.sourceforge.net/developer-guidelines.html#THRESHOLDFORMAT

You want to raise a critical alert for any value greater than 2 returned. To do so you can define your command as;

define command{
        command_name    snmp_sonicwall_ifOperStatus_X2
        command_line    $USER1$/check_snmp -H $HOSTADDRESS$ -C $ARG1$ -o .1.3.6.1.2.1.2.2.1.8.4 -c2
}

Open in new window


I think that should straighten things out for you.

Rory

0
 

Author Comment

by:sjb79
ID: 36993423
Yay, all done, tested and working!!!!!!!
0
 

Author Closing Comment

by:sjb79
ID: 36993478
REALLY helpful; I've learn't so much working through this problem with Red-King.  I'm extreme grateful!
0
 
LVL 9

Expert Comment

by:Red-King
ID: 36993756
Brilliant! :)

I'm delighted that you got this one working.
It was definitely Epic. I hope you get some major kudos for this too!
0

Featured Post

 The Evil-ution of Network Security Threats

What are the hacks that forever changed the security industry? To answer that question, we created an exciting new eBook that takes you on a trip through hacking history. It explores the top hacks from the 80s to 2010s, why they mattered, and how the security industry responded.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

In the first part of this tutorial we will cover the prerequisites for installing SQL Server vNext on Linux.
In part one, we reviewed the prerequisites required for installing SQL Server vNext. In this part we will explore how to install Microsoft's SQL Server on Ubuntu 16.04.
Learn how to navigate the file tree with the shell. Use pwd to print the current working directory: Use ls to list a directory's contents: Use cd to change to a new directory: Use wildcards instead of typing out long directory names: Use ../ to move…
Get a first impression of how PRTG looks and learn how it works.   This video is a short introduction to PRTG, as an initial overview or as a quick start for new PRTG users.
Suggested Courses
Course of the Month16 days, 7 hours left to enroll

850 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question