<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>监控与告警</title>
    <link>https://llinux.cn/%E5%8F%AF%E8%A7%82%E6%B5%8B%E6%80%A7/%E7%9B%91%E6%8E%A7%E4%B8%8E%E5%91%8A%E8%AD%A6/</link>
    <description>阿征的运维笔记</description>
    <language>zh</language>
    <atom:link href="https://llinux.cn/%E5%8F%AF%E8%A7%82%E6%B5%8B%E6%80%A7/%E7%9B%91%E6%8E%A7%E4%B8%8E%E5%91%8A%E8%AD%A6/index.xml" rel="self" type="application/rss+xml" />
    
    <item>
      <title>Alertmanager</title>
      <link>https://llinux.cn/%E5%8F%AF%E8%A7%82%E6%B5%8B%E6%80%A7/%E7%9B%91%E6%8E%A7%E4%B8%8E%E5%91%8A%E8%AD%A6/alertmanager/</link>
      
      <guid>https://llinux.cn/%E5%8F%AF%E8%A7%82%E6%B5%8B%E6%80%A7/%E7%9B%91%E6%8E%A7%E4%B8%8E%E5%91%8A%E8%AD%A6/alertmanager/</guid>
      <description>&lt;h2 id=&#34;告警数据流&#34;&gt;告警数据流&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#%e5%91%8a%e8%ad%a6%e6%95%b0%e6%8d%ae%e6%b5%81&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Prometheus&lt;/strong&gt; ：采集数据 -&amp;gt; &lt;strong&gt;计算规则 (Rules)&lt;/strong&gt; -&amp;gt; 发现异常 -&amp;gt; &lt;strong&gt;产生告警&lt;/strong&gt; -&amp;gt; 发送给 Alertmanager。&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Alertmanager&lt;/strong&gt; ：接收告警 -&amp;gt; 分组/去重 -&amp;gt; &lt;strong&gt;发送通知&lt;/strong&gt; (发邮件、钉钉等)。&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h1 id=&#34;alertmanager-概述&#34;&gt;Alertmanager 概述&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#alertmanager-%e6%a6%82%e8%bf%b0&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h1&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Alertmanager 除了可以接受 Prometheus 的报警信息外，也支持接收来自其它工具的告警；&lt;/li&gt;&#xA;&lt;li&gt;Alertmanager 也是应用程序，它自身同样应该纳入prometheus的监控目标；&lt;/li&gt;&#xA;&lt;li&gt;Alertmanager 同样提供了可视化的 web UI，以及使用 /metrics 路径暴露了其内建的指标&lt;/li&gt;&#xA;&lt;li&gt;TCP/9093，Alertmanager-server&lt;/li&gt;&#xA;&lt;li&gt;TCP/9094，Alertmanager-cluster&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://github.com/prometheus/alertmanager&#34;&gt;https://github.com/prometheus/alertmanager&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h1 id=&#34;alertmanager-单机部署&#34;&gt;Alertmanager 单机部署&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#alertmanager-%e5%8d%95%e6%9c%ba%e9%83%a8%e7%bd%b2&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h1&gt;&#xA;&lt;h2 id=&#34;helm&#34;&gt;helm&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#helm&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&#xA;&#xA;&#xA;&#xA;&lt;div class=&#34;highlight code-sample&#34;&gt;&#xA;  &#xA;  &lt;div class=&#34;includecode&#34; &gt;&#xA;    &lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;kubectl create ns monitoring&#xD;&#xA;helm repo add prometheus-community https://prometheus-community.github.io/helm-charts&#xD;&#xA;helm pull prometheus-community/alertmanager --version 1.7.0&#xD;&#xA;tar xf alertmanager-1.7.0.tgz&#xD;&#xA;helm install alertmanager ./alertmanager-1.7.0.tgz  -n monitoring -f alertmanager/values.yaml&lt;/code&gt;&lt;/pre&gt;&#xA;  &lt;/div&gt;&#xA;&lt;/div&gt;&lt;h2 id=&#34;二进制&#34;&gt;二进制&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#%e4%ba%8c%e8%bf%9b%e5%88%b6&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;直接将二进制文件解压到自定义的目录即可&lt;/li&gt;&#xA;&lt;li&gt;可以选择使用 service 文件来对其进行启动&lt;/li&gt;&#xA;&lt;li&gt;启动后验证 9093端口是否开启，同样可以访问 metrics 来查看是否有指标收集上来&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;service&#34;&gt;service&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#service&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;/lib/systemd/system/prometheus-alertmanager.service&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&#xA;&#xA;&lt;div class=&#34;highlight code-sample&#34;&gt;&#xA;  &#xA;  &lt;div class=&#34;includecode&#34; &gt;&#xA;    &lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;o&#34;&gt;[&lt;/span&gt;Unit&lt;span class=&#34;o&#34;&gt;]&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;Description&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;Prometheus alertmanager&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;Documentation&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;https://github.com/prometheus/alertmanager&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;o&#34;&gt;[&lt;/span&gt;Service&lt;span class=&#34;o&#34;&gt;]&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;Restart&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;always&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;User&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;root&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;ExecStart&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;/monitor/alertmanager/alertmanager --config.file&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;/monitor/alertmanager/alertmanager.yml&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;ExecReload&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;/bin/kill -HUP &lt;span class=&#34;nv&#34;&gt;$MAINPID&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;TimeoutStopSec&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;20s&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;SendSIGKILL&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;no&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;o&#34;&gt;[&lt;/span&gt;Install&lt;span class=&#34;o&#34;&gt;]&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;WantedBy&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;multi-user.target&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&#xA;  &lt;/div&gt;&#xA;&lt;/div&gt;&lt;h1 id=&#34;alertmanager-集群部署&#34;&gt;Alertmanager 集群部署&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#alertmanager-%e9%9b%86%e7%be%a4%e9%83%a8%e7%bd%b2&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h1&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://github.com/prometheus/alertmanager#high-availability&#34;&gt;https://github.com/prometheus/alertmanager#high-availability&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;gossip协议&#34;&gt;Gossip协议&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#gossip%e5%8d%8f%e8%ae%ae&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;多Alertmanager实例的场景中，告警信息可能会被重复发送；&lt;/li&gt;&#xA;&lt;li&gt;Gossip机制可为多个Alertmanager之间提供了信息传递的机制，以确保在多个Alertmanager分别接收到相同告警信息的情况下，只会有一个告警通知被发送给Receiver；&lt;/li&gt;&#xA;&lt;li&gt;Gossip是分布式系统中被广泛使用的协议，用于实现分布式节点之间的信息交换和状态同步；&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;部署-alertmanager-集群&#34;&gt;部署 Alertmanager 集群&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#%e9%83%a8%e7%bd%b2-alertmanager-%e9%9b%86%e7%be%a4&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;假设将三个alertmanager节点组织成为集群：&#xA;&lt;ul&gt;&#xA;&lt;li&gt;node01：10.0.0.8&lt;/li&gt;&#xA;&lt;li&gt;node02：10.0.0.18&lt;/li&gt;&#xA;&lt;li&gt;node03：10.0.0.28&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;各节点需要的启动命令如下：（注意：下面示例中只是说明配置集群所需的必选参数，每个alertmanager节点还要使用相同的&lt;code&gt;alertmanager.yml&lt;/code&gt; 配置文件，或者以共享存储的方式共享配置文件）&#xA;&lt;ul&gt;&#xA;&lt;li&gt;node01: alertmanager&lt;/li&gt;&#xA;&lt;li&gt;node02: alertmanager &amp;ndash;cluster.peer=10.0.0.8:9094&lt;/li&gt;&#xA;&lt;li&gt;node03: alertmanager &amp;ndash;cluster.peer=10.0.0.8:9094&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;验证：&#xA;&lt;ul&gt;&#xA;&lt;li&gt;http://10.0.0.8:9093/#/status&lt;/li&gt;&#xA;&lt;li&gt;观察 Cluster Status&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;prometheus-指向-alertmanager-集群&#34;&gt;Prometheus 指向 Alertmanager 集群&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#prometheus-%e6%8c%87%e5%90%91-alertmanager-%e9%9b%86%e7%be%a4&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;配置完 Alertmanagers 集群后，Prometheus 不要以负载均衡的方式访问 Alertmanagers，而是将 Prometheus 配置文件中指向所有 Alertmanagers 的列表&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&#xA;&#xA;&lt;div class=&#34;highlight code-sample&#34;&gt;&#xA;  &#xA;  &lt;div class=&#34;includecode&#34; &gt;&#xA;    &lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nt&#34;&gt;alerting&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;  &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;alertmanagers&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;  &lt;/span&gt;- &lt;span class=&#34;nt&#34;&gt;static_configs&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;- &lt;span class=&#34;nt&#34;&gt;targets&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;      &lt;/span&gt;- &lt;span class=&#34;l&#34;&gt;alertmanager1:9093&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;      &lt;/span&gt;- &lt;span class=&#34;l&#34;&gt;alertmanager2:9093&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;      &lt;/span&gt;- &lt;span class=&#34;l&#34;&gt;alertmanager3:9093&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&#xA;  &lt;/div&gt;&#xA;&lt;/div&gt;&lt;h1 id=&#34;alertmanager-配置文件&#34;&gt;Alertmanager 配置文件&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#alertmanager-%e9%85%8d%e7%bd%ae%e6%96%87%e4%bb%b6&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h1&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://prometheus.io/docs/alerting/latest/configuration/&#34;&gt;https://prometheus.io/docs/alerting/latest/configuration/&lt;/a&gt;&lt;/p&gt;</description>
    </item>
    
  </channel>
</rss>
