Slack Notifications
If your organization uses Slack, you can configure Horizon to send notices to any channel via an incoming webhook. You must configure an incoming webhook in your Slack settings and manually configure some settings in your Horizon instance.
For more information on incoming webhooks in Slack, see the Slack API documentation.
Note that the example here relies on the ability to override the channel, which has been deprecated. We have a workaround, which is to add a second notification command. If you have an old-style webhook, the original process still works, but Slack may remove it in the future.
For more information on the discussion, see the article on Discourse.
Setup
First, add the following XML to notificationCommands.xml
(no customization should be needed):
<command binary="false">
<name>slack</name>
<execute>org.opennms.netmgt.notifd.SlackNotificationStrategy</execute>
<comment>class for sending messages to a Slack team channel for notifications</comment>
<argument streamed="false">
<switch>-subject</switch>
</argument>
<argument streamed="false">
<switch>-tm</switch>
</argument>
</command>
Add a second notifciation command to notificationCommands.xml
, and a corresponding destination path.
Use it for the notifications you want to go to the second channel.
<command binary="false">
<name>slack-two</name>
<execute>org.opennms.netmgt.notifd.SlackNotificationStrategy</execute>
<comment>class for sending messages to a second Slack team channel for notifications</comment>
<argument streamed="false">
<switch>-subject</switch>
</argument>
<argument streamed="false">
<switch>-tm</switch>
</argument>
<argument streamed="false">
<substitution>https://hooks.slack.com/services/T00000000/B00000000/XXXXXXXXXXXXXXXXXXXXXXXX</substitution>(1)
<switch>-url</switch>
</argument>
</command>
1 | Replace with a valid webhook for your desired channel. |
Create slack.properties
in your opennms.properties.d
directory, and insert the following property:
org.opennms.netmgt.notifd.slack.webhookURL=https://hooks.slack.com/services/A00000000/X00000000/XXXXXXXXXXXXXXXXXXXXXXXX
Customize its values as appropriate for your organization.
Horizon loads slack.properties
upon restart.
After it is loaded, your new slack
notification command will be available for use in a destination path.
Additional configuration options
The following table lists optional properties that you may use in slack.properties
to customize your Slack notifications:
Parameter | Description | Default Value | Example |
---|---|---|---|
org.opennms.netmgt.notifd.slack.channel |
Specify a channel or private group other than the one targeted by the webhook. |
Webhook default |
NetOps |
org.opennms.netmgt.notifd.slack.username |
The username to associate with the notification posts. |
Blank |
OpenNMS_Bot |
org.opennms.netmgt.notifd.slack.iconEmoji |
An emoji sequence to use as the icon for the notification posts. |
Blank |
:metal: |
org.opennms.netmgt.notifd.slack.iconURL |
The URL of an image to use as the icon for the notification posts. |
Blank |
https://example.org/assets/icon.png |
org.opennms.netmgt.notifd.slack.useSystemProxy |
Should the system-wide proxy settings be used? Configure the system proxy settings via system properties. |
true |
true |