[Nagios-users] host_port objects - Enhancement Request

2010-10-28 Thread Jason Frisvold
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

Greetings,

We are planning on submitting an enhancement request to Nagios with the
intention of having their professional services group code this for us.
 We are interested in having our changes made available to the community
as well, so we wanted to get feedback from the community before we
submit the proposal.  Any and all feedback is welcome.

Thanks.


Nagios Enhancement Proposal

Overview

Currently, there are two primary ways to add individual physical ports
for a port-based device.  Each method has both advantages and
disadvantages, but neither fully satisfies the needs of Lafayette and,
likely, other institutions.

Service-based Ports

The first method is to treat ports as a service of a host and add them
as service entries.  The following configuration snippet demonstrates this :

define host {
   use  cisco-switch-standard
   host_nameswitch.lafayette.edu
   address  192.168.0.100
   hostgroups   cisco-switch-standard
   parents  router.lafayette.edu
}

define service {
   use  service-standard
   hostsswitch.lafayette.edu
   servicegroupscisco-switch-standard
   service_description  Switch Port Gi1/0/1
   check_commandcheck_snmp_traffic!-N Gi1/0/1!-C $USER2$
}

In short, this configuration defines a host and then a service for that
host which is, essentially, an snmp check that monitors the traffic on a
specific port.

Advantages
* Cleanly links a port to a switch
* Somewhat easy to add/remove specific hosts that need that port monitored

Disadvantages
* Parent/child relationships are difficult, if not impossible, to define
* Making service changes for a single port requires creating a unique
new service
* Service descriptions can get a bit long when they need to have a
meaningful description associated with them
* Ports with associated addresses are more difficult to define


Host-based Ports

Another method to accomplish this is to create a “fake” host entry for
each port and then assign services to those ports for monitoring.  The
following configuration snippet demonstrates this :

define host {
   use  cisco-switch-standard
   host_nameswitch.lafayette.edu
   address  192.168.0.100
   hostgroups   cisco-switch-standard
   parents  router.lafayette.edu
}

define host {
   use  cisco-switch-standard
   host_nameswitch-g1-0-1.lafayette.edu
   address  192.168.0.100
   hostgroups   cisco-switch-standard
   _PORTGi1/0/1
   parents  switch.lafayette.edu
}

define service {
   use  service-standard
   hostsswitch.lafayette.edu
   servicegroupscisco-switch-standard
   service_description  Port Traffic
   check_commandcheck_snmp_traffic!-N $_HOSTPORT$!-C $USER2$
}

This configuration defines two hosts, a switch and a port on that
switch, and then a service linked to the port.

Advantages
* Parent/child relationships work as expected
* A single service entry can be used for many port entries
* Very easy to deal with address-assigned ports such as router interfaces

Disadvantages
* Every port on every switch has to be defined
* Port host_name entries are often fake
* Port address entries are often duplicated


Proposed Solution

host-port object

define host {
   use  cisco-switch-standard
   host_nameswitch.lafayette.edu
   address  192.168.0.100
   hostgroups   cisco-switch-standard
   parents  router.lafayette.edu
}

define host_port {
   use  cisco-switch-standard
   host switch.lafayette.edu
   port_nameGi1/0/1
}

define service {
   use  service-standard
   host switch.lafayette.edu
   port_based   true
   servicegroupscisco-switch-standard
   service_description  Port Traffic
   check_commandcheck_snmp_traffic!-N $PORTNAME$!-C $USER2$
}

In this proposed configuration, a host is defined, as normal.  A new
object, the host_port object, is defined with port-based information.
The host_port object imports information such as address and host_name
from the host but can override this information if needed.  For
instance, a router interface may have an ip address and hostname.
Finally, a new tag, port_name, identifies the port name to use.  When
displaying the host_port in the GUI, or identifying it in email/SMS, the
port_name should be appended to the host_name.  A similar syntax could
be used for parent/child relationships as well.

The service definition uses a new tag, port_based, to identify that this
service is for the ports of a host, not for the host itself.  This
service should be applied to all ports.  port_name can be used in a
manner similar to host or hostgroups to restrict the 

Re: [Nagios-users] host_port objects - Enhancement Request

2010-10-28 Thread Rutger Blom
I use check_mk which automatically does a host inventory and adds
active interfaces to the configuration.
Off topic: I have to say the check_mk in combination with
mk_livestatus and multisite make Nagios a much better solution. I
wonder if and when the Nagios team is going to adopt this solution and
make it a part of Nagios Core.

/Rutger

