【云原生监控】Prometheus之Alertmanager报警

Prometheus之Alertmanager报警

文章目录

  • Prometheus之Alertmanager报警
    • 概述
    • 资源列表
    • 基础环境
    • 一、部署Prometheus服务
      • 1.1、解压
      • 1.2、配置systemctl启动
      • 1.3、监控端口
    • 二、部署Node-Exporter
      • 2.1、解压
      • 2.2、配置systemctl启动
      • 2.3、监听端口
    • 三、配置Prometheus收集Exporter采集的数据
      • 3.1、编辑Prometheus配置文件
      • 3.2、重新加载Prometheus服务
      • 3.3、访问Prometheus仪表盘
    • 四、部署Alertmanager报警工具
      • 4.1、下载软件包
      • 4.2、解压软件包
    • 五、配置Alertmanager邮件报警
      • 5.1、编辑Alertmanager配置文件
      • 5.2、启动Alertmanager
      • 5.3、监听端口
    • 六、配置Prometheus报警规则
      • 6.1、编辑配置文件
      • 6.2、编辑规则文件
      • 6.3、Prometheus的配置文件语法检查
      • 6.4、重新加载Prometheus服务
    • 七、模拟被监控端挂掉

概述

  • Prometheus通过 规则文件对比抓取到的数据,来判断是否触发告警,我们通过配置告警的工具Alertmanager进行告警通知。
  • 规则文件,写的就是,当我们获取到PromeSQL的值到达一个设置的规则后,触发告警,也就是说,规则文件,是触发告警的关键,而Alertmanager是告警的手段、工具。

资源列表

操作系统配置主机名IP所需软件
CentOS 7.92C4Gprometheus192.168.93.101prometheus-2.37.8.linux-amd64.tar.gz
CentOS 7.92C4Galertmanager192.168.93.102node_exporter-1.6.1.linux-amd64.tar.gz
alertmanager-0.26.0.linux-amd64.tar.gz

基础环境

  • 关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
  • 关闭内核安全机制
setenforce 0
sed -i "s/^SELINUX=.*/SELINUX=disabled/g" /etc/selinux/config
  • 修改主机名
hostnamectl set-hostname prometheus
hostnamectl set-hostname alertmanager

一、部署Prometheus服务

  • 作用:收集数据和展示数据

1.1、解压

[root@prometheus ~]# tar -zxvf prometheus-2.37.8.linux-amd64.tar.gz
  • 移动至指定目录
[root@prometheus ~]# mv prometheus-2.37.8.linux-amd64 /usr/local/prometheus

1.2、配置systemctl启动

[root@prometheus ~]# cat >> /etc/systemd/system/prometheus.service << EOF
[Unit]
Description=xinjizhiwa Prometheus Server
Documentation=https://prometheus.io/docs/introduction/overview/
After=network.target
[Service]
Restart=on-failure
ExecStart=/usr/local/prometheus/prometheus \
--config.file=/usr/local/prometheus/prometheus.yml \
--web.enable-lifecycle
ExecReload=/bin/kill -HUP \$MAINPID
LimitNOFILE=65535[Install]
WantedBy=multi-user.target
EOF
  • 加载并启动服务
[root@prometheus ~]# systemctl enable prometheus.service --now

1.3、监控端口

  • Prometheus默认监听9090端口
[root@prometheus ~]# netstat -anpt | grep 9090
tcp6       0      0 :::9090                 :::*                    LISTEN      8311/prometheus     
tcp6       0      0 ::1:9090                ::1:35776               ESTABLISHED 8311/prometheus     
tcp6       0      0 ::1:35776               ::1:9090                ESTABLISHED 8311/prometheus 

二、部署Node-Exporter

  • 作用:用来收集节点上的数据

2.1、解压

[root@alertmanager ~]# tar -zxvf node_exporter-1.6.1.linux-amd64.tar.gz
  • 移动至指定目录
[root@alertmanager ~]# mv node_exporter-1.6.1.linux-amd64 /usr/local/node_exporter

2.2、配置systemctl启动

[root@alertmanager ~]# cat > /etc/systemd/system/node-exporter.service << EOF
[Unit]
Description=xinjizhiwa node-exporter
Documentation=https://prometheus.io/docs/introduction/overview/
After=network.target[Service]
Restart=on-failure
ExecStart=/usr/local/node_exporter/node_exporter
ExecReload=/bin/kill -HUP \$MAINPID
LimitNOFILE=65535[Install]
WantedBy=multi-user.target
EOF
  • 加载并启动服务
