
Icinga2 Integration
Updated on March 29, 2026
Git Repository

The Signalgrid Icinga integration forwards monitoring alerts to the Signalgrid push notification API. It maps monitoring states such as OK, WARNING, CRITICAL, and DOWN to the appropriate Signalgrid notification types.
This allows you to receive infrastructure alerts directly on your devices when hosts or services change state.
Save the script to your server:
/usr/local/bin/signalgrid-notify.shMake the script executable:
chmod +x /usr/local/bin/signalgrid-notify.shEdit the script and insert your credentials:
CLIENT_KEY="[your-client-key]"
CHANNEL_TOKEN="[your-channel-token]"The script accepts four positional arguments:
$1$2$3OK, UP, WARNING, CRITICAL, or DOWN$4true or falseCreate a notification command in your Icinga configuration:
object NotificationCommand "signalgrid-notify" {
command = [ "/usr/local/bin/signalgrid-notify.sh" ]
arguments = {
0 = {
value = service ?
service.name + " on " + host.name + " is " + service.state :
"Host " + host.name + " is " + host.state
}
1 = {
value = service ? service.output : host.output
}
2 = {
value = service ? service.state : host.state
}
3 = {
value = (service && service.state == "Critical") ||
(!service && host.state == "Down") ?
"true" : "false"
}
}
}apply Notification "signalgrid-service" to Service {
command = "signalgrid-notify"
states = [ OK, Warning, Critical, Unknown ]
types = [ Problem, Recovery ]
users = [ "icingaadmin" ]
assign where host.vars.enable_signalgrid == true
}apply Notification "signalgrid-host" to Host {
command = "signalgrid-notify"
states = [ Up, Down ]
types = [ Problem, Recovery ]
users = [ "icingaadmin" ]
assign where host.vars.enable_signalgrid == true
}object Host "my-server" {
import "generic-host"
address = "192.168.1.10"
vars.enable_signalgrid = true
}You can verify the integration directly from the command line:
/usr/local/bin/signalgrid-notify.sh "Test Alert" "Manual test from terminal" "CRITICAL" "false"