On Thursday, October 28, 2010, Jason Frisvold frisv...@lafayette.edu wrote:
 -BEGIN PGP SIGNED MESSAGE-
 Hash: SHA1

 Greetings,

         We are planning on submitting an enhancement request to Nagios with 
 the
 intention of having their professional services group code this for us.
  We are interested in having our changes made available to the community
 as well, so we wanted to get feedback from the community before we
 submit the proposal.  Any and all feedback is welcome.

 Thanks.


 Nagios Enhancement Proposal

 Overview

 Currently, there are two primary ways to add individual physical ports
 for a port-based device.  Each method has both advantages and
 disadvantages, but neither fully satisfies the needs of Lafayette and,
 likely, other institutions.

 Service-based Ports

 The first method is to treat ports as a service of a host and add them
 as service entries.  The following configuration snippet demonstrates this :

 define host {
    use                  cisco-switch-standard
    host_name            switch.lafayette.edu
    address              192.168.0.100
    hostgroups           cisco-switch-standard
    parents              router.lafayette.edu
 }

 define service {
    use                  service-standard
    hosts                switch.lafayette.edu
    servicegroups        cisco-switch-standard
    service_description  Switch Port Gi1/0/1
    check_command        check_snmp_traffic!-N Gi1/0/1!-C $USER2$
 }

 In short, this configuration defines a host and then a service for that
 host which is, essentially, an snmp check that monitors the traffic on a
 specific port.

 Advantages
 * Cleanly links a port to a switch
 * Somewhat easy to add/remove specific hosts that need that port monitored

 Disadvantages
 * Parent/child relationships are difficult, if not impossible, to define
 * Making service changes for a single port requires creating a unique
 new service
 * Service descriptions can get a bit long when they need to have a
 meaningful description associated with them
 * Ports with associated addresses are more difficult to define


 Host-based Ports

 Another method to accomplish this is to create a “fake” host entry for
 each port and then assign services to those ports for monitoring.  The
 following configuration snippet demonstrates this :

 define host {
    use                  cisco-switch-standard
    host_name            switch.lafayette.edu
    address              192.168.0.100
    hostgroups           cisco-switch-standard
    parents              router.lafayette.edu
 }

 define host {
    use                  cisco-switch-standard
    host_name            switch-g1-0-1.lafayette.edu
    address              192.168.0.100
    hostgroups           cisco-switch-standard
    _PORT                Gi1/0/1
    parents              switch.lafayette.edu
 }

 define service {
    use                  service-standard
    hosts                switch.lafayette.edu
    servicegroups        cisco-switch-standard
    service_description  Port Traffic
    check_command        check_snmp_traffic!-N $_HOSTPORT$!-C $USER2$
 }

 This configuration defines two hosts, a switch and a port on that
 switch, and then a service linked to the port.

 Advantages
 * Parent/child relationships work as expected
 * A single service entry can be used for many port entries
 * Very easy to deal with address-assigned ports such as router interfaces

 Disadvantages
 * Every port on every switch has to be defined
 * Port host_name entries are often fake
 * Port address entries are often duplicated


 Proposed Solution

 host-port object

 define host {
    use                  cisco-switch-standard
    host_name            switch.lafayette.edu
    address              192.168.0.100
    hostgroups           cisco-switch-standard
    parents              router.lafayette.edu
 }

 define host_port {
    use                  cisco-switch-standard
    host                 switch.lafayette.edu
    port_name            Gi1/0/1
 }

 define service {
    use                  service-standard
    host                 switch.lafayette.edu
    port_based           true
    servicegroups        cisco-switch-standard
    service_description  Port Traffic
    check_command        check_snmp_traffic!-N $PORTNAME$!-C $USER2$
 }

 In this proposed configuration, a host is defined, as normal.  A new
 object, the host_port object, is defined with port-based information.
 The host_port object imports information such as address and host_name
 from the host but can override this information if needed.  For
 instance, a router interface may have an ip address and hostname.
 

Re: [Nagios-users] host_port objects - Enhancement Request

2010-10-28 Thread Paul M. Dubuc
I think this would be a very nice enhancement.  Many of the services we run 
are associated with a host and a port.  We're using the service-based ports 
solution that you describe.  Since Nagios requires that the combination 
host_name and service_description be unique, we often have to embed a port 
name in the service_description.  Since the port is also passed as an argument 
to the check_command, it ends up being defined in two places and the 
service_description has to be changed when we change the port being used for 
the service.  Having to configure a separate service for each port on a given 
host also complicates configuration changes.


