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!
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?
Hi - did you ever work out a fix - we're having the same issue with service alerts into opsgenie.
Thanks,
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.