[root@alertmanager ~]# systemctl daemon-reload 
[root@alertmanager ~]# systemctl enable node-exporter.service --now

2.3、监听端口

  • node-exporter默认监听9100端口
[root@alertmanager ~]# netstat -anpt | grep 9100
tcp6       0      0 :::9100                 :::*                    LISTEN      8320/node_exporter

三、配置Prometheus收集Exporter采集的数据

  • node-exporter会把数据统一收集,等待Prometheus进行收集数据展示

3.1、编辑Prometheus配置文件

[root@prometheus ~]# grep -v "#" /usr/local/prometheus/prometheus.yml
global:alerting:alertmanagers:- static_configs:- targets:rule_files:scrape_configs:- job_name: "prometheus"static_configs:- targets: ["localhost:9090"]
####################################################- job_name: "alertmanager"static_configs:- targets: ["192.168.93.102:9100"]
####################################################

3.2、重新加载Prometheus服务

  • 此次的加载方式不适用systemctl进行加载的
[root@prometheus ~]# curl -X POST http://192.168.93.101:9090/-/reload

3.3、访问Prometheus仪表盘

  • 访问地址:http://192.168.93.101:9090

  • 依次点击Status>Targets

  • 此时,就会看到,新配置的被监控项主体的指标列表
    在这里插入图片描述

四、部署Alertmanager报警工具

  • 作用:用于集成邮件报警

4.1、下载软件包

[root@alertmanager ~]# wget https://github.com/prometheus/alertmanager/releases/download/v0.26.0/alertmanager-0.26.0.linux-amd64.tar.gz

4.2、解压软件包

[root@alertmanager ~]# tar -zxvf alertmanager-0.26.0.linux-amd64.tar.gz[root@alertmanager ~]# mv alertmanager-0.26.0.linux-amd64 /usr/local/alertmanager

五、配置Alertmanager邮件报警

5.1、编辑Alertmanager配置文件

[root@alertmanager ~]# cat /usr/local/alertmanager/alertmanager.yml 
#一、发件人信息配置
global:#解析失败超时时间;resolve_timeout: 5m#【发件人】邮箱smtp_from: '2516786946@qq.com'#【邮箱官方主机】地址及端口smtp_smarthost: 'smtp.qq.com:465'#【发件人名称】邮箱smtp_auth_username: 'wzh@qq.com'#【发件人】邮箱授权码smtp_auth_password: 'sqwmtjbnsbrlebie'#发送信息是否tls加密smtp_require_tls: falsesmtp_hello: 'qq.com'
#二、报警的间隔信息配置;
route:group_by: ['alertname']group_wait: 5sgroup_interval: 5s#重复报警的间隔时间,如果报警问题没有解决,则会间隔指定的时间继续触发报警,比如5分钟;repeat_interval: 5m#采用什么报警方式?本次学习,我们使用邮箱;receiver: 'email'
#三、接收告警的目标信息编辑;谁来接收告警?
receivers:
#定义接收者名称
- name: 'email'email_configs:#【收件人】- to: '2516786946@qq.com'send_resolved: true
inhibit_rules:- source_match:#匹配的告警级别severity: 'critical'target_match:severity: 'warning'equal: ['alertname', 'dev', 'instance']

5.2、启动Alertmanager

# 此命令是前台启动命令
[root@alertmanager ~]# /usr/local/alertmanager/alertmanager

5.3、监听端口

  • Alertmanager默认监听9093端口
[root@alertmanager ~]# netstat -anpt | grep 9093
tcp6       0      0 :::9093                 :::*                    LISTEN      8393/alertmanager

六、配置Prometheus报警规则

6.1、编辑配置文件

[root@prometheus ~]# cat /usr/local/prometheus/prometheus.yml 
global:scrape_interval: 3s evaluation_interval: 15s alerting:alertmanagers:- static_configs:- targets:- 192.168.93.102:9093  ### 报警的中间件地址(Alertmanager的访问地址)rule_files:- "/usr/local/prometheus/rules.yml"  ### 规则文件地址scrape_configs:- job_name: "prometheus"static_configs:- targets: ["localhost:9090"]- job_name: "alertmanager"static_configs:- targets: ["192.168.93.102:9100"]

6.2、编辑规则文件

  • 规则文件内容:当监控数据,到达什么数值后,触发Alertmanager的报警