--
Nokia and ATT present the 2010 Calling All Innovators-North America contest
Create new apps  games for the Nokia N8 for consumers in  U.S. and Canada
$10 million total in prizes - $4M cash, 500 devices, nearly $6M in marketing
Develop with Nokia Qt SDK, Web Runtime, or Java and Publish to Ovi Store 
http://p.sf.net/sfu/nokia-dev2dev
___
Nagios-users mailing list
Nagios-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/nagios-users
::: Please include Nagios version, plugin version (-v) and OS when reporting 
any issue. 
::: Messages without supporting info will risk being sent to /dev/null


[Nagios-users] Nagios/NRPE script getting No output returned from plugin

2010-10-28 Thread Rick Munn
Hi,

Getting a  No output returned from plugin error message from a Nagios/NRPE
script

1) Running Nagios v3.2.2 and v3.2.3(now) and NRPE v2.12
2) The script:

OK_STATE=0
UNAME=`/bin/uname -r`
echo OK: Kernel Version=$UNAME
exit $OK_STATE


2) Results on command line on Nagios Server using NRPE

 - Same OK results from both the root and nagios user:

 [nag...@cmonmm03 libexec]$ ./check_nrpe -H dappsi01b.dev.screenscape.local
-c check_kernel
OK: Kernel Version=2.6.18-194.11.3.el5

When I run the check_kernel.sh script on the machine locally it works there
too.

Help, any thoughts or known solution regarding this would be appreciated?

Thank you
Rick B. Munn
--
Nokia and ATT present the 2010 Calling All Innovators-North America contest
Create new apps  games for the Nokia N8 for consumers in  U.S. and Canada
$10 million total in prizes - $4M cash, 500 devices, nearly $6M in marketing
Develop with Nokia Qt SDK, Web Runtime, or Java and Publish to Ovi Store 
http://p.sf.net/sfu/nokia-dev2dev___
Nagios-users mailing list
Nagios-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/nagios-users
::: Please include Nagios version, plugin version (-v) and OS when reporting 
any issue. 
::: Messages without supporting info will risk being sent to /dev/null

Re: [Nagios-users] host_port objects - Enhancement Request

2010-10-28 Thread Jason Frisvold
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

On 10/28/2010 12:39 PM, Rutger Blom wrote:
 I use check_mk which automatically does a host inventory and adds
 active interfaces to the configuration.

Does this solve the parent/child problem?  What ends up in the config
for, say, a switch port?  Is that added as a host or a service?

- -- 
- ---
Jason Frisvold
Network Engineer
frisv...@lafayette.edu
- ---
What I cannot create, I do not understand
   - Richard Feynman
-BEGIN PGP SIGNATURE-
Version: GnuPG v2.0.14 (GNU/Linux)
Comment: Using GnuPG with Fedora - http://enigmail.mozdev.org/

iEYEARECAAYFAkzJvHAACgkQO80o6DJ8UvnAxACdEOadhtzsOBZlhDmEDCOagWc/
eeYAnicGnuAuN/+ylU1pnU7BBHnVKJuh
=9b2M
-END PGP SIGNATURE-

--
Nokia and ATT present the 2010 Calling All Innovators-North America contest
Create new apps  games for the Nokia N8 for consumers in  U.S. and Canada
$10 million total in prizes - $4M cash, 500 devices, nearly $6M in marketing
Develop with Nokia Qt SDK, Web Runtime, or Java and Publish to Ovi Store 
http://p.sf.net/sfu/nokia-dev2dev
___
Nagios-users mailing list
Nagios-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/nagios-users
::: Please include Nagios version, plugin version (-v) and OS when reporting 
any issue. 
::: Messages without supporting info will risk being sent to /dev/null


Re: [Nagios-users] host_port objects - Enhancement Request

2010-10-28 Thread Jim Avery
On 28 October 2010 16:16, Jason Frisvold frisv...@lafayette.edu wrote:
 -BEGIN PGP SIGNED MESSAGE-
 Hash: SHA1

 Greetings,

        We are planning on submitting an enhancement request to Nagios with the
 intention of having their professional services group code this for us.
  We are interested in having our changes made available to the community
 as well, so we wanted to get feedback from the community before we
 submit the proposal.  Any and all feedback is welcome.

 Thanks.

I agree something needs doing to make it easier to monitor multiple
ports on network nodes.  The issue goes a bit wider than just ports on
hosts though.

There are other object relationships which can be tricky to set up
using the limited host/service structure.  Some examples that come to
mind are:

virtual hosts in a VMWare cluster
load-balanced services
clustered applications
various physical and virtual structures in a SAN

