Prometheus - Telegram notification with Alert Manager (2024)

Alertmanager is a standalone component that focuses on handling alerts generated by Prometheus. It acts as a centralized alerting system that receives, deduplicates, groups, and sends out notifications.
In this post we will utilize this module to send alert to Telegram based on the rule that we create on Prometheus.

Setting up Alerting rule on Prometheus

The way we create our alerting tool is by detecting the parameter “up”, where if the returned data is 1 it means the node is up and if it is 0 then the node is down.

Now we create a new alerting rule

1
sudo nano /etc/prometheus/alert_server_down.yml

Paste in these lines of configuration

12345678910
groups:- name: server_down rules: - alert: server_down expr: up == 0 for: 1m labels: severity: page annotations: summary: Server is down

We give it name “server_down” with the expression “up == 0”, which means if there’s a node with the parameter 0, this rule will be triggered.
We also give it the wait time of 1 minute before firing the rule.

Next we add this new rule to our Prometheus configuration file

1
sudo nano /etc/prometheus/prometheus.yml 

Modify the “rule_files” with the yml file that we just created.

12345678910
# Alertmanager configurationalerting: alertmanagers: - static_configs: - targets: - localhost:9093# Load rules once and periodically evaluate them according to the global 'evaluation_interval'.rule_files: - "alert_server_down.yml"

Add the newly created “alert_server_down.yml” file below the rule_files.

After that restart the Prometheus service.

1
sudo systemctl restart prometheus

Now on the alert page, you’ll see the “server_down” rule.

This rule by itself doesn’t do anything, it only shows a visual indicator stating a node is down. If we want to trigger an action, we need Alert Manager.

Setting up Alert Manager

First, download the Alert Manager and extract it.

12
wget https://github.com/prometheus/alertmanager/releases/download/v0.25.0/alertmanager-0.25.0.linux-amd64.tar.gztar xvzf alertmanager-0.25.0.linux-amd64.tar.gz

Next, navigate to the folder and copy the files to its supposed directories

123
cd alertmanager-0.25.0.linux-amd64/sudo cp alertmanager amtool /usr/local/bin/sudo cp alertmanager.yml /etc/alertmanager/

Set the owner

1
sudo chown -R prometheus:prometheus /etc/alertmanager/alertmanager.yml /usr/local/bin/{alertmanager,amtool}

Configure the Alert Manager yaml file

1
sudo nano /etc/alertmanager/alertmanager.yml

Paste in these lines

1234567891011121314
global: resolve_timeout: 5mroute: group_by: ['alertname'] group_wait: 10s group_interval: 10s repeat_interval: 24h receiver: 'telegram'receivers:- name: 'telegram' webhook_configs: - url: "http://localhost:8080/alerts" send_resolved: true

The url is the telegram webhook relay that we will run on a docker later

Run this command to make sure your config file doesn’t have any error

1
amtool check-config /etc/alertmanager/alertmanager.yml

1234567
Checking '/etc/alertmanager/alertmanager.yml' SUCCESSFound: - global config - route - 0 inhibit rules - 1 receivers - 0 templates

Then we create the alertmanager service file

1
sudo nano /etc/systemd/system/alertmanager.service

Paste in these lines

12345678910111213
[Unit]Description=AlertManager Server ServiceWants=network-online.targetAfter=network-online.target[Service]User=prometheusGroup=prometheusType=simpleExecStart=/usr/local/bin/alertmanager --config.file /etc/alertmanager/alertmanager.yml[Install]WantedBy=multi-user.target

Finally start the service

123
sudo systemctl daemon-reloadsudo systemctl start alertmanagersudo systemctl enable alertmanager

Also restart the prometheus service

1
sudo systemctl restart prometheus

Check the status by running this

12
sudo systemctl status alertmanagersudo systemctl status prometheus

123456789
● alertmanager.service - AlertManager Server Service Loaded: loaded (/etc/systemd/system/alertmanager.service; enabled; vendor preset: enabled) Active: active (running) since Tue 2023-07-18 11:01:14 UTC; 11min ago Main PID: 5835 (alertmanager) Tasks: 12 (limit: 9386) Memory: 14.1M CPU: 1.175s CGroup: /system.slice/alertmanager.service └─5835 /usr/local/bin/alertmanager --config.file /etc/alertmanager/alertmanager.yml

You can also access the Web UI on here http://198.18.0.201:9093

This page will not show any rule until the rule is triggered.

Installing Docker

Skip this section if you already have docker installed.

Install docker on ubuntu with this command

12
sudo snap refreshsudo snap install docker 

Pulling the Docker image

After docker is installed, pull this Alert Manager Telegram Relay docker image.

