In order to publish an outage to Statuspage.io you can do the following:
1. You will need to get your API key to make the requests. https://developer.statuspage.io/#section/Authentication
Note: it's always a good idea to use an API key for a generic account!
2. Once you have your API key, you will want to set up your API call in PRTG. I am using a realtime incident as an example here but there are other types of incidents that can be triggered as well. See the documentation for other options: https://developer.statuspage.io/#operation/postPagesPageIdIncidents
Go to Setup -> Account Settings -> Notification Templates and create a new Template
In the template, under the Execute HTTP Action you need to add the URL
https://api.statuspage.io/v1/pages/{page_id}/incidents?api_key=yourapikeyherexxxxxx
with your page id and API Key in it.
For the body of the POST request, you need to send the following:
{ "incident": { "name": "string", "status": "string", "impact_override": "string", "scheduled_for": "2018-10-18T09:50:13Z", "scheduled_until": "2018-10-18T09:50:13Z", "scheduled_remind_prior": true, "scheduled_auto_in_progress": true, "scheduled_auto_completed": true, "metadata": null, "auto_transition_deliver_notifications_at_end": true, "auto_transition_deliver_notifications_at_start": true, "auto_transition_to_maintenance_state": true, "auto_transition_to_operational_state": true, "auto_tweet_at_beginning": true, "auto_tweet_on_completion": true, "auto_tweet_on_creation": true, "auto_tweet_one_hour_before": true, "backfill_date": "string", "backfilled": true, "body": "string", "components": { "component_id": "operational" }, "component_ids": [ "6vwkfff96rjk" ], "scheduled_auto_transition": true } }
3. Once you've added this to the notification template, you need to add a trigger for it. The following should initiate the incident:
That's it! Once you have this set up, PRTG should be able to open new incidents in your statuspage.io page when something goes down.
Remember, once the incident is open, you will have to close it by hand since you need the incident id to do this programmatically.
Note: PRTG sends data with the content-type "application/x-www-form-urlencoded" whereas the API of Statuspage expect it to be "application/json".
This leads to the response code 400 (bad request) and therefore it is necessary to use a custom script instead (stored under "C:\Program Files (x86)\PRTG Network Monitor\Notifications\EXE") with the Execute Program action.
Add comment