Webhook Configuration¶
Vitrage can be configured to support webhooks for the sending of notifications regarding raised or cleared alarms to any registered target.
Enable Webhook Notifier¶
To enable the webhook plugin, add it to the list of notifiers in /etc/vitrage/vitrage.conf file:
[DEFAULT] notifiers = webhook
Webhook API¶
Webhooks can be added, listed and deleted from the database using the following commands:
Add¶
To add a new webhook to the database, use the command ‘vitrage webhook add’. The fields are:
Name |
Description |
Required |
---|---|---|
url |
The webhook URL to which notifications will be sent |
Yes |
regex_filter |
A JSON string to filter for specific events |
No |
headers |
A JSON string specifying additional headers to the notification |
No |
Usage example:
vitrage webhook add --url https://www.myserver.com --headers
"{'content-type': 'application/json'}" --regex_filter "{'vitrage_type':
'.*'}"
If no regex filter is supplied, all notifications will be sent.
The defaults headers are : ‘{‘content-type’: ‘application/json’}’
Data is sent by the webhook notifier in the following format.
notification:
vitrage.alarm.activate
orvitrage.alarm.deactivate
payload: The alarm data
{
"notification": "vitrage.alarm.activate",
"payload": {
"vitrage_id": "2def31e9-6d9f-4c16-b007-893caa806cd4",
"resource": {
"vitrage_id": "437f1f4c-ccce-40a4-ac62-1c2f1fd9f6ac",
"name": "app-1-server-1-jz6qvznkmnif",
"update_timestamp": "2018-01-22 10:00:34.327142+00:00",
"vitrage_category": "RESOURCE",
"vitrage_operational_state": "OK",
"vitrage_type": "nova.instance",
"project_id": "8f007e5ba0944e84baa6f2a4f2b5d03a",
"id": "9b7d93b9-94ec-41e1-9cec-f28d4f8d702c"
},
"update_timestamp": "2018-01-22T10:00:34Z",
"vitrage_category": "ALARM",
"state": "Active",
"vitrage_type": "vitrage",
"vitrage_operational_severity": "WARNING",
"name": "Instance memory performance degraded"
}
}
Each of the fields listed can be used to filter the data when specifying a regex filter for the webhook.
List¶
List all webhooks currently in the DB:
vitrage webhook list
Show¶
Show a webhook with specified id:
vitrage webhook show <id>
ID of webhooks is decided by Vitrage and can be found using the ‘list’ command
Delete¶
Delete a webhook with specified id:
vitrage webhook delete <id>
ID of webhooks is decided by Vitrage and can be found using the ‘list’ command