A number of events in an organization in OneOps can trigger notifications. These events include deployments, monitors, scale and repair actions.
Notifications can be sent to a number of receiving notification sinks including simple URLs, Jabber, Amazon SNS and Slack.
To set up and configure notifications, follow these steps:
Select the notifications tab.
Press the Add button on top of the list of notifications to create a new notification sink.
Or click on the name of a specific notification sink in the list to access its configuration in the Details section on the right. Pressing the Edit button allows you to change the configuration.
Each notification sink includes a number of generic as well as type-specific configuration settings. The type is selected as a first action when creating a new notification sink.
The generic settings are:
Name: the required name of the notification sink.</dd>
Global - Description: optional description for the notification sink</dd>
Filtering: fine-grained control over which messages are sent is possible with filtering enabled. You can configure filters with criteria such as Event Type, Severity Level, Environment Profile Pattern, NS Paths, Monitoring Clouds and Message Pattern. Typically filtering should be enabled so that specific the notification sync is not flooded by all events for the organization. Instead it can be filtered to e.g. only receive specific events for a specific assembly with a combination of the available criteria.
Transformation: message can be transformed before they are sent
Dispatching - Message Dispatching: configure to use synchronous or asynchronous mechanism for dispatching event messages.</dd>
You can select multiple notification sinks to similar targets with different filters to achieve the desired verbosity and message frequence.
Type-specific configuration and usage is explained in the the sink specific sections:
Notifications can be configured to use a custom URL as notification sink.
In preparation you need to create a web application that receives notifications on a specific URL.
Then follow these steps to configure and use a URL notification sink.
Create a new notification sink with the type
account.notification.url.sink
.
Configure the Endpoint URL of the server in the Endpoint section.
If the URL is protected from anonymous posts, provide Service Username and Service Password in the Credentials section.
Save the new notification sink.
The workflow orchestration system Concord is an example of a system that can be configured as a URL sink to receive notifications from OneOps.
The Endpoint URL needs to be configured to use the oneops event endpoint of
the Concord API e.g. at https://concord.example.com/api/v1/events/oneops
.
Typically credentials are required and need to be configured with a service username and password.
To enable Concord triggers for compute replacements filtering is setup with:
This allows a Concord project to configure a trigger that can react to the replace compute events in OneOps by calling a workflow. This can for example be used to run an Ansible playbook against a replaced compute.
Notifications can be configured to use the Amazon Simple Notification Service as a notification sink.
In preparation you need to create an Amazon SNS account and an access key. Then follow these steps to configure and use an SNS notification sink.
Create a new notification sink with the type
account.notification.sns.sink
.
Provide your SNS credentials in Credentials section including the Access Key and the Secret Key.
Save the new notification sink.
Go to the SNS section in the Amazon AWS console.
The first notification event creates an SNS topic for that environment. Subsequent notifications are posted to the same topic.
Subscribe to the topic with your email or distribution list.
Notifications can be configured to use the open XMPP messaging standard originally introduced by Jabber as notification sink.
In preparation you need to get access details for the XMPP/Jabber server. Then follow these steps to configure and use an SNS notification sink.
Create a new notification sink with the type
account.notification.jabber.sink
.
Notifications can be configured to use Slack channels as a notification sink.
In preparation an administrator needs to create a custom bot user for each Slack team that wants to receive notifications:
In addition you need to configure the Slack integration in the OneOps notification service called Antenna by setting the environment variables for the Tomcat server running Antenna:
slack.url
: The URL to reach the Slack chat service. Defaults to
https://slack.com
. You need to ensure that this host can be reached on the
network. In an open deployment on the internet this is already the case. If
OneOps runs in an isolated network you need to open up the network or introduce
a reverse proxy server that can forward requests between Antenna and Slack. One
option for such a reverse proxy server is
NGINX.
slack.tokens
: The Slack bot API tokens need to be provided to Antenna with
this configuration. The supported syntax is a comma separated list of all your
bot user tokens for each team like team1=<token1>,team2=<token2>
.
Assuming your OneOps installation is managed and run by OneOps itself you can configure those environment variables for Antenna with the OneOps user interface:
slack.url
and slack.tokens
as
requiredIf OneOps is running via a manual install and is not managed by OneOps itself you have to configure the environment variables in the startup scripts for the Tomcat instance running Antenna.
With the administrator setup completed you can create your Slack notification sinks:
Create a new notification sink with the type
account.notification.slack.sink
.
Add the desired Channels to receive notifications in the Slack Config section.
Optionally configure Text Formats for inserting additional texts into the
message based on detected text. E.g., setting the Key field to critical
and
Value to :fire: ${text}
results in the Fire emoji to be inserted before any
occurrence of critical
.
If desired, enable Include Notification Fields.
Save the new notification sink.
Ensure that the Slack bot user has access to the channel. For public channels, this is automatically the case. For private channels the bot user needs to be added to the channel users.