= Icinga2 Notification to Slack through Director = === Prerequisite === * SLACK API !WebHook URL created. If you haven't created these, please consult [wiki:NSM2021/Agenda/SlackGuide here] * Notification Users are created in Icinga Director == Create new command on Icinga2 == We have created custom bash codes to translate Icinga notifications to Slack. Download them into the scripts directory. {{{ #!sh cd /etc/icinga2/scripts wget https://raw.githubusercontent.com/LEARN-LK/Tutorials/master/Scripts/ICINGA2/icinga2-slack-host.sh wget https://raw.githubusercontent.com/LEARN-LK/Tutorials/master/Scripts/ICINGA2/icinga2-slack-service.sh chmod +x icinga2-slack-host.sh chmod +x icinga2-slack-service.sh }}} Then log into Icinga Director and create two commands as follows. * Host Alarm to Slack [[Image(HostAlarm-Slack.png, 500px, nolink)]] Add following Arguments as well. [[Image(HAS-Args.png, 400px, nolink)]] * Service Alarm to Slack [[Image(ServiceAlarm-Slack.png, 500px, nolink)]] * Add following Arguments as well. [[Image(SAS-Args.png, 400px, nolink)]] == Create Custom Variables == Above scripts uses a custom variable called slackAPI, this is a Slack channel specific data and we have to define it on Iciga Director before applying it on Notifications. Go to Icinga Director --> `Define Data Fields` Create new Data Field as follows: * Slack !WebHook URL [[Image(slackAPI.png, 400px, nolink)]] == Slack Notification Templates == Create following templates with the given data. * Slack Host Notification Template [[Image(SHT.png, 500px, nolink)]] * Include custom field we created earlier. Goto the Fields tab of the template and enter `slackAPI` as amandatory field. [[Image(Field_slackAPI.png, 500px, nolink)]] * Slack Service Notification Template [[Image(SST.png, 500px, nolink)]] * Goto the Fields tab of the template and enter `slackAPI` as mandatory fields based on previous guidelines. == Create Notifications to Slack == In this setup, we shall create two notifications setups for Hosts and Services respectively. When assigning notifications we should select a user rather than a user group to avoid multiple duplicates of notifications. * Slack-Host-Notification [[Image(SHN.png, 600px, nolink)]] * Slack-Service-Notification [[Image(SSN.png, 600px, nolink)]] * Finally, Deploy the changes you did.