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)