Sending Alert Notifications from Alertmanager to Rocket.Chat

  ·   3 min read

When managing and monitoring distributed applications, timely notifications based on alerts are crucial for quick responses to incidents. Alertmanager, a component of the Prometheus monitoring system, is commonly used for handling alerts generated by Prometheus. In this article, we will discuss how to send alert notifications from Alertmanager to Rocket.Chat, a popular open-source team communication tool.

Prerequisites

Before proceeding, ensure you have the following:

  1. A running instance of Prometheus and Alertmanager.
  2. A Rocket.Chat server set up and configured.
  3. An Incoming WebHook URL obtained from Rocket.Chat.

Step 1: Setting Up WebHook in Rocket.Chat

To send notifications to Rocket.Chat, you need to create an Incoming WebHook. This can be done as follows:

  1. Log in to your Rocket.Chat instance as an administrator.
  2. Navigate to Administration > Integrations > Outgoing WebHooks.
  3. Create a new WebHook by clicking on “Add Incoming WebHook”.
  4. Specify the required details such as the name, channel, and the token (which is the URL you will be sending alerts to).
  5. Once created, copy the WebHook URL provided by Rocket.Chat. It typically looks like this: https://your.rocketchat.server/hooks/your-webhook-token.

Step 2: Configuring Alertmanager

Now that we have the WebHook URL, it’s time to configure Alertmanager. Open the alertmanager.yml configuration file located in the Alertmanager directory. You will need to add a new route and a receiver for your Rocket.Chat WebHook.

Here’s a sample configuration:

global:
  resolve_timeout: 5m

route:
  group_by: ['alertname']
  group_wait: 30s
  group_interval: 10m
  repeat_interval: 3h
  receiver: 'rocketchat'

receivers:
- name: 'rocketchat'
  webhook_configs:
  - url: 'https://your.rocketchat.server/hooks/your-webhook-token'
    send_resolved: true

In this configuration:

  • The receiver named rocketchat is defined with a webhook_config, pointing to the WebHook URL you created.
  • You can customize the parameters group_wait, group_interval, and repeat_interval to control how alerts are batched and how frequently they are sent.

Step 3: Testing Alert Notification

To test the alert notification, you can trigger a test alert. For instance, you can create a simple alert rule in Prometheus:

groups:
- name: example_alert
  rules:
  - alert: TestAlert
    expr: vector(1)
    for: 10s
    labels:
      severity: critical
    annotations:
      summary: "Test Alert from Alertmanager"
      description: "This is a test alert to check Rocket.Chat integration."

Load the alert rules file into Prometheus, or place it in your existing alert rule file.

  1. Wait for a few moments; after the alert condition is met, it will trigger an alert.
  2. Check Rocket.Chat for the incoming notifications.

Conclusion

Setting up notifications from Alertmanager to Rocket.Chat allows your team to stay informed about the state of your infrastructure and applications. This integration can enhance your incident response strategy and improve overall reliability.

Make sure you secure your WebHook URL and monitor your alerting metrics to avoid notification spamming.

Further Reading and Resources

By implementing this setup, your team will benefit from a streamlined communications channel, enabling you to react promptly to system performance issues or incidents.