From b40621bc3f1253adaa154428ddef758638b5d175 Mon Sep 17 00:00:00 2001 From: Nishanth Thomas Date: Tue, 8 Apr 2014 20:12:14 +0530 Subject: SNMP Trap Support : SNMP notification on status change These plugins will generate SNMP traps when there is a host or service state change in Nagios. Plugged into the Nagios Notification mechanism and uses netsnmp utils to generate SNMP traps Addressed the review comments Change-Id: I42c4d1968a48bc80e767f6fbc24d1637a92d21b0 Signed-off-by: Nishanth Thomas --- config/Makefile.am | 8 + config/NAGIOS-NOTIFY-MIB | 620 +++++++++++++++++++++++++++++++++++++++++++ config/NAGIOS-ROOT-MIB | 87 ++++++ config/gluster-commands.cfg | 10 + config/gluster-contacts.cfg | 12 + config/gluster-templates.cfg | 26 +- config/snmpmanagers.cfg | 5 + 7 files changed, 759 insertions(+), 9 deletions(-) create mode 100644 config/NAGIOS-NOTIFY-MIB create mode 100644 config/NAGIOS-ROOT-MIB create mode 100644 config/snmpmanagers.cfg (limited to 'config') diff --git a/config/Makefile.am b/config/Makefile.am index 0f7f73a..4435879 100644 --- a/config/Makefile.am +++ b/config/Makefile.am @@ -6,6 +6,7 @@ glusternagiosconf_DATA = \ gluster-templates.cfg \ gluster-contacts.cfg \ host-monitoring-services.in \ + snmpmanagers.cfg \ $(NULL) glusternagiosdefaultconfdir = $(sysconfdir)/nagios/gluster/default @@ -15,7 +16,14 @@ glusternagiosdefaultconf_DATA = \ node1.cfg \ $(NULL) +glusternagiosmibsdir = /usr/share/snmp/mibs +glusternagiosmibs_DATA = \ + NAGIOS-NOTIFY-MIB \ + NAGIOS-ROOT-MIB \ + $(NULL) + EXTRA_DIST = \ $(glusternagiosconf_DATA) \ $(glusternagiosdefaultconf_DATA) \ + $(glusternagiosmibs_DATA) \ $(NULL) diff --git a/config/NAGIOS-NOTIFY-MIB b/config/NAGIOS-NOTIFY-MIB new file mode 100644 index 0000000..03b4c07 --- /dev/null +++ b/config/NAGIOS-NOTIFY-MIB @@ -0,0 +1,620 @@ +NAGIOS-NOTIFY-MIB DEFINITIONS ::= BEGIN + IMPORTS + MODULE-IDENTITY, OBJECT-TYPE, NOTIFICATION-TYPE, + Integer32, Gauge32 + FROM SNMPv2-SMI + nagios,NotifyType,HostStateID,HostStateType,ServiceStateID + FROM NAGIOS-ROOT-MIB; + +nagiosNotify MODULE-IDENTITY + LAST-UPDATED "200503090000Z" -- March 9, 2005 + ORGANIZATION "Nagios" + CONTACT-INFO + " Subhendu Ghosh + + Telephone: +1 201 232 2851 + Email: sghosh@users.sourceforge.net + + Nagios Information: + http://www.nagios.org + " + DESCRIPTION + "Objects for Nagios(tm) events. There are 2 primary tables + reflecting the division in Nagios for Host events and + Service events. + + The event tables are extended by the HostNotifyTable and the + ServiceNotifyTable to keep track of the notifications based on events. + + The tables entries themselves are not accessible but are used for OID + entries for TRAP/INFORM notifications. + + These objects are based on the macros defined in Nagios v2.0 + " + REVISION "200503090000Z" -- March 9, 2005 + DESCRIPTION + "Spell check" + REVISION "200501200000Z" --January 20, 2005 + DESCRIPTION + "Initial Version" + ::= { nagios 1 } + + +nagiosHostEventTable OBJECT-TYPE + SYNTAX SEQUENCE OF HostEventEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Table of Nagios host events" + ::= { nagiosNotify 1 } + +HostEventEntry ::= SEQUENCE { + nHostEventIndex Integer32, + nHostname OCTET STRING, + nHostAlias OCTET STRING, + nHostStateID HostStateID, + nHostStateType HostStateType, + nHostAttempt Integer32, + nHostDurationSec Integer32, + nHostGroupName OCTET STRING, + nHostLastCheck INTEGER, + nHostLastChange INTEGER, + nHostLastUp INTEGER, + nHostLastDown INTEGER, + nHostLastUnreachable INTEGER, + nHostOutput OCTET STRING, + nHostPerfData OCTET STRING + } + +nagiosHostEventEntry OBJECT-TYPE + SYNTAX HostEventEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Each notification event" + INDEX { nHostEventIndex } + ::= { nagiosHostEventTable 1 } + +nHostEventIndex OBJECT-TYPE + SYNTAX Integer32 (1..65535) + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "This object uniquely identifies this host event entry. It is generated + by the SNMP application and is not related to any Nagios data." + ::= { nagiosHostEventEntry 1 } + +nHostname OBJECT-TYPE + SYNTAX OCTET STRING + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Hostname as specified in the Nagios configuration file." + ::= { nagiosHostEventEntry 2 } + +nHostAlias OBJECT-TYPE + SYNTAX OCTET STRING + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The host alias as specified in the Nagios configuration file" + ::= { nagiosHostEventEntry 3 } + +nHostStateID OBJECT-TYPE + SYNTAX HostStateID + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The host state as defined by the HOSTSTATEID macro" + ::= { nagiosHostEventEntry 4 } + +nHostStateType OBJECT-TYPE + SYNTAX HostStateType + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The host state as defined by the HOSTSTATETYPE macro" + ::= { nagiosHostEventEntry 5 } + +nHostAttempt OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of the current host check retry. For instance, if this is the + second time that the host is being rechecked, this will be the number two. + Current attempt number is really only useful when writing host event + handlers for soft states that take a specific action based on the host retry + number. The host state as defined by the HOSTSTATEID macro" + ::= { nagiosHostEventEntry 6 } + +nHostDurationSec OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A number indicating the number of seconds that the host has spent in its + current state" + ::= { nagiosHostEventEntry 7 } + +nHostGroupName OBJECT-TYPE + SYNTAX OCTET STRING + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The short name of the hostgroup that this host belongs to. This value is + taken from the hostgroup_name directive in the hostgroup definition. If the + host belongs to more than one hostgroup this macro will contain the name of + just one of them." + ::= { nagiosHostEventEntry 8 } + +nHostLastCheck OBJECT-TYPE + SYNTAX INTEGER + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This is a timestamp in time_t format (seconds since the UNIX epoch) + indicating the time at which a check of the host was last performed." + ::= { nagiosHostEventEntry 9 } + +nHostLastChange OBJECT-TYPE + SYNTAX INTEGER + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This is a timestamp in time_t format (seconds since the UNIX epoch) + indicating the time the host last changed state." + ::= { nagiosHostEventEntry 10 } + +nHostLastUp OBJECT-TYPE + SYNTAX INTEGER + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This is a timestamp in time_t format (seconds since the UNIX epoch) + indicating the time at which the host was last detected as being in an UP + state." + ::= { nagiosHostEventEntry 11 } + +nHostLastDown OBJECT-TYPE + SYNTAX INTEGER + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This is a timestamp in time_t format (seconds since the UNIX epoch) + indicating the time at which the host was last detected as being in an + DOWN state." + ::= { nagiosHostEventEntry 12 } + +nHostLastUnreachable OBJECT-TYPE + SYNTAX INTEGER + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This is a timestamp in time_t format (seconds since the UNIX epoch) + indicating the time at which the host was last detected as being in an + UNREACHABLE state." + ::= { nagiosHostEventEntry 13 } + +nHostOutput OBJECT-TYPE + SYNTAX OCTET STRING + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The text output from the last host check (i.e. Ping OK)." + ::= { nagiosHostEventEntry 14 } + +nHostPerfData OBJECT-TYPE + SYNTAX OCTET STRING + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This object contains any performance data that may have been returned + by the last host check." + ::= { nagiosHostEventEntry 15 } + + + +-- +-- Host Notifications + +nagiosHostNotifyTable OBJECT-TYPE + SYNTAX SEQUENCE OF HostNotifyEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Table of Nagios host notifications" + ::= {nagiosNotify 2} + +HostNotifyEntry ::= SEQUENCE { + nHostNotifyType NotifyType, + nHostNotifyNum Gauge32, -- was Integer32, + nHostAckAuthor OCTET STRING, + nHostAckComment OCTET STRING + } + +nagiosHostNotifyEntry OBJECT-TYPE + SYNTAX HostNotifyEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Nagios host notifications extends the nagiosHostEventTable when a + notification is generated for an event." + INDEX { nHostEventIndex } + ::= { nagiosHostNotifyTable 1 } + +nHostNotifyType OBJECT-TYPE + SYNTAX NotifyType + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This identifies the type of notification that is being sent + (PROBLEM, RECOVERY, ACKNOWLEDGEMENT, FLAPPINGSTART or FLAPPINGSTOP)" + ::= { nagiosHostNotifyEntry 1 } + +nHostNotifyNum OBJECT-TYPE + SYNTAX Gauge32 -- was NotifyType + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This identifies the current notification number for the service or host. + The notification number increases by one (1) each time a new notification + is sent out for a host or service (except for acknowledgements). The + notification number is reset to 0 when the host or service recovers + (after the recovery notification has gone out). Acknowledgements do not + cause the notification number to increase." + ::= { nagiosHostNotifyEntry 2 } + +nHostAckAuthor OBJECT-TYPE + SYNTAX OCTET STRING + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A string containing the name of the user who acknowledged the host + problem. This macro is only valid in notifications where the + $NOTIFICATIONTYPE$ macro is set to ACKNOWLEDGEMENT." + ::= { nagiosHostNotifyEntry 3 } + +nHostAckComment OBJECT-TYPE + SYNTAX OCTET STRING + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A string containing the acknowledgement comment that was entered by + the user who acknowledged the host problem. This macro is only valid + in notifications where the $NOTIFICATIONTYPE$ macro is set to ACKNOWLEDGEMENT" + ::= { nagiosHostNotifyEntry 4 } + + +-- +-- Service Events +-- + + +nagiosSvcEventTable OBJECT-TYPE + SYNTAX SEQUENCE OF SvcEventEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Table of Nagios service notifications" + ::= { nagiosNotify 3 } + +SvcEventEntry ::= SEQUENCE { + nSvcEventIndex Integer32, + nSvcHostname OCTET STRING, + nSvcHostAlias OCTET STRING, + nSvcHostStateID HostStateID, + nSvcHostStateType HostStateType, + nSvcDesc OCTET STRING, + nSvcStateID ServiceStateID, + nSvcAttempt Integer32, + nSvcDurationSec Integer32, + nSvcGroupName OCTET STRING, + nSvcLastCheck INTEGER, + nSvcLastChange INTEGER, + nSvcLastOK INTEGER, + nSvcLastWarn INTEGER, + nSvcLastCrit INTEGER, + nSvcLastUnkn INTEGER, + nSvcOutput OCTET STRING, + nSvcPerfData OCTET STRING + } + +nagiosSvcEventEntry OBJECT-TYPE + SYNTAX SvcEventEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Table of Nagios service events." + INDEX { nSvcEventIndex } + ::= { nagiosSvcEventTable 1 } + +nSvcEventIndex OBJECT-TYPE + SYNTAX Integer32 (1..65535) + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "This object uniquely identifies this service event entry" + ::= { nagiosSvcEventEntry 1 } + +nSvcHostname OBJECT-TYPE + SYNTAX OCTET STRING + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Hostname as specified in the Nagios configuration file." + ::= { nagiosSvcEventEntry 2 } + +nSvcHostAlias OBJECT-TYPE + SYNTAX OCTET STRING + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The host alias as specified in the Nagios configuration file" + ::= { nagiosSvcEventEntry 3 } + +nSvcHostStateID OBJECT-TYPE + SYNTAX HostStateID + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A number that corresponds to the current state of the service: 0=OK, + 1=WARNING, 2=CRITICAL, 3=UNKNOWN." + ::= { nagiosSvcEventEntry 4 } + +nSvcHostStateType OBJECT-TYPE + SYNTAX HostStateType + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Whether the host is in a hard or soft state." + ::= { nagiosSvcEventEntry 5 } + +nSvcDesc OBJECT-TYPE + SYNTAX OCTET STRING + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This value is taken from the description directive of the service + definition." + ::= { nagiosSvcEventEntry 6 } + +nSvcStateID OBJECT-TYPE + SYNTAX ServiceStateID + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " A number that corresponds to the current state of the service: 0=OK, + 1=WARNING, 2=CRITICAL, 3=UNKNOWN" + ::= { nagiosSvcEventEntry 7 } + +nSvcAttempt OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of the current service check retry. For instance, if this is + the second time that the service is being rechecked, this will be the + number two. Current attempt number is really only useful when writing + service event handlers for soft states that take a specific action based + on the service retry number." + ::= { nagiosSvcEventEntry 8 } + +nSvcDurationSec OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A number indicating the number of seconds that the service has spent in + its current state." + ::= { nagiosSvcEventEntry 9 } + +nSvcGroupName OBJECT-TYPE + SYNTAX OCTET STRING + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The short name of the servicegroup that this service belongs to. This + value is taken from the servicegroup_name directive in the servicegroup + definition. If the service belongs to more than one servicegroup this + object will contain the name of just one of them." + ::= { nagiosSvcEventEntry 10 } + +nSvcLastCheck OBJECT-TYPE + SYNTAX INTEGER + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This is a timestamp in time_t format (seconds since the UNIX epoch) + indicating the time at which a check of the service was last performed." + ::= { nagiosSvcEventEntry 11 } + +nSvcLastChange OBJECT-TYPE + SYNTAX INTEGER + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This is a timestamp in time_t format (seconds since the UNIX epoch) + indicating the time the service last changed state." + ::= { nagiosSvcEventEntry 12 } + +nSvcLastOK OBJECT-TYPE + SYNTAX INTEGER + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This is a timestamp in time_t format (seconds since the UNIX epoch) + indicating the time at which the service was last detected as being in an + OK state." + ::= { nagiosSvcEventEntry 13 } + +nSvcLastWarn OBJECT-TYPE + SYNTAX INTEGER + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This is a timestamp in time_t format (seconds since the UNIX epoch) + indicating the time at which the service was last detected as being in a + WARNING state." + ::= { nagiosSvcEventEntry 14 } + +nSvcLastCrit OBJECT-TYPE + SYNTAX INTEGER + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This is a timestamp in time_t format (seconds since the UNIX epoch) + indicating the time at which the service was last detected as being in a + CRITICAL state." + ::= { nagiosSvcEventEntry 15 } + +nSvcLastUnkn OBJECT-TYPE + SYNTAX INTEGER + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This is a timestamp in time_t format (seconds since the UNIX epoch) + indicating the time at which the service was last detected as being in an + UNKNOWN state." + ::= { nagiosSvcEventEntry 16 } + +nSvcOutput OBJECT-TYPE + SYNTAX OCTET STRING + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The text output from the last service check (i.e. Ping OK)." + ::= { nagiosSvcEventEntry 17 } + +nSvcPerfData OBJECT-TYPE + SYNTAX OCTET STRING + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This object contains any performance data that may have been returned by + the last service check." + ::= { nagiosSvcEventEntry 18 } + + +-- +-- Service Notifications +-- + +nagiosSvcNotifyTable OBJECT-TYPE + SYNTAX SEQUENCE OF SvcNotifyEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Table of Nagios service notifications." + ::= { nagiosNotify 4 } + +SvcNotifyEntry ::= SEQUENCE { + nSvcNotifyType NotifyType, + nSvcNotifyNum Gauge32, -- Integer32, + nSvcAckAuthor OCTET STRING, + nSvcAckComment OCTET STRING + } + +nagiosSvcNotifyEntry OBJECT-TYPE + SYNTAX SvcNotifyEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Nagios service notifications extends the nagiosSvcEnevtsTable when + a notification is generated for an event." + INDEX { nSvcEventIndex } + ::= { nagiosSvcNotifyTable 1} + + +nSvcNotifyType OBJECT-TYPE + SYNTAX NotifyType + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A string identifying the type of notification that is being sent + (PROBLEM, RECOVERY, ACKNOWLEDGEMENT, FLAPPINGSTART or FLAPPINGSTOP)." + ::= { nagiosSvcNotifyEntry 1 } + +nSvcNotifyNum OBJECT-TYPE + SYNTAX Gauge32 -- Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The current notification number for the service or host. The notification + number increases by one (1) each time a new notification is sent out for a + host or service (except for acknowledgements). The notification number is + reset to 0 when the host or service recovers (after the recovery + notification has gone out). Acknowledgements do not cause the notification + number to increase." + ::= { nagiosSvcNotifyEntry 2 } + +nSvcAckAuthor OBJECT-TYPE + SYNTAX OCTET STRING + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A string containing the name of the user who acknowledged the service + problem. This object is only valid in notifications where the + nSvcNotifyType object is set to ACKNOWLEDGEMENT." + ::= { nagiosSvcNotifyEntry 3 } + +nSvcAckComment OBJECT-TYPE + SYNTAX OCTET STRING + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A string containing the acknowledgement comment that was entered by the + user who acknowledged the service problem. This object is only valid in + notifications where the nSvcNotifyType object is set to ACKNOWLEDGEMENT." + ::= { nagiosSvcNotifyEntry 4 } + + +-- +-- Events and Notifications +-- + +nHostEvent NOTIFICATION-TYPE + OBJECTS { nHostname, nHostStateID, nHostStateType, nHostAttempt, + nHostDurationSec, nHostGroupName, nHostLastCheck, nHostLastChange, + nHostOutput } + STATUS current + DESCRIPTION + "The SNMP trap that is generated as a result of an event with the host + in Nagios." + + ::= { nagiosNotify 5 } + +nHostNotify NOTIFICATION-TYPE + OBJECTS { nHostNotifyType, nHostNotifyNum, nHostAckAuthor, nHostAckComment, + nHostname, nHostStateID, nHostStateType, nHostAttempt, + nHostDurationSec, nHostGroupName, nHostLastCheck, nHostLastChange, + nHostOutput } + STATUS current + DESCRIPTION + "The SNMP trap that is generated as a result of an event requiring + notification for a host in Nagios." + ::= { nagiosNotify 6 } + +nSvcEvent NOTIFICATION-TYPE + OBJECTS { nHostname, nHostStateID, nSvcDesc, nSvcStateID, nSvcAttempt, + nSvcDurationSec, nSvcGroupName, nSvcLastCheck, nSvcLastChange, + nSvcOutput } + STATUS current + DESCRIPTION + "The SNMP trap that is generated as a result of an event with the service + in Nagios." + ::= { nagiosNotify 7 } + +nSvcNotify NOTIFICATION-TYPE + OBJECTS { nSvcNotifyType, nSvcNotifyNum, nSvcAckAuthor, nSvcAckComment, + nHostname, nHostStateID, nSvcDesc, nSvcStateID, nSvcAttempt, + nSvcDurationSec, nSvcGroupName, nSvcLastCheck, nSvcLastChange, + nSvcOutput } + STATUS current + DESCRIPTION + "The SNMP trap that is generated as a result of an event requiring + notification for a service in Nagios." + ::= { nagiosNotify 8 } + + +END diff --git a/config/NAGIOS-ROOT-MIB b/config/NAGIOS-ROOT-MIB new file mode 100644 index 0000000..5fe0771 --- /dev/null +++ b/config/NAGIOS-ROOT-MIB @@ -0,0 +1,87 @@ +NAGIOS-ROOT-MIB DEFINITIONS ::= BEGIN +IMPORTS + MODULE-IDENTITY, enterprises + FROM SNMPv2-SMI + TEXTUAL-CONVENTION + FROM SNMPv2-TC; + + +nagios MODULE-IDENTITY + LAST-UPDATED "200503090000Z" -- March 9, 2005 + ORGANIZATION "Nagios" + CONTACT-INFO + " Subhendu Ghosh + + Telephone: +1 201 232 2851 + Email: sghosh@users.sourceforge.net + + Nagios Information: + http://www.nagios.org + " + DESCRIPTION + "Objects for Nagios(tm) NMS" + REVISION "200503090000Z" -- March 9, 2005 + DESCRIPTION + "Spell check" + REVISION "200501200000Z" --January 20, 2005 + DESCRIPTION + "Initial Version" + ::= {enterprises 20006} + +-- +-- Textual Conventions +-- + +NotifyType ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "A string identifying the type of notification that is being sent + (PROBLEM, RECOVERY, ACKNOWLEDGEMENT, FLAPPINGSTART or FLAPPINGSTOP). + " + SYNTAX INTEGER { + problem(0), + recovery(1), + acknowledgement(2), + flappingstart(3), + flappingstop(4) + } + +HostStateID ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "A number that corresponds to the current state of the host: 0=UP, 1=DOWN, + 2=UNREACHABLE." + SYNTAX INTEGER { + up(0), + down(1), + unreachable(3) + } + +HostStateType ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "A string indicating the state type for the current host check (HARD or + SOFT). Soft states occur when host checks return a non-OK (non-UP) state + and are in the process of being retried. Hard states result when host + checks have been checked a specified maximum number of times." + SYNTAX INTEGER { + hard(0), + soft(1) + } + +ServiceStateID ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "A number that corresponds to the current state of the service: 0=OK, + 1=WARNING, 2=CRITICAL, 3=UNKNOWN. + " + SYNTAX INTEGER{ + ok(0), + warning(1), + critical(2), + unknown(3) + } + + +END + diff --git a/config/gluster-commands.cfg b/config/gluster-commands.cfg index 73b9e7a..f1b94a4 100644 --- a/config/gluster-commands.cfg +++ b/config/gluster-commands.cfg @@ -45,6 +45,16 @@ define command { } +define command { + command_name gluster-notify-host-by-snmp + command_line $USER1$/gluster/hostsnmptrapgenerator.py $NOTIFICATIONTYPE$ $HOSTNOTIFICATIONNUMBER$ "$HOSTNAME$" $HOSTSTATEID$ $HOSTSTATETYPE$ $HOSTATTEMPT$ $HOSTDURATIONSEC$ "$HOSTGROUPNAMES$" $LASTHOSTCHECK$ $LASTHOSTSTATECHANGE$ "$HOSTOUTPUT$" +} + +define command { + command_name gluster-notify-service-by-snmp + command_line $USER1$/gluster/servicesnmptrapgenerator.py $NOTIFICATIONTYPE$ $SERVICENOTIFICATIONNUMBER$ "$HOSTNAME$" $HOSTSTATEID$ "$SERVICEDESC$" $SERVICESTATEID$ $SERVICEATTEMPT$ "$SERVICEDURATION$" "$SERVICEGROUPNAMES$" $LASTSERVICECHECK$ $LASTSERVICESTATECHANGE$ "$SERVICEOUTPUT$" +} + define command { command_name check_brick_usage command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c check_brick_usage -a $_SERVICEBRICK_DIR$ diff --git a/config/gluster-contacts.cfg b/config/gluster-contacts.cfg index 758a102..47bce44 100644 --- a/config/gluster-contacts.cfg +++ b/config/gluster-contacts.cfg @@ -13,3 +13,15 @@ define contact { _ovirt_user admin@internal } +define contact { + contact_name snmp + alias Snmp Traps + email admin@ovirt.com + service_notification_period 24x7 + service_notification_options w,u,c,r,f,s + service_notification_commands gluster-notify-service-by-snmp + host_notification_period 24x7 + host_notification_options d,u,r,f,s + host_notification_commands gluster-notify-host-by-snmp +} + diff --git a/config/gluster-templates.cfg b/config/gluster-templates.cfg index a1da860..d9bebf9 100644 --- a/config/gluster-templates.cfg +++ b/config/gluster-templates.cfg @@ -1,8 +1,12 @@ define host{ - name gluster-generic-host - use linux-server - register 0 - contacts +ovirt + name gluster-generic-host + use linux-server + notifications_enabled 1 + notification_period 24x7 + notification_interval 120 + notification_options d,u,r,f,s + register 0 + contacts +ovirt,snmp } define host { @@ -29,11 +33,15 @@ define host{ } define service { - name gluster-service - use generic-service - register 0 - contacts +ovirt - _gluster_entity Service + name gluster-service + use generic-service + notifications_enabled 1 + notification_period 24x7 + notification_options w,u,c,r,f,s + notification_interval 120 + register 0 + contacts +ovirt,snmp + _gluster_entity Service } define service { diff --git a/config/snmpmanagers.cfg b/config/snmpmanagers.cfg new file mode 100644 index 0000000..1e595f4 --- /dev/null +++ b/config/snmpmanagers.cfg @@ -0,0 +1,5 @@ +#Configure the trap destinations +#Provide the ipaddress and community names of SNMP manangers +# +#localhost public +#10.70.1.219 public \ No newline at end of file -- cgit