1
sudo docker pull ghcr.io/janw/alertmanager-telegram:edge

Run this command to make sure the image is present on your machine

1
sudo docker images

12
REPOSITORY TAG IMAGE ID CREATED SIZEghcr.io/janw/alertmanager-telegram edge 49047627b4f6 7 weeks ago 159MB

Run this command to spin up the docker container.

123456
sudo docker run -d --rm \ --name alertmanager-telegram \ -e TELEGRAM_CHAT_ID="{chat-id}" \ -e TELEGRAM_TOKEN="{bot-id}" \ -p 8080:8080 \ ghcr.io/janw/alertmanager-telegram:edge

Use your own chat-id and bot-id from the telegram bot that you have created

Lastly, run this command to check if the container is running

1
sudo docker ps

12
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES86be69939b3e ghcr.io/janw/alertmanager-telegram:edge "gunicorn alertmanag…" 32 minutes ago Up 32 minutes 0.0.0.0:8080->8080/tcp, :::8080->8080/tcp alertmanager-telegram

Curl localhost:8080 to make sure the web is running

1
curl localhost:8080

1234
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"><title>404 Not Found</title><h1>Not Found</h1><p>The requested URL was not found on the server. If you entered the URL manually please check your spelling and try again.</p>

It’ll show an 404 error, That’s normal. All we need to check is the web on that port is up.

And everything is done here. Let’s proceed with testing.

Testing the Alert Manager

Try shutting down one of the monitored node, it’ll be visible on the alert page on Prometheus

We can also see it on Alert Manager

And on the telegram side, we should see our bot sending the alert as well.

Prometheus - Telegram notification with Alert Manager (2024)
Top Articles
Walgreens On Nacogdoches And O'connor
Ds Cuts Saugus
Radikale Landküche am Landgut Schönwalde
Cold Air Intake - High-flow, Roto-mold Tube - TOYOTA TACOMA V6-4.0
Using GPT for translation: How to get the best outcomes
Amc Near My Location
13 Easy Ways to Get Level 99 in Every Skill on RuneScape (F2P)
What Are the Best Cal State Schools? | BestColleges
Us 25 Yard Sale Map
Sportsman Warehouse Cda
83600 Block Of 11Th Street East Palmdale Ca
Nioh 2: Divine Gear [Hands-on Experience]
Bowlero (BOWL) Earnings Date and Reports 2024
Https://Store-Kronos.kohls.com/Wfc
7 Fly Traps For Effective Pest Control
2 Corinthians 6 Nlt
Tvtv.us Duluth Mn
1v1.LOL - Play Free Online | Spatial
Sprinkler Lv2
Gayla Glenn Harris County Texas Update
Tinker Repo
Iu Spring Break 2024
Mynahealthcare Login
Is Henry Dicarlo Leaving Ktla
Ncal Kaiser Online Pay
Evil Dead Rise - Everything You Need To Know
Chadrad Swap Shop
Unm Hsc Zoom
Gina's Pizza Port Charlotte Fl
Shaman's Path Puzzle
Frostbite Blaster
Craigslist Car For Sale By Owner
Nobodyhome.tv Reddit
Michael Jordan: A timeline of the NBA legend
How to play Yahoo Fantasy Football | Yahoo Help - SLN24152
Wunderground Orlando
2007 Jaguar XK Low Miles for sale - Palm Desert, CA - craigslist
Best Restaurants West Bend
Disassemble Malm Bed Frame
Memberweb Bw
How I Passed the AZ-900 Microsoft Azure Fundamentals Exam
Poe Self Chill
Squalicum Family Medicine
Xre 00251
Mega Millions Lottery - Winning Numbers & Results
Terrell Buckley Net Worth
Theatervoorstellingen in Nieuwegein, het complete aanbod.
4Chan Zelda Totk
Cryptoquote Solver For Today
Uncle Pete's Wheeling Wv Menu
Overstock Comenity Login
Inloggen bij AH Sam - E-Overheid
Latest Posts
Article information

Author: Virgilio Hermann JD

Last Updated:

Views: 5587

Rating: 4 / 5 (61 voted)

Reviews: 84% of readers found this page helpful

Author information

Name: Virgilio Hermann JD

Birthday: 1997-12-21

Address: 6946 Schoen Cove, Sipesshire, MO 55944

Phone: +3763365785260

Job: Accounting Engineer

Hobby: Web surfing, Rafting, Dowsing, Stand-up comedy, Ghost hunting, Swimming, Amateur radio

Introduction: My name is Virgilio Hermann JD, I am a fine, gifted, beautiful, encouraging, kind, talented, zealous person who loves writing and wants to share my knowledge and understanding with you.