<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Alertmanager on LIFELOG</title>
    <link>/tags/alertmanager/</link>
    <description>Recent content in Alertmanager on LIFELOG</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>ja</language>
    <copyright>© 2026 0222-nnn</copyright>
    <lastBuildDate>Sun, 27 Sep 2026 00:00:00 +0900</lastBuildDate><atom:link href="/tags/alertmanager/index.xml" rel="self" type="application/rss+xml" />
    
    <item>
      <title>Alerting入門 第3回｜Prometheus Alerting rulesとAlertmanagerで通知を送る</title>
      <link>/blog/2026_09_27_prometheus_alerting_alertmanager_intro/</link>
      <pubDate>Sun, 27 Sep 2026 00:00:00 +0900</pubDate>
      
      <guid>/blog/2026_09_27_prometheus_alerting_alertmanager_intro/</guid>
      <description>&lt;h2 class=&#34;relative group&#34;&gt;概要 
    &lt;div id=&#34;概要&#34; class=&#34;anchor&#34;&gt;&lt;/div&gt;
    
    &lt;span
        class=&#34;absolute top-0 w-6 transition-opacity opacity-0 ltr:-left-6 rtl:-right-6 not-prose group-hover:opacity-100&#34;&gt;
        &lt;a class=&#34;group-hover:text-primary-300 dark:group-hover:text-neutral-700&#34;
            style=&#34;text-decoration-line: none !important;&#34; href=&#34;#%e6%a6%82%e8%a6%81&#34; aria-label=&#34;アンカー&#34;&gt;#&lt;/a&gt;
    &lt;/span&gt;        
    
&lt;/h2&gt;
&lt;p&gt;&lt;a href=&#34;/blog/2026_09_25_prometheus_grafana_minikube_basics/&#34;&gt;第1回&lt;/a&gt;・&lt;a href=&#34;/blog/2026_09_26_prometheus_promql_cheatsheet/&#34;&gt;第2回&lt;/a&gt;では、人がPromQLを実行して状態を確認するところまでを扱った。条件を満たしたときに自動で通知する仕組みはまだ扱っていない。実際の運用では、条件を式として登録しておき、一定時間満たされ続けたら通知が届く、という流れが必要になる。&lt;/p&gt;
&lt;p&gt;この記事では、Prometheusのalerting ruleとAlertmanagerを使って、scrape失敗を検知してから通知が届くまでの流れを実際に動かして確認する。対象読者は、第1回・第2回でPrometheusへのクエリ実行を経験した人。alerting ruleやAlertmanagerに初めて触れる人を想定している。&lt;/p&gt;
&lt;p&gt;この記事では、複数のレシーバーを使い分けるような複雑なルーティングは扱わない。Slack・PagerDutyなど外部サービスとの連携も扱わない。認証情報が必要になり、この記事の主題である「pending・firing・通知」の流れから外れるためである。&lt;/p&gt;
&lt;p&gt;Grafana Alertingも扱わない。Grafana自体が持つ別の仕組みであり、Prometheus Alertmanagerとは別物である。&lt;/p&gt;

&lt;h2 class=&#34;relative group&#34;&gt;今回使う環境 
    &lt;div id=&#34;今回使う環境&#34; class=&#34;anchor&#34;&gt;&lt;/div&gt;
    
    &lt;span
        class=&#34;absolute top-0 w-6 transition-opacity opacity-0 ltr:-left-6 rtl:-right-6 not-prose group-hover:opacity-100&#34;&gt;
        &lt;a class=&#34;group-hover:text-primary-300 dark:group-hover:text-neutral-700&#34;
            style=&#34;text-decoration-line: none !important;&#34; href=&#34;#%e4%bb%8a%e5%9b%9e%e4%bd%bf%e3%81%86%e7%92%b0%e5%a2%83&#34; aria-label=&#34;アンカー&#34;&gt;#&lt;/a&gt;
    &lt;/span&gt;        
    
&lt;/h2&gt;
&lt;p&gt;第1回・第2回で構築したminikube v1.39.0（Kubernetes v1.37.0）上の&lt;code&gt;monitoring&lt;/code&gt; Namespace（Node Exporter・Prometheus・Grafana）をそのまま使う。Prometheus &lt;code&gt;prom/prometheus:v3.14.0&lt;/code&gt;、Node Exporter &lt;code&gt;prom/node-exporter:v1.12.1&lt;/code&gt;は版を変えていない。&lt;/p&gt;
&lt;p&gt;今回は、本記事の主題であるAlertmanagerを新規に追加する。検証時点で&lt;code&gt;prom/alertmanager:latest&lt;/code&gt;を実行し、&lt;code&gt;docker run --rm prom/alertmanager:latest --version&lt;/code&gt;で&lt;code&gt;v0.34.1&lt;/code&gt;であることを確認した。再現性のため、Manifestでは&lt;code&gt;prom/alertmanager:v0.34.1&lt;/code&gt;に固定して使う。&lt;/p&gt;
&lt;p&gt;もう1つ、&lt;code&gt;webhook-receiver&lt;/code&gt;という小さなPodを追加する。Alertmanagerが実際に通知を送ったことを、Slackなど外部サービスに依存せず確認するためである。&lt;code&gt;python:3.13-alpine&lt;/code&gt;上でPOSTを受け取り、受信時刻（UTC）と本文を1行にまとめて標準出力へ出すだけの、20行に満たないスクリプトを&lt;code&gt;ConfigMap&lt;/code&gt;でマウントしている。Deployment・Service・ConfigMapの3つに留め、認証や永続化は持たない。&lt;/p&gt;
&lt;p&gt;Prometheus側にも変更を加える。alerting ruleを読み込むための&lt;code&gt;rule_files&lt;/code&gt;と、通知先を指定する&lt;code&gt;alerting.alertmanagers&lt;/code&gt;を&lt;code&gt;prometheus-config&lt;/code&gt;の&lt;code&gt;ConfigMap&lt;/code&gt;に追加した。alerting ruleの本体は新しい&lt;code&gt;ConfigMap&lt;/code&gt;（&lt;code&gt;prometheus-rules&lt;/code&gt;）に分け、PrometheusのDeploymentに&lt;code&gt;rules&lt;/code&gt;という&lt;code&gt;Volume&lt;/code&gt;として追加でマウントしている。&lt;/p&gt;
&lt;div class=&#34;mermaid&#34; align=&#34;center&#34;&gt;
  &lt;pre&gt;
flowchart LR
    subgraph monitoring[&#34;monitoring Namespace&#34;]
        NE[&#34;node-exporter&lt;br/&gt;(DaemonSet)&#34;]
        PR[&#34;Prometheus&#34;]
        AM[&#34;Alertmanager&#34;]
        WH[&#34;webhook-receiver&#34;]
        NE -- &#34;scrape :9100&#34; --&gt; PR
        PR -- &#34;firing alert&#34; --&gt; AM
        AM -- &#34;webhook POST&#34; --&gt; WH
    end
&lt;/pre&gt;
&lt;/div&gt;

&lt;p&gt;追加するマニフェストは、記事ディレクトリの&lt;code&gt;sample/&lt;/code&gt;にある。記事ディレクトリを作業ディレクトリとして、次の順に適用する。&lt;/p&gt;</description>
      
    </item>
    
  </channel>
</rss>