My preference would be for a less prescriptive nomencalture with more
flexibility over what can be grouped with what so Nagios will then be
able to cope with whatever groupings and parent relationships we care
to throw at it.

For example, if instead of host_port, we have component then it's
less prescriptive.

I'd like to throw around some other ideas for how the service
definition would work too.  For example:

define service {
  use  service-standard
  components  switches-cisco/port*
  servicegroupscisco-switch-standard
  service_description  Port Traffic
  check_commandcheck_snmp_traffic!-N $PORTNAME$!-C $USER2$
}

That's my 2p anyway.  I'm not a programmer.  For all I know the dev
team might have some ideas already up their sleeve for Nagios 4 or 5.

Cheers,

Jim

--
Nokia and ATT present the 2010 Calling All Innovators-North America contest
Create new apps  games for the Nokia N8 for consumers in  U.S. and Canada
$10 million total in prizes - $4M cash, 500 devices, nearly $6M in marketing
Develop with Nokia Qt SDK, Web Runtime, or Java and Publish to Ovi Store 
http://p.sf.net/sfu/nokia-dev2dev
___
Nagios-users mailing list
Nagios-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/nagios-users
::: Please include Nagios version, plugin version (-v) and OS when reporting 
any issue. 
::: Messages without supporting info will risk being sent to /dev/null


Re: [Nagios-users] Nagios and OpenVMS servers

2010-10-28 Thread Chris Hudson
Thanks for your offer Andreas, but I was able to work with HP and get SNMP
working without any special hacks or modifications.

 -- Chris


On Wed, Oct 27, 2010 at 9:59 AM, Andreas Ericsson a...@op5.se wrote:

 On 10/27/2010 04:38 PM, Chris Hudson wrote:
  Anyone here ever configure an OpenVMS server for snmp / Nagios?   Any
 info
  at all would be greatly appreciated, I'm not having any luck at all.
 

 I once hacked NRPE to work on OpenVMS. It's not quite NRPE anymore
 though, but it worked (and still works) for the customer that ordered
 the job.

 I'll send it to you off-list, as the tarball ended up being quite
 large.

 If you want support for or help with it, you'll have to contact our
 sales people and get a contract. I simply don't have time to delve
 into it again, and to be perfectly honest DCL isn't so much fun that
 I want to spend my days writing it ;)

 --
 Andreas Ericsson   andreas.erics...@op5.se
 OP5 AB www.op5.se
 Tel: +46 8-230225  Fax: +46 8-230231

 Considering the successes of the wars on alcohol, poverty, drugs and
 terror, I think we should give some serious thought to declaring war
 on peace.

--
Nokia and ATT present the 2010 Calling All Innovators-North America contest
Create new apps  games for the Nokia N8 for consumers in  U.S. and Canada
$10 million total in prizes - $4M cash, 500 devices, nearly $6M in marketing
Develop with Nokia Qt SDK, Web Runtime, or Java and Publish to Ovi Store 
http://p.sf.net/sfu/nokia-dev2dev___
Nagios-users mailing list
Nagios-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/nagios-users
::: Please include Nagios version, plugin version (-v) and OS when reporting 
any issue. 
::: Messages without supporting info will risk being sent to /dev/null

Re: [Nagios-users] host_port objects - Enhancement Request

2010-10-28 Thread Andreas Ericsson
On 10/28/2010 05:16 PM, Jason Frisvold wrote:
 -BEGIN PGP SIGNED MESSAGE-
 Hash: SHA1
 
 Greetings,
 

Hi there.

   We are planning on submitting an enhancement request to Nagios with the
 intention of having their professional services group code this for us.

Never heard of such a group. Considering I'm a core developer you'd have
thought I would know, but I suppose not. Ah well. Anyways; if you want to
pay for new features, go wild :)

   We are interested in having our changes made available to the community
 as well, so we wanted to get feedback from the community before we
 submit the proposal.  Any and all feedback is welcome.
 

Good idea. My reply is below. I've thought of some of those problems myself.

   
 Nagios Enhancement Proposal
 
 Overview
 
 Currently, there are two primary ways to add individual physical ports
 for a port-based device.  Each method has both advantages and
 disadvantages, but neither fully satisfies the needs of Lafayette and,
 likely, other institutions.
 
 Service-based Ports
 
 The first method is to treat ports as a service of a host and add them
 as service entries.  The following configuration snippet demonstrates this :
 
 define host {
 use  cisco-switch-standard
 host_nameswitch.lafayette.edu
 address  192.168.0.100
 hostgroups   cisco-switch-standard
 parents  router.lafayette.edu
 }
 
 define service {
 use  service-standard
 hostsswitch.lafayette.edu
 servicegroupscisco-switch-standard
 service_description  Switch Port Gi1/0/1
 check_commandcheck_snmp_traffic!-N Gi1/0/1!-C $USER2$
 }
 
 In short, this configuration defines a host and then a service for that
 host which is, essentially, an snmp check that monitors the traffic on a
 specific port.
 
 Advantages
 * Cleanly links a port to a switch
 * Somewhat easy to add/remove specific hosts that need that port monitored
 

