亲爱的读者们👋
欢迎加入【30天精通Prometheus】专栏!📚 在这里,我们将探索Prometheus的强大功能,并将其应用于实际监控中。这个专栏都将为你提供宝贵的实战经验。🚀
Prometheus是云原生和DevOps的核心监控工具,我们将从基础概念开始,逐步涵盖配置、查询、告警和可视化。💪
在接下来的30天里,我们将解锁Prometheus的实战技巧,通过案例和分享,助你深入理解其工作原理。📆
目标:30天后,你将熟练掌握Prometheus,为未来的项目挑战做好准备!💯
这是一段精彩旅程,期待你的加入!🎉
- 【30天精通Prometheus:一站式监控实战指南】第1天:深入探索Prometheus:30天一站式监控实战指南的开篇之旅
- 【30天精通Prometheus:一站式监控实战指南】第2天:Prometheus从入门到实战:安装、配置详解与生产环境搭建指南
- 【30天精通Prometheus:一站式监控实战指南】第3天:Alertmanager从入门到实战:安装、配置详解与生产环境搭建指南
- 【30天精通Prometheus:一站式监控实战指南】第4天:node_exporter从入门到实战:安装、配置详解与生产环境搭建指南,超详细
- 【30天精通Prometheus:一站式监控实战指南】第5天:kafka_exporter从入门到实战:安装、配置详解与生产环境搭建指南,超详细
- 【30天精通Prometheus:一站式监控实战指南】第6天:mysqld_exporter从入门到实战:安装、配置详解与生产环境搭建指南,超详细
- 【30天精通Prometheus:一站式监控实战指南】第7天:postgres_exporter从入门到实战:安装、配置详解与生产环境搭建指南,超详细
- 【30天精通Prometheus:一站式监控实战指南】第8天:redis_exporter从入门到实战:安装、配置详解与生产环境搭建指南,超详细
- 【30天精通Prometheus:一站式监控实战指南】第9天:elasticsearch_exporter从入门到实战:安装、配置详解与生产环境搭建指南,超详细
- 【30天精通Prometheus:一站式监控实战指南】第10天:blackbox_exporter从入门到实战:安装、配置详解与生产环境搭建指南,超详细
- 【30天精通Prometheus:一站式监控实战指南】第11天:consul_exporter从入门到实战:安装、配置详解与生产环境搭建指南,超详细
- 【30天精通Prometheus:一站式监控实战指南】第12天:windows_exporter从入门到实战:安装、配置详解与生产环境搭建指南,超详细
- 【30天精通Prometheus:一站式监控实战指南】第13天:graphite_exporter从入门到实战:安装、配置详解与生产环境搭建指南,超详细
- 【30天精通Prometheus:一站式监控实战指南】第14天:jmx_exporter从入门到实战:安装、配置详解与生产环境搭建指南,超详细
- 【30天精通Prometheus:一站式监控实战指南】第15天:ipmi_exporter从入门到实战:安装、配置详解与生产环境搭建指南,超详细
- 【30天精通Prometheus:一站式监控实战指南】第16天:snmp_exporter从入门到实战:安装、配置详解与生产环境搭建指南,超详细
- 【30天精通Prometheus:一站式监控实战指南】第17天:nginx-prometheus-exporter从入门到实战:安装、配置详解与生产环境搭建指南,超详细
- 【30天精通Prometheus:一站式监控实战指南】第18天:apache_exporter从入门到实战:安装、配置详解与生产环境搭建指南,超详细
- 【30天精通Prometheus:一站式监控实战指南】第19天:haproxy_exporter从入门到实战:安装、配置详解与生产环境搭建指南,超详细
- 【30天精通Prometheus:一站式监控实战指南】第20天:dcgm-exporter从入门到实战:安装、配置详解与生产环境搭建指南,超详细
- 【30天精通Prometheus:一站式监控实战指南】第21天:深入解析PromQL(Prometheus Query Language)的高级用法,解锁监控数据的无限可能,释放监控数据潜能
- 【30天精通Prometheus:一站式监控实战指南】第22天:如何将Prometheus与Grafana集成,通过可视化的方式展示监控数据,提高监控效率
- 【30天精通Prometheus:一站式监控实战指南】第23天:如何搭建高可用的Prometheus集群,以应对大规模监控场景和单点故障问题,确保监控服务的稳定性
- 【30天精通Prometheus:一站式监控实战指南】第24天:Prometheus数据存储与性能调优攻略,通过优化存储和查询性能来提升监控系统的整体效率
- 【30天精通Prometheus:一站式监控实战指南】第25天:微服务架构下的Prometheus实战,Kubernetes与Prometheus集成:集群监控实战
- 【30天精通Prometheus:一站式监控实战指南】第26天:构建健壮的高可用Prometheus集群,以应对大规模监控挑战与单点故障风险
- 【30天精通Prometheus:一站式监控实战指南】第27天:Prometheus与第三方工具集成:提升监控能力
- 【30天精通Prometheus:一站式监控实战指南】第28天:故障排查与告警分析实战案例分享
- 【30天精通Prometheus:一站式监控实战指南】第29天:Prometheus监控策略与最佳实践指南
- 【30天精通Prometheus:一站式监控实战指南】第30天:Prometheus监控技术回顾与未来展望
一、Alertmanager概述📘
Alertmanager在Prometheus监控体系中占据着至关重要的地位,它是Prometheus生态中不可或缺的组成部分。Prometheus本身负责数据的收集与存储,而Alertmanager则专注于告警通知的管理与发送,确保当系统或应用出现异常时,相关人员能够迅速获得通知并采取措施。
定义Alertmanager,它是一款独立的告警通知系统,用于接收Prometheus发送的告警信息,并对其进行进一步的处理和管理。Alertmanager支持丰富的告警通知渠道,如电子邮件、Slack、即时通讯平台等,同时提供了告警信息的分组、去重、抑制等高级功能,帮助用户更加高效地处理告警。
Alertmanager的核心功能包括
- 告警接收:Alertmanager能够接收来自Prometheus的告警信息,并根据配置对告警进行进一步处理。
- 告警分组与去重:对于大量重复的告警信息,Alertmanager可以进行智能分组和去重,避免对接收者造成不必要的干扰。
- 告警路由:Alertmanager支持灵活的告警路由规则,可以根据不同的告警条件和接收者的需求,将告警信息发送给相应的接收者。
- 告警通知:Alertmanager支持多种告警通知方式,如电子邮件、Slack、Webhook等,用户可以根据实际需求进行配置。
- 告警抑制与静默:在某些情况下,某些告警可能是由其他已知问题引起的,此时可以通过告警抑制功能避免重复发送;同时,Alertmanager还支持告警静默功能,允许用户临时关闭某些告警通知。
Alertmanager的特点主要体现在以下几个方面
- 灵活性:Alertmanager的配置非常灵活,用户可以根据实际需求自定义告警规则、通知方式等。
- 可扩展性:Alertmanager支持多种扩展方式,如自定义告警处理器、通知插件等,可以满足不同场景下的需求。
- 可靠性:Alertmanager采用分布式架构,具有高可用性和容错能力,确保告警通知的可靠性。
- 丰富的生态:Alertmanager作为Prometheus生态中的一部分,与Prometheus、Grafana等其他工具无缝集成,共同构建了一个完整的监控解决方案。
二、安装Alertmanager💾
注意事项和常见问题
1.权限问题:确保你有足够的权限来执行安装和启动Alertmanager的命令。如果你使用的是Linux系统,可能需要使用sudo命令来获取管理员权限。
2.防火墙设置:Alertmanager默认监听在9093端口(或配置的其他端口)。如果你的服务器启用了防火墙,请确保该端口是开放的,以便外部客户端能够访问Alertmanager的API。
3.配置文件:Alertmanager的配置文件(alertmanager.yml)对于其运行至关重要。在安装过程中,请确保配置文件的路径和设置是正确的。如果你修改了配置文件,请务必重新加载或重启Alertmanager以使更改生效。
4.日志和错误消息:如果Alertmanager无法启动或运行不正常,请检查终端或日志文件中的错误消息。这些消息通常会提供关于问题的详细信息,并帮助你找到解决方案。
5.无法下载资料:如果无法下载资料可跳转到最后一章”相关资料下载地址“,进行离线下载
2.1 访问Alertmanager官方网站 🌐
- 打开浏览器,访问Alertmanager的官方下载页面,通常位于Prometheus官方网站的子目录下:https://prometheus.io/download/#alertmanager
2.2 选择适合的版本🔍
- 在下载页面,你将看到不同操作系统的Alertmanager二进制包。根据你的操作系统选择适合的版本。例如,如果你使用的是Linux 64位系统,就选择alertmanager-x.x.x.linux-amd64.tar.gz(其中x.x.x是版本号)。
2.3 下载Alertmanager ⬇️
- 点击所选版本的下载链接,将Alertmanager的二进制包下载到你的本地计算机。
2.4 解压安装包📂
- 将下载的Alertmanager压缩包解压到你想要安装的目录。你可以使用命令行工具(如tar)来完成这个步骤。解压后,你将看到一个名为alertmanager-x.x.x.linux-amd64的目录,其中包含Alertmanager的二进制文件和其他相关文件。
tar -xzf alertmanager-x.x.x.linux-amd64.tar.gz
2.5 运行Alertmanager🚀
- 进入解压后的目录,并运行Alertmanager服务器。在Linux下,你可以使用如下命令。这样就使用默认的配置文件alertmanager.yml启动了Alertmanager服务器。如果一切正常,你应该能在终端看到Alertmanager的启动日志。
cd alertmanager-x.x.x.linux-amd64
./alertmanager --config.file=alertmanager.yml
如下执行结果示例(部分日志输出):
......
level=info ts=2024-05-16T12:34:56.789Z caller=main.go:235 msg="Starting Alertmanager" version="(version=x.x.x, branch=HEAD, revision=xxxxxxxxxxxx)"
level=info ts=2024-05-16T12:34:56.789Z caller=main.go:236 build_context="(go=go1.xx.x, user=root@xxxxxxxx, date=yyyy-mm-ddThh:mm:ssZ)"
level=info ts=2024-05-16T12:34:56.789Z caller=cluster.go:171 component=cluster msg="setting advertise address explicitly" addr=xxx.xxx.xxx.xxx port=9094
level=info ts=2024-05-16T12:34:56.789Z caller=cluster.go:684 component=cluster msg="Waiting for gossip to settle..." interval=2s
level=info ts=2024-05-16T12:34:58.790Z caller=cluster.go:709 component=cluster msg="gossip not settled but continuing anyway" polls=1 elapsed=2.000829918s
level=info ts=2024-05-16T12:34:58.791Z caller=main.go:683 msg="Loading configuration file" file=alertmanager.yml
level=info ts=2024-05-16T12:34:58.796Z caller=main.go:711 msg="Completed loading of configuration file" file=alertmanager.yml
level=info ts=2024-05-16T12:34:58.796Z caller=main.go:534 msg="Listening on address" address=0.0.0.0:9093
三、Alertmanager配置详解📖
3.1 alertmanager.yml
关键配置部分
- global:全局配置,如SMTP服务器设置,用于发送电子邮件通知。
- route:告警路由规则,定义了如何根据告警的标签将告警路由到不同的接收者。
- receiver:默认接收者,如果告警不匹配任何子路由,将发送给此接收者。
- group_by:根据哪些标签对告警进行分组。
- group_wait:在发送新告警到同一个分组之前等待的时间。
- group_interval:发送新告警到同一个分组的间隔时间。
- repeat_interval:重复发送相同告警的间隔时间。
- routes:子路由规则,可以定义多个,根据告警的标签进行匹配。
- receivers:接收者列表,定义了各种通知渠道,如电子邮件、Slack等。
配置示例
假设我们想要设置告警通知、分组和抑制规则,以下是一个简化的配置示例
route:
# 告警路由规则
receiver: 'default-receiver'
group_by: ['alertname', 'cluster'] # 分组标签
group_wait: 30s # 等待多久再发送新告警到同一个分组
group_interval: 5m # 发送新告警到同一个分组的间隔时间
repeat_interval: 3h # 重复发送告警的间隔时间
# 子路由规则
routes:
- match:
severity: critical
receiver: 'team-x-slack'
group_wait: 1s # 对于critical告警,我们更快地响应
repeat_interval: 10m # 但不那么频繁地重复
- match:
service: database
receiver: 'db-team-mails'
continue: true # 继续匹配子路由
routes:
- match:
severity: critical
receiver: 'db-team-slack'
receivers:
- name: 'team-x-mails'
email_configs:
- to: 'team-x@example.com'
- name: 'team-x-slack'
slack_configs:
- channel: '#team-x-alerts'
- name: 'db-team-mails'
email_configs:
- to: 'db-team@example.com'
- name: 'db-team-slack'
slack_configs:
- channel: '#db-alerts'
inhibit_rules:
- source_match:
severity: 'critical'
target_match:
severity: 'warning'
equal: ['alertname', 'cluster', 'service']
# 当critical告警触发时,抑制与它有相同alertname、cluster和service的warning告警
3.2 alertmanager.service
基本配置
- –config.file=“alertmanager.yml”
指定Alertmanager的配置文件路径。这是Alertmanager运行所必需的,因为它定义了如何路由和发送告警通知。
数据存储
- –storage.path=“data/”
定义用于存储告警数据和状态信息的基本路径。 - –data.retention=120h
指定保留数据的时间。超过这个时间的数据将被清理。 - –data.maintenance-interval=15m
定义进行垃圾收集和将静默状态和通知日志快照到磁盘的间隔。
告警管理
- –alerts.gc-interval=30m
告警垃圾收集的间隔。在这个间隔后,过期的告警将被清理。
Web接口和API
- –web.listen-address=:9093
定义Alertmanager的Web界面和API的监听地址和端口。默认监听在:9093。 - –web.config.file=“”
允许你指定一个配置文件,用于启用TLS或身份验证。 - –web.external-url=WEB.EXTERNAL-URL
如果你通过反向代理服务Alertmanager,这个URL用于生成指向Alertmanager自身的相对和绝对链接。 - –web.route-prefix=WEB.ROUTE-PREFIX
Web端点的内部路由前缀。默认为–web.external-url的路径部分。 - –web.get-concurrency=0
同时处理的GET请求的最大数量。如果设置为0或负数,则限制将是GOMAXPROCS或8(以较大者为准)。 - –web.timeout=0
HTTP请求的超时时间。如果设置为0或负数,则不设置超时。
集群配置
- –cluster.listen-address=“0.0.0.0:9094”
Alertmanager集群的监听地址。设置为空字符串将禁用高可用性模式。 - –cluster.advertise-address=CLUSTER.ADVERTISE-ADDRESS
在集群中通告的明确地址。 - –cluster.peer=CLUSTER.PEER
初始集群对端(可以重复)。 - –cluster.peer-timeout=15s
等待对端发送通知的时间。 - –cluster.gossip-interval=200ms
发送消息的间隔。降低此值(更频繁)将加快集群中的消息传播速度,但会增加带宽使用。 - –cluster.pushpull-interval=1m0s
状态同步的间隔。降低此值(更频繁)将增加大型集群中的收敛速度,但会增加带宽使用。 - –cluster.tcp-timeout=10s
与远程节点建立流连接、读取和写入操作的超时时间。 - –cluster.probe-timeout=500ms
等待探测节点的确认之前,假定其不健康的超时时间。应设置为网络上的RTT(往返时间)的99百分位数。 - –cluster.probe-interval=1s
随机节点探测的间隔。降低此值(更频繁)将更快地检测失败的节点,但会增加带宽使用。 - –cluster.settle-timeout=1m0s
在评估通知之前,等待集群连接稳定的最大时间。 - –cluster.reconnect-interval=10s
尝试重新连接到丢失的对端的间隔。 - –cluster.reconnect-timeout=6h0m0s
尝试重新连接到丢失的对端的时间长度。 - –cluster.tls-config=“”
指定一个YAML配置文件,用于在八卦协议中启用双向TLS。 - –cluster.allow-insecure-public-advertise-address-discovery
允许Alertmanager发现和监听公共IP地址。 - –cluster.label=“”
集群标签是一个可选的字符串,包含在每个数据包和流中。它唯一标识集群,并防止在发送消息时出现跨通信问题。
功能和日志
- –enable-feature=“”
启用实验性功能。可以重复此标志以启用多个功能。 - –log.level=info
仅记录给定严重性或更高严重性的日志消息。 - –log.format=logfmt
日志消息的输出格式。可以是logfmt或json。
四、实战演练:生产环境搭建指南🔨
4.1 创建普通用户管理alertmanager👤
useradd deploy
4.2 解压alertmanager.tar.gz📦
注意:
我的是x86,所以使用alertmanager-0.27.0.linux-amd64.tar.gz,您可以使用uname -a命令查看系统架构
tar xvf alertmanager-0.27.0.linux-amd64.tar.gz -C /home/deploy/
4.3 将Alertmanager集成到Prometheus配置中✂️
将Alertmanager集成到Prometheus配置中,确保告警能够正确转发。编辑Prometheus的配置文件(通常是prometheus.yml),在alerting部分添加Alertmanager的配置。告诉Prometheus将告警发送到运行在本地9093端口的Alertmanager实例。
alerting:
alertmanagers:
- static_configs:
- targets: ['localhost:9093'] # Alertmanager的地址和端口
4.4 更改alertmanager软件包名称✂️
mv /home/deploy/alertmanager-0.27.0.linux-amd64 /home/deploy/alertmanager
# 然后,可能需要更改Alertmanager相关文件和目录的所有权,以确保新创建的用户可以访问它们
sudo chown -R alertmanager:alertmanager /home/deploy/alertmanager
4.5 配置告警通知渠道✂️
编辑Alertmanager的配置文件(alertmanager.yml),在receivers部分配置你想要的通知渠道。例如,对于电子邮件通知,你可以这样配置:
receivers:
- name: 'email-receiver'
email_configs:
- to: 'your-email@example.com'
smtp_smarthost: 'smtp.example.com:587'
smtp_from: 'alertmanager@example.com'
smtp_auth_username: 'your-username'
smtp_auth_password: 'your-password'
smtp_require_tls: true
- 对于Slack或Webhook,你需要查找并遵循Alertmanager官方文档中的相应指南。
4.6 编辑alertmanager.service文件📝
注意:
alertmanager相关参数您可参考上述参数详解,根据实际环境需求自行更改
cat > /etc/systemd/system/alertmanager.service <<EOF
[Unit]
Description=alertmanager
Documentation=https://prometheus.io/docs/alerting/alertmanager/
After=network.target
[Service]
Type=simple
User=deploy
Group=deploy
ExecStart=/home/deploy/alertmanager/alertmanager \
--config.file=/home/deploy/alertmanager/alertmanager.yml \
--web.listen-address=:9093 \
--data.retention=72h \
--storage.path=/home/deploy/alertmanager/var/lib/alertmanager \
--log.level=info \
--log.format=logfmt
ExecReload=/bin/kill -HUP
Restart=on-failure
[Install]
WantedBy=multi-user.target
EOF
4.7 启动alertmanager.service🔌
sudo systemctl daemon-reload
sudo systemctl enable --now alertmanager.service
4.8 查看服务是否正常启动🔍
# 查看service服务是否启动
sudo systemctl status alertmanager.service
# 查看端口是否存在
sudo ss -ntulp | grep 9093
五、基于云原生的部署方案 🚀
5.1 使用Docker部署Alertmanager 🐳
5.1.1 获取Alertmanager Docker镜像 📸
- 从docker-hub下载镜像
docker pull bitnami/alertmanager:0.28.1
docker tag bitnami/alertmanager:0.28.1 alertmanager:0.28.1
- 从阿里云下载镜像(如果访问不到docker-hub)
// 如果访问不到docker-hub的可以访问如下地址
docker pull registry.cn-beijing.aliyuncs.com/insights-ops/alertmanager:0.28.1
docker tag registry.cn-beijing.aliyuncs.com/insights-ops/alertmanager:0.28.1 alertmanager:0.28.1
- 从百度网盘下载镜像
docker load -i alertmanager-0.28.1.tar
docker tag bitnami/alertmanager:0.28.1 alertmanager:0.28.1
5.1.2 准备Alertmanager配置文件
mkdir -p /usr/local/alertmanager
touch /usr/local/alertmanager/alertmanager.yml
chmod -R 0777 /usr/local/alertmanager/
5.1.3 编辑alertmanager.yml
vi /usr/local/alertmanager/alertmanager.yml
global:
resolve_timeout: 5m
route:
receiver: 'default-receiver'
receivers:
- name: 'default-receiver'
webhook_configs:
- url: 'http://your-webhook-url.com/'
5.1.4 运行Alertmanager Docker容器 🏃
docker run -itd \
--name alertmanager \
-p 9093:9093 \
-v /etc/localtime:/etc/localtime:ro \
-v /usr/local/alertmanager/alertmanager.yml:/etc/alertmanager/alertmanager.yml \
alertmanager:0.28.1
5.1.5 验证Docker部署 ✅
# 查看容器是否正常启动,Status为Up为正常
docker ps -a | grep alertmanager
# 端口监听
ss -ntulp | grep 9093
5.2 利用Docker-Compose简化部署 📘
5.2.1 编写docker-compose.yml配置文件 📜
mkdir docker/docker-compose/docker-compose-alertmanager -p
vi docker/docker-compose/docker-compose-alertmanager/docker-compose.yml
version: '3'
services:
alertmanager:
image: alertmanager:0.28.1
container_name: alertmanager
ports:
- "9093:9093"
volumes:
- ./alertmanager.yml:/etc/alertmanager/alertmanager.yml
5.2.2 编写alertmanager.yml
vi docker/docker-compose/docker-compose-alertmanager/alertmanager.yml
global:
resolve_timeout: 5m
route:
receiver: 'default-receiver'
receivers:
- name: 'default-receiver'
webhook_configs:
- url: 'http://your-webhook-url.com/'
5.2.3 使用Docker-Compose启动服务 🚀
cd docker/docker-compose/docker-compose-alertmanager
docker-compose up -d
5.2.4 验证Docker部署 ✅
# 查看容器是否正常启动,Status为Up为正常
docker ps -a | grep alertmanager
# 端口监听
ss -ntulp | grep 9093
5.3 在Docker Swarm中部署Alertmanager 🐝
5.3.1 创建Docker Compose文件
创建一个 docker-compose.yml 文件来定义 Alertmanager 服务。以下是一个示例配置文件:
mkdir docker/docker-swarm/alertmanager -p
vi docker/docker-swarm/alertmanager/docker-compose.yml
version: '3'
services:
alertmanager:
image: alertmanager:0.28.1
container_name: alertmanager
ports:
- "9093:9093"
volumes:
- ./alertmanager.yml:/etc/alertmanager/alertmanager.yml
networks:
monitoring:
driver: overlay
5.3.2 准备配置文件
在docker/docker-swarm/alertmanager 目录下创建alertmanager .yml 文件。
vi docker/docker-swarm/alertmanager/alertmanager.yml
global:
resolve_timeout: 5m
route:
receiver: 'default-receiver'
receivers:
- name: 'default-receiver'
webhook_configs:
- url: 'http://your-webhook-url.com/'
5.3.3 部署服务到Docker Swarm
使用 docker stack deploy 命令将服务部署到 Docker Swarm。
docker pull bitnami/alertmanager:0.28.1
docker stack deploy -c docker/docker-swarm/alertmanager/docker-compose.yml monitoring
5.3.4 验证部署
docker service ls
5.4 在Kubernetes(K8s)上部署Alertmanager🚀
5.4.1 创建Configmap
创建一个ConfigMap来保存Alertmanager配置文件。
mkdir k8s/alertmanger/
vi k8s/alertmanger/alertmanager-config.yml
apiVersion: v1
kind: ConfigMap
metadata:
name: alertmanager-config
namespace: monitoring # 根据需要更改命名空间
data:
alertmanager.yml: |-
global:
resolve_timeout: 5m
route:
receiver: 'default-receiver'
receivers:
- name: 'default-receiver'
webhook_configs:
- url: 'http://your-webhook-url'
使用命令将其应用到Kubernetes集群中:
kubectl apply -f k8s/alertmanger/alertmanager-config.yml
5.4.2 部署 Alertmanager
创建一个名为alertmanager-deployment.yaml的文件来定义Alertmanager的Deployment和服务。
vi k8s/alertmanger/alertmanager-Deployment.yml
apiVersion: apps/v1
kind: Deployment
metadata:
name: alertmanager
namespace: monitoring # 确保与ConfigMap在同一命名空间
spec:
replicas: 1
selector:
matchLabels:
app: alertmanager
template:
metadata:
labels:
app: alertmanager
spec:
containers:
- name: alertmanager
image: prom/alertmanager:latest
args:
- "--config.file=/etc/alertmanager/alertmanager.yml"
ports:
- containerPort: 9093
volumeMounts:
- name: config-volume
mountPath: /etc/alertmanager
volumes:
- name: config-volume
configMap:
name: alertmanager-config
---
apiVersion: v1
kind: Service
metadata:
name: alertmanager
namespace: monitoring
spec:
type: NodePort
ports:
- port: 9093
targetPort: 9093
selector:
app: alertmanager
使用命令将其应用到Kubernetes集群中:
kubectl apply -f k8s/alertmanger/alertmanager-Deployment.yml
5.4.3 获取NodePort暴漏的外部端口
kubectl -n monitoring get svc | grep alertmanager
5.4.4 访问Alertmanager UI
- 访问不到的话请检查自己的防火墙规则!