I have searched high and low. When I add the
vars.notification[“mail”] = {
groups = [ “sysadmins” ]
}
To the host object the mail notification works. Without this I get nothing.
Here is my configuration for transparency.
Templates.conf
template Host "generic-host" {
max_check_attempts = 3
check_interval = 1m
retry_interval = 30s
vars.notification["mail"] = {
groups = [ "icingaadmins" ]
}
vars.notification["telegram"] = {
users = [ "telegram-bot" ]
}
check_command = "hostalive"
}
template Service "generic-service" {
max_check_attempts = 5
check_interval = 1m
retry_interval = 30s
vars.notification["telegram"] = {
users = [ "telegram-bot" ]
}
}
template User "generic-user" {
}
##############################
######## EMAIL ##############
##############################
##### HOST #####
template Notification "mail-host-notification" {
command = "mail-host-notification"
states = [ Up, Down ]
types = [ Problem, Acknowledgement, Recovery, Custom,
FlappingStart, FlappingEnd,
DowntimeStart, DowntimeEnd, DowntimeRemoved ]
vars += {
notification_logtosyslog = false
notification_icingaweb2url = "https://mon.mydomain.com/icingaweb2"
notification_from = "infrastructure Icinga2 Monitoring Server <inframon@mydomain.com>"
}
period = "24x7"
}
##### SERVICE #####
template Notification "mail-service-notification" {
command = "mail-service-notification"
states = [ OK, Warning, Critical, Unknown ]
types = [ Problem, Acknowledgement, Recovery, Custom,
FlappingStart, FlappingEnd,
DowntimeStart, DowntimeEnd, DowntimeRemoved ]
vars += {
notification_icingaweb2url = "https://mon.mydomain.com/icingaweb2"
notification_from = "Infrastructure Icinga2 Monitoring Server <inframon@mydomain.com>"
notification_logtosyslog = false
}
period = "24x7"
}
#################################
########### TELEGRAM ############
#################################
##### HOST #####
template Notification "telegram-host-notification" {
command = "telegram-host-notification"
states = [ Up, Down ]
types = [ Problem, Acknowledgement, Recovery, Custom,
FlappingStart, FlappingEnd,
DowntimeStart, DowntimeEnd, DowntimeRemoved ]
vars += {
notification_icingaweb2url = "https://mon.mydomain.com/icingaweb2"
notification_from = "Infrastructure Icinga2 Monitoring Server <inframon@mydomain.com>"
notification_logtosyslog = false
}
period = "24x7"
}
##### SERVICE #####
template Notification "telegram-service-notification" {
command = "telegram-service-notification"
states = [ Critical ]
types = [ Problem, Acknowledgement, Recovery, Custom,
FlappingStart, FlappingEnd,
DowntimeStart, DowntimeEnd, DowntimeRemoved ]
vars += {
notification_icingaweb2url = "https://mon.mydomain.com/icingaweb2"
notification_from = "Infrastructure Icinga2 Monitoring Server <inframon@mydomain.com>"
notification_logtosyslog = false
}
period = "24x7"
}
Users.conf
##################################
#### default icinga admin ########
##################################
object User "icingaadmin" {
import "generic-user"
display_name = "Icinga 2 Admin"
groups = [ "icingaadmins" ]
email = "user@mydomain.com"
}
object UserGroup "icingaadmins" {
display_name = "Icinga 2 Admin Group"
}
##################################
########## USERS ##############
##################################
object User "mainuser" {
import "generic-user"
display_name = "Users Name"
groups = [ "sysadmins" ]
email = "user@mydomain.com"
}
####### GROUPS #######
object UserGroup "sysadmins" {
display_name = "IT SysAdmins"
}
##################################
########## telegram ############
##################################
object User "telegram-bot" {
import "generic-user"
display_name = "telegram-bot"
}
object User "it-telegram-bot" {
import "generic-user"
display_name = "it-telegram-bot"
}
Notifications.conf
apply Notification "mail-icingaadmin" to Host {
import "mail-host-notification"
user_groups = [ "sysadmins" ]
assign where host.vars.notification.mail
}
apply Notification "mail-icingaadmin" to Service {
import "mail-service-notification"
user_groups = [ "sysadmins" ]
assign where host.vars.notification.mail
}
apply Notification "telegram-icingaadmin" to Host {
import "telegram-host-notification"
user_groups = host.vars.notification.telegram.groups
users = host.vars.notification.telegram.users
assign where host.vars.notification.telegram
}
apply Notification "telegram-icingaadmin" to Service {
import "telegram-service-notification"
user_groups = host.vars.notification.telegram.groups
users = host.vars.notification.telegram.users
assign where host.vars.notification.telegram
}
The notification feature has been enabled.
I hope you can help.