Issue with Nagios2Opsgenie
Asked by Jason Adam:

I'm just starting to integrate our Nagios with Opsgenie. I created a service template and assigned it to a test service. In the logs, when switching to criticals I see nagios2opsgenie being called but I get the following warning:

WARNING Stopping, Nagios NOTIFICATIONTYPE param has no value, please make sure your Nagios and OpsGenie files pass necessary parameters

My service is defined with the following:

define service {  
name ops-genie-notify  
service_description /usr/local/nagios/bin/nagios2opsgenie  
display_name Nagiso to OpsGenie  
use passive_service  
check_command notify-service-by-opsgenie  
is_volatile 0  
max_check_attempts 1  
active_checks_enabled 0  
passive_checks_enabled 1  
check_period 24x7  
check_freshness 0  
event_handler notify-service-by-opsgenie  
event_handler_enabled 1  
flap_detection_enabled 0  
retain_status_information 1  
retain_nonstatus_information 1  
notification_interval 60  
notification_period 24x7  
notification_options c,r  
notifications_enabled 1  
stalking_options c  
_AlertTeam MOC  
register 0  
}

The command is defined as:

define command {  
command_name notify-service-by-opsgenie  
command_line /usr/local/nagios/bin/nagios2opsgenie -entityType=service -t="$NOTIFICATIONTYPE$" -ldt="$LONGDATETIME$" -hn="$HOSTNAME$" -hdn="$HOSTDISPLAYNAME$" -hal="$HOSTALIAS$" -haddr="$HOSTADDRESS$" -hs="$HOSTSTATE$" -hsi="$HOSTSTATEID$" -lhs="$LASTHOSTSTATE$" -lhsi="$LASTHOSTSTATEID$" -hst="$HOSTSTATETYPE$" -ha="$HOSTATTEMPT$" -mha="$MAXHOSTATTEMPTS$" -hei="$HOSTEVENTID$" -lhei="$LASTHOSTEVENTID$" -hpi="$HOSTPROBLEMID$" -lhpi="$LASTHOSTPROBLEMID$" -hl="$HOSTLATENCY$" -het="$HOSTEXECUTIONTIME$" -hd="$HOSTDURATION$" -hds="$HOSTDURATIONSEC$" -hdt="$HOSTDOWNTIME$" -hpc="$HOSTPERCENTCHANGE$" -hgn="$HOSTGROUPNAME$" -hgns="$HOSTGROUPNAMES$" -lhc="$LASTHOSTCHECK$" -lhsc="$LASTHOSTSTATECHANGE$" -lhu="$LASTHOSTUP$" -lhd="$LASTHOSTDOWN$" -lhur="$LASTHOSTUNREACHABLE$" -ho="$HOSTOUTPUT$" -lho="$LONGHOSTOUTPUT$" -hpd="$HOSTPERFDATA$" -s="$SERVICEDESC$" -sdn="$SERVICEDISPLAYNAME$" -ss="$SERVICESTATE$" -ssi="$SERVICESTATEID$" -lss="$LASTSERVICESTATE$" -lssi="$LASTSERVICESTATEID$" -sst="$SERVICESTATETYPE$" -sa="$SERVICEATTEMPT$" -msa="$MAXSERVICEATTEMPTS$" -siv="$SERVICEISVOLATILE$" -sei="$SERVICEEVENTID$" -lsei="$LASTSERVICEEVENTID$" -spi="$SERVICEPROBLEMID$" -lspi="$LASTSERVICEPROBLEMID$" -sl="$SERVICELATENCY$" -set="$SERVICEEXECUTIONTIME$" -sd="$SERVICEDURATION$" -sds="$SERVICEDURATIONSEC$" -sdt="$SERVICEDOWNTIME$" -spc="$SERVICEPERCENTCHANGE$" -sgn="$SERVICEGROUPNAME$" -sgns="$SERVICEGROUPNAMES$" -lsch="$LASTSERVICECHECK$" -lssc="$LASTSERVICESTATECHANGE$" -lsok="$LASTSERVICEOK$" -lsw="$LASTSERVICEWARNING$" -lsu="$LASTSERVICEUNKNOWN$" -lsc="$LASTSERVICECRITICAL$" -so="$SERVICEOUTPUT$" -lso="$LONGSERVICEOUTPUT$" -snu="$SERVICENOTESURL$" -spd="$SERVICEPERFDATA$"  
register 1  
}

In looking at the golang script notification type is set with the flag t but that doesn't do anything.

I've tried with the arguments, without, pretty much everything I can think of but doesn't seem like my service command is configured correctly.

Does anyone have an example that I can use to see what I'm missing here?

Thanks!


Answers:
author: Jason Adam
body: Neverrmind, apparently NOTIFICATIONTYPE is not used in service checks so it's sending an empty string. I just switched it to be "PROBLEM" and that worked fine. Though I guess my question would be if I want to send OpsGenie a message when a service goes to critical using a check service command, why is nagios2opsgenie expecting a non-empty string in the notification type field?

comments: author: Alexander Fossa
body: Hi - did you ever work out a fix - we're having the same issue with service alerts into opsgenie.

Thanks,


Tags: nagios