---
title: "Install and Configure Alertmanager with Slack Integration on Kubernetes"
source: "https://support.tools/install-configure-alertmanager-slack-kubernetes/"
published: 2024-09-25
categories: ["Kubernetes","Monitoring","Alerting"]
tags: ["Kubernetes","Alertmanager","Slack","Monitoring","Prometheus"]
---


Setting up alert notifications is crucial for monitoring the health and performance of your Kubernetes cluster. Alertmanager, when integrated with Prometheus, helps handle alert routing, grouping, and silencing. By configuring Alertmanager with Slack integration, you can receive real-time alerts in your Slack channels. In this guide, we’ll walk through how to install and configure Alertmanager with Slack integration on Kubernetes.

### Why Use Alertmanager with Slack?

Alertmanager manages alerts generated by Prometheus and other sources. It allows you to define alert rules, handle notifications, and integrate with various communication platforms, including Slack. By integrating Slack, you can receive timely alerts about your cluster’s health directly in a Slack channel, making it easy to monitor and respond to issues.

### Step 1: Install Prometheus and Alertmanager Using Helm

We’ll begin by installing Prometheus and Alertmanager using Helm, which simplifies the process of deploying these components on Kubernetes.

#### Install Helm

If you haven’t installed Helm yet, do so with the following command:

```bash
curl https://raw.githubusercontent.com/helm/helm/master/scripts/get-helm-3 | bash
```

#### Add Prometheus Helm Chart Repository

Add the Prometheus Helm repository and update it:

```bash
helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
helm repo update
```

#### Install Prometheus and Alertmanager

Now, use Helm to install the Prometheus stack, which includes both Prometheus and Alertmanager:

```bash
helm install prometheus prometheus-community/kube-prometheus-stack --namespace monitoring --create-namespace
```

This deploys Prometheus, Alertmanager, Grafana, and other monitoring components into the `monitoring` namespace.

### Step 2: Create a Slack Incoming Webhook

To receive alerts in Slack, you need to create an incoming webhook:

1. Go to the Slack [Incoming Webhooks](https://api.slack.com/messaging/webhooks) page.
2. Select the Slack workspace and channel where you want to receive alerts.
3. Click **Add New Webhook to Workspace**, select the desired channel, and click **Allow**.
4. Copy the webhook URL provided. You’ll use this in the Alertmanager configuration.

### Step 3: Configure Alertmanager for Slack Integration

To integrate Alertmanager with Slack, we need to edit the Alertmanager configuration and add the Slack webhook URL.

- **Edit the Alertmanager ConfigMap**:

```bash
kubectl edit configmap prometheus-prometheus-alertmanager -n monitoring
```

- **Add Slack Configuration**:

Modify the `alertmanager.yml` section to include your Slack webhook URL:

```yaml
apiVersion: v1
data:
  alertmanager.yml: |
    global:
      resolve_timeout: 5m
    route:
      group_by: ['alertname']
      group_wait: 30s
      group_interval: 5m
      repeat_interval: 3h
      receiver: 'slack-notifications'
    receivers:
    - name: 'slack-notifications'
      slack_configs:
      - api_url: 'https://hooks.slack.com/services/your/slack/webhook'
        channel: '#alerts'
        send_resolved: true
        title: "{{ .CommonLabels.alertname }} - {{ .Status }}"
        text: |
          {{ range .Alerts }}
            *Alert:* {{ .Annotations.summary }}
            *Description:* {{ .Annotations.description }}
            *Severity:* {{ .Labels.severity }}
            *Source:* {{ .GeneratorURL }}
          {{ end }}
```

Replace `'https://hooks.slack.com/services/your/slack/webhook'` with the actual Slack webhook URL you copied earlier.

- **Save and Exit**.

Once the changes are saved, Alertmanager will reload its configuration, and you’ll start receiving alerts in the specified Slack channel.

### Step 4: Create a Test Alert

To verify that the Slack integration is working, create a test alert in Prometheus.

1. **Create an Alerting Rule**:

Create a new file called `test-alert.yaml`:

```yaml
apiVersion: monitoring.coreos.com/v1
kind: PrometheusRule
metadata:
  name: test-alert
  namespace: monitoring
spec:
  groups:
  - name: example
    rules:
    - alert: HighMemoryUsage
      expr: node_memory_MemAvailable_bytes / node_memory_MemTotal_bytes * 100 < 10
      for: 1m
      labels:
        severity: critical
      annotations:
        summary: "Memory usage is too high on {{ $labels.instance }}"
        description: "Available memory is below 10% on instance {{ $labels.instance }}."
```

- **Apply the Alerting Rule**:

```bash
kubectl apply -f test-alert.yaml
```

This alert rule checks if memory usage falls below 10% and triggers an alert if the condition is met for more than 1 minute.

### Step 5: Verify Alerts in Slack

If the test alert is triggered, you should see a message in your Slack channel similar to the following:

```plaintext
*Alert:* HighMemoryUsage - firing
*Description:* Available memory is below 10% on instance my-node
*Severity:* critical
*Source:* http://my-prometheus-url/alerts
```

You can adjust the alerting rules and notifications as needed to suit your monitoring requirements.

### Final Thoughts

Setting up Alertmanager with Slack integration on Kubernetes is a great way to ensure you stay informed about your cluster’s health in real-time. With Slack notifications, you can quickly respond to alerts, making it easier to maintain the performance and stability of your Kubernetes environment.