[root@prometheus ~]# cat /usr/local/prometheus/rules.yml
groups:
- name: wzh-alertrules:- alert: 102节点挂掉啦          #当promeQL这个语句=0时(节点挂掉),开始报警expr: up{instance="192.168.93.102:9100"} == 0  # PromeSQL语言(up{instance="192.168.93.102:9100"})#连续3s=0才触发报警;for: 3slabels:prometheus: wzh#被监控节点ipnode: 192.168.93.102annotations:summary: "{{ $lables.instance }} 已停止运行超过 3s!"

6.3、Prometheus的配置文件语法检查

[root@prometheus ~]# cd /usr/local/prometheus/
[root@prometheus prometheus]# ./promtool check config prometheus.yml 
Checking prometheus.ymlSUCCESS: 1 rule files foundSUCCESS: prometheus.yml is valid prometheus config file syntaxChecking /usr/local/prometheus/rules.ymlSUCCESS: 1 rules found

6.4、重新加载Prometheus服务

[root@prometheus prometheus]# curl -X POST http://192.168.93.101:9090/-/reload

七、模拟被监控端挂掉

  • 如果一直没有发送报警,可以选择多次重启Prometheus服务和Alertmanager服务
[root@alertmanager ~]# systemctl stop node-exporter.service

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/1537435.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

c++刷题

17.电话号码的组合 来源于题解思路&#xff1a; 双指针算法 283.移动零

springboot 集成轻量级规则编排引擎 LiteFlow 使用详解

目录 一、前言 二、流程编排概述​​​​​​​ 2.1 什么是流程编排 2.1.1 流程编排主要特征 2.1.2 流程编排应用场景 2.2 流程编排与工作流区别 2.2.1 定义上的差别 2.2.2 应用场景上的差别 2.2.3 技术实现上的差异 三、微服务中流程编排常用的技术 3.3.1 LiteFlow …

【2025】智慧居家养老服务平台的设计与实现、基于AI的居家养老服务平台、居家养老服务平台开发、智慧养老服务平台设计

博主介绍&#xff1a; ✌我是阿龙&#xff0c;一名专注于Java技术领域的程序员&#xff0c;全网拥有10W粉丝。作为CSDN特邀作者、博客专家、新星计划导师&#xff0c;我在计算机毕业设计开发方面积累了丰富的经验。同时&#xff0c;我也是掘金、华为云、阿里云、InfoQ等平台…

Mamba环境配置教程【自用】

1. 新建一个Conda虚拟环境 conda create -n mamba python3.102. 进入该环境 conda activate mamba3. 安装torch&#xff08;建议2.3.1版本&#xff09;以及相应的 torchvison、torchaudio 直接进入pytorch离线包下载网址&#xff0c;在里面寻找对应的pytorch以及torchvison、…

面试官问:你如何看待加班?

面试官问&#xff1a;你如何看待加班&#xff1f; 面试官问&#xff1a;你如何看待加班&#xff1f;这类问题是比较常见的&#xff0c;出现频率相当高。有些同学看到这样的问题&#xff0c;就会断定这家公司估计是经常加班的&#xff0c;绝对的不能去&#xff01;&#xff01;…

如何制作一张动态壁纸? ------居然也和编程有关,简单总结一下下,因为我也很好奇哈哈(含实战代码和效果演示)

相关语言&#xff1a; html &#xff0c;css&#xff0c;JavaScript&#xff0c;c# c#的开发难度高&#xff0c;本文以前端三剑客为例。 理论基础 制作一款类似于Wallpaper Engine上的动态壁纸是一个有趣的项目&#xff0c;它涉及到一些基本的编程知识以及图形设计技能。下…

C++_类和对象(中、下篇)—— const成员函数、取地址运算符的重载、深入构造函数、类型转换、static成员、友元

目录 三、类和对象&#xff08;中&#xff09; 6、取地址运算符重载 1、const成员函数 2、取地址运算符的重载 四、类和对象&#xff08;下&#xff09; 1、深入构造函数 2、类型转换 3、static成员 4、友元 三、类和对象&#xff08;中&#xff09; 6、取地址运算…

削峰+限流:秒杀场景下的高并发写请求解决方案

我是小米,一个喜欢分享技术的29岁程序员。如果你喜欢我的文章,欢迎关注我的微信公众号“软件求生”,获取更多技术干货! 哈喽,大家好!我是小米,一个29岁、活泼积极、热衷分享技术的码农。今天和大家聊一聊应对高并发的写请求这个主题,尤其是在大促、秒杀这种场景下,系统…

