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.
Online forums and learning are now in one easy-to-use experience.
By continuing, you accept the updated Community Terms of Use and acknowledge the Privacy Policy. Your public name, photo, and achievements may be publicly visible and available in search engines.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.