
PrometheusのAlertmanagerをRocky Linux 9にインストールします。今回は、Alertmanagerは、Prometheusと同じサーバにインストールします。
記事の目次
PrometheusのAlertmanagerをダウンロードする!
Prometheusをインストールしたサーバ上で、Alertmanager用のディレクトリを作成します。
$ mkdir -p prometheus/alertmanager $ cd prometheus/alertmanager
Prometheusのホームページでダウンロードするバージョンを確認し、GitHubからAlertmanagerをダウンロードします。
$ wget https://github.com/prometheus/alertmanager/releases/download/v0.24.0/alertmanager-0.24.0.linux-amd64.tar.gz $ $ ls -l total 25276 -rw-r--r-- 1 usradmin usradmin 25880024 Mar 25 2022 alertmanager-0.24.0.linux-amd64.tar.gz
Alertmanagerを展開する!
Alertmanagerを展開します。
$ tar -zxvf alertmanager-0.24.0.linux-amd64.tar.gz alertmanager-0.24.0.linux-amd64/ alertmanager-0.24.0.linux-amd64/alertmanager.yml alertmanager-0.24.0.linux-amd64/LICENSE alertmanager-0.24.0.linux-amd64/NOTICE alertmanager-0.24.0.linux-amd64/alertmanager alertmanager-0.24.0.linux-amd64/amtool
Alertmanagerでメール通知の設定を行う!
Alertmangerでメール通知を行う設定を行います。通知先は、以下の記事で作成したMailHogの環境になります。
$ cat alertmanager.yml
route:
group_by: ['alertname']
group_wait: 30s
group_interval: 5m
repeat_interval: 1h
receiver: 'mail'
receivers:
- name: 'mail'
email_configs:
- to: 'usradmin@lab4ict.local'
from: 'alertmgr@lab4ict.local'
smarthost: 'localhost:1025'
require_tls: false
Alertmanagerを起動する!
Alertmanagerを展開したディレクトリに移動し、Alertmanagerを起動します。
$ cd alertmanager-0.24.0.linux-amd64 $ ./alertmanager ... ts=2022-12-21T15:19:36.335Z caller=main.go:535 level=info msg=Listening address=:9093 ...
Alertmanagerが動作していることを確認する!
Firewalldの接続許可設定を行います。
$ sudo firewall-cmd --add-port=9093/tcp --zone=public --permanent $ sudo firewall-cmd --reload $ sudo firewall-cmd --list-all --zone=public | grep tcp ports: 9093/tcp
Alertmanagerを起動したサーバが「vmspmt01」の場合、以下のURLにアクセスしてAlertmanagerの画面にアクセスします。
$ curl http://vmspmt01:9093
Alertのルールの定義ファイルを作成する!
アラートを発生させる条件を停止したファイルをPrometheusサーバに作成します。
$ cat alert_rules.yml
grouops:
- name: target_status
rules:
- alert: target_down
expr: up == 0
for: 10s
labels:
severity: error
annotations:
summary: connecting target failed.
Alertmanagerとアラートの定義をPrometheusに登録する!
Alertmanagerとアラートの定義をPrometheusに登録します。alertingのセクションにAlertmanagerを登録し、rule_filesのセクションにアラートの定義ファイルを登録します。
$ cat prometheus.yml
# my global config
global:
scrape_interval: 15s # Set the scrape interval to every 15 seconds. Default is every 1 minute.
evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute.
# scrape_timeout is set to the global default (10s).
# Alertmanager configuration
alerting:
alertmanagers:
- static_configs:
- targets:
- localhost:9093
# Load rules once and periodically evaluate them according to the global 'evaluation_interval'.
rule_files:
- "alert_rules.yml"
# A scrape configuration containing exactly one endpoint to scrape:
# Here it's Prometheus itself.
scrape_configs:
# The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
- job_name: "prometheus"
# metrics_path defaults to '/metrics'
# scheme defaults to 'http'.
static_configs:
- targets: ["localhost:9090"]
- job_name: "node_exporter"
static_configs:
- targets: ["vmsans01:9100"]
Alertmanagerをsystemdで自動起動する!
systemdのUnitの定義ファイルを作成します。
cat alertmanager.service
[Unit]
Description=Alertmanager
Documentation=https://github.com/prometheus/alertmanager
After=network-online.target
[Service]
Type=simple
WorkingDirectory=/home/usradmin/prometheus/alertmanager/alertmanager-0.24.0.linux-amd64
ExecStart=/home/usradmin/prometheus/alertmanager/alertmanager-0.24.0.linux-amd64/alertmanager --config.file=/home/usradmin/prometheus/alertmanager/alertmanager-0.24.0.linux-amd64/alertmanager.yml
ExecStop=/bin/kill -TERM ${MAINPID}
ExecReload=/bin/kill -HUP ${MAINPID}
Restart=always
User=usradmin
[Install]
WantedBy=multi-user.target
Unitを登録し、起動します。
$ sudo systemctl daemon-reload
$ sudo systemctl enable alertmanager.service
Created symlink /etc/systemd/system/multi-user.target.wants/alertmanager.service → /etc/systemd/system/alertmanager.service.
$ sudo systemctl start alertmanager.service
$ udo systemctl status alertmanager.service
● alertmanager.service - Alertmanager
Loaded: loaded (/etc/systemd/system/alertmanager.service; enabled; vendor preset: disabled)
Active: active (running) since Fri 2022-12-23 07:30:19 JST; 6s ago
Alert通知の画面を確認する!
Alert通知の画面を確認します。
Ruleの設定を確認する!
Targetの状態(Targetのダウン)を確認する!
PrometheusがTargetのダウンを通知したことを確認する!
AlertmanagerがTargetのダウンをメールで通知したことを確認する!
Alert通知のメールを確認する!
おわりに
Alertmanagerのインストールと通知機能の確認を行いました。
参考情報
関連記事
Prometheus書籍(Amazon)