南京信息工程大学《2020年+2021年817自动控制原理真题》 (完整版)

本文内容&#xff0c;全部选自自动化考研联盟的&#xff1a;《25届南京信息工程大学817自控考研资料》的真题篇。后续会持续更新更多学校&#xff0c;更多年份的真题&#xff0c;记得关注哦~ 目录 2020年真题 2021年真题 Part1&#xff1a;20202021年完整版真题 2020年真题…

Unity3D下如何播放RTSP流?

技术背景 在Unity3D中直接播放RTSP&#xff08;Real Time Streaming Protocol&#xff09;流并不直接支持&#xff0c;因为Unity的内置多媒体组件&#xff08;如AudioSource和VideoPlayer&#xff09;主要设计用于处理本地文件或HTTP流&#xff0c;而不直接支持RTSP。所以&…

并查集的应用

目录 1.并查集的代码 2.union操作 3.find操作 4.图 写代码&#xff1a;定义一个并查集&#xff08;用长度为n的数组实现&#xff09; 基于上述定义&#xff0c;实现并查集的基本操作—— 并 Union 基于上述定义&#xff0c;实现并查集的基本操作—— 查 Find 自己设计一…

欧美游戏市场的差异

欧洲和美国的游戏市场虽然高度发达且利润丰厚&#xff0c;但表现出由文化偏好、消费者行为、监管环境和平台受欢迎程度塑造的独特特征。这些差异对于寻求为每个地区量身定制策略的游戏开发商和发行商来说非常重要。 文化偏好和游戏类型 美国&#xff1a;美国游戏市场倾向于青…

Java基础尚硅谷84-面向对象-package与import关键字的使用

曾国藩说&#xff0c;基础不牢&#xff0c;很难走得远。 所以时时回顾一下Java基础&#xff0c;打好地基&#xff0c;让自己走得更稳&#xff0c;更远。 今天这节课&#xff0c;学到对自己有点价值的东西是&#xff1a; 1 import 导入A包.*&#xff0c;可以使用A包下&#xff…

操作系统、数据库

操作系统 管道&#xff1a;读写先进先出&#xff0c;不能想读哪里就读哪里&#xff0c;想写哪里就哪里 内存 块表的理论支撑&#xff1a;局部性原理&#xff1a;1.时间局部性和空间局部性原理。 内存映射&#xff1a;

目标检测——flask后端YOLOv8检测视频,前端实时显示检测结果

前端代码&#xff1a; index.html <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>YOLOv8 Video S…

网络安全笔试练习题,据说10分钟内答对的都是高手!

《网安面试指南》http://mp.weixin.qq.com/s?__bizMzkwNjY1Mzc0Nw&mid2247484339&idx1&sn356300f169de74e7a778b04bfbbbd0ab&chksmc0e47aeff793f3f9a5f7abcfa57695e8944e52bca2de2c7a3eb1aecb3c1e6b9cb6abe509d51f&scene21#wechat_redirect 《Java代码审…

CSP-J/S赛前知识点大全2:初赛纯靠记忆的知识点

-NOI的中文意思是&#xff08;全国青少年信息学奥林匹克竞赛&#xff09;。 -NOIP从&#xff08;2022&#xff09;年开始不支持Pascal语言。 -中国计算机学会&#xff08;CCF&#xff09;于&#xff08;1962&#xff09;年成立&#xff0c;于(1984)年创办全国青少年计算机程序设…

惬意享受阅读,优雅的微信公众号订阅方式,极空间部署『WeWe RSS』

惬意享受阅读&#xff0c;优雅的微信公众号订阅方式&#xff0c;极空间部署『WeWe RSS』 哈喽小伙伴们好&#xff0c;我是Stark-C~ 不知道大家平时是怎么阅读自己关注的公众号文章的&#xff0c;是不是基本就靠微信平自动提醒更新呢&#xff1f;如果是这样&#xff0c;那么我…

dubbo二

dubbo dubbo扩展加载流程 服务调用过程 线程派发模型 多版本控制 集群容错 策略对比 负载均衡及其实现

ICM20948 DMP代码详解(25)

接前一篇文章&#xff1a;ICM20948 DMP代码详解&#xff08;24&#xff09; 上一回讲到了inv_icm20948_load_firmware函数&#xff0c;对于大体功能进行了介绍&#xff0c;本回深入其具体实现代码细节。为了便于理解和回顾&#xff0c;再次贴出相关代码&#xff1a; //Setup Iv…