Agreed.

 Disadvantages
 * Parent/child relationships are difficult, if not impossible, to define

I disagree. The switch is still the parent of whatever hosts are sitting
beyond it, from Nagios' point of view. If one port stops forwarding
traffic but the switch is still up (and thus probably reachable from the
admin interface), the actions a network admin would take are vastly
different. I agree that it would be nice to be able to surpress
notifications for the hosts connected through this particular port, but
that would be easier to solve by making it possible to have services as
parents (like a parent_service, perhaps).


 * Making service changes for a single port requires creating a unique
 new service
 * Service descriptions can get a bit long when they need to have a
 meaningful description associated with them

Agreed on those two (sort of).

 * Ports with associated addresses are more difficult to define
 

I don't quite follow you here. If you mean that the interface name is
hard to remember (or type), then you can just rename the interface in
the switch itself. Name it kungfupanda for all anyone cares. It's a
piece of hardware, so it won't be offended no matter what you name it.

Other than that, finding it hard to remember is just another reason
why you would want it sent to you in a notification so you can quickly
find which interface it is when you're trying to fix the problem.

 
 Host-based Ports
 
 Another method to accomplish this is to create a “fake” host entry for
 each port and then assign services to those ports for monitoring.  The
 following configuration snippet demonstrates this :
 
 define host {
 use  cisco-switch-standard
 host_nameswitch.lafayette.edu
 address  192.168.0.100
 hostgroups   cisco-switch-standard
 parents  router.lafayette.edu
 }
 
 define host {
 use  cisco-switch-standard
 host_nameswitch-g1-0-1.lafayette.edu
 address  192.168.0.100
 hostgroups   cisco-switch-standard
 _PORTGi1/0/1
 parents  switch.lafayette.edu
 }
 
 define service {
 use  service-standard
 hostsswitch.lafayette.edu
 servicegroupscisco-switch-standard
 service_description  Port Traffic
 check_commandcheck_snmp_traffic!-N $_HOSTPORT$!-C $USER2$
 }
 
 This configuration defines two hosts, a switch and a port on that
 switch, and then a service linked to the port.
 
 Advantages
 * Parent/child relationships work as expected

They work no differently than they did before. Or am I missing
something?

 * A single service entry can be used for many port entries
 * Very easy to deal with address-assigned ports such as router interfaces
 

True.

 Disadvantages
 * Every port on every switch has to be defined

False. Only the ones you need to monitor somewhere have to be
defined.

 

Re: [Nagios-users] host_port objects - Enhancement Request

2010-10-28 Thread Ton Voon

On 28 Oct 2010, at 16:16, Jason Frisvold wrote:

 Nagios Enhancement Proposal

 Overview

 Currently, there are two primary ways to add individual physical ports
 for a port-based device.  Each method has both advantages and
 disadvantages, but neither fully satisfies the needs of Lafayette and,
 likely, other institutions.

Opsview (http://opsview.com) has the Service-based Ports way of  
doing this. You assign host attributes with X number of items to a  
host and then Opsview will generate X service checks against it. An  
example of this is urls or disks or processes.

But the most common request for X number of things is interfaces, so  
we've designed some special pages for that. There's a discovery page  
where you click Query Host and you get a list of all your interfaces  
and you just tick which ones you want monitored, with your desired  
thresholds. And there's a Host Interfaces page where you can see a  
graph of all your interfaces with throughput and errors/discards.

See our screencast at http://bit.ly/dnWPJI  (from 02:10 onwards) to  
watch it in action.

Ton


--
Nokia and ATT present the 2010 Calling All Innovators-North America contest
Create new apps  games for the Nokia N8 for consumers in  U.S. and Canada
$10 million total in prizes - $4M cash, 500 devices, nearly $6M in marketing
Develop with Nokia Qt SDK, Web Runtime, or Java and Publish to Ovi Store 
http://p.sf.net/sfu/nokia-dev2dev
___
Nagios-users mailing list
Nagios-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/nagios-users
::: Please include Nagios version, plugin version (-v) and OS when reporting 
any issue. 
::: Messages without supporting info will risk being sent to /dev/null