当前位置: 首页 > news >正文

监控系统prometheus+grafana+发送告警信息

1、基础环境准备两台或更多的主机

2、关闭selinux vi /etc/selinux/config,修改SELINUX的值为disabled

3、关闭防火墙 systemctl disable firewalld systemctl stop firewalld

4、prometheus官网下载 https://prometheus.io/download/

5、grafana官网下载 https://grafana.com/grafana/download

6、node_exporter下载地址 https://prometheus.io/download/

一、安装配置

我这里下载保存在 /opt目录下,完成如下所示

1、解压、安装prometheus

tar -xzvf prometheus-2.45.0.linux-amd64.tar.gz
mv prometheus-2.45.0.linux-amd64 prometheus
2、为prometheus服务创建service并设置开机自动启动
vim /usr/lib/systemd/system/prometheus.service
[Unit]
Description=prometheus
Documentation=https://prometheus.io/
After=network.target
[Service]
Type=simple
User=root
Group=root
ExecStart=/opt/prometheus/prometheus --config.file=/opt/prometheus/prometheus.yml --web.enable-lifecycle --web.external-url=http://PrometheusIP:9090
Restart=on-failure
[Install]
WantedBy=multi-user.target
使service生效并且设置开机自启动
systemctl daemon-reload
systemctl enable prometheus --now
通过以下地址访问prometheus
http://localhost:9090
后续prometheus配置文件有修改可以通过以下命令完成热加载,无须重启服务
curl -X POST http://localhost:9090/-/reload
3、安装grafana   我这里安装最新版本的grafana,大家可以直接通过yum命令下载安装
yum install -y https://dl.grafana.com/enterprise/release/grafana-enterprise-10.0.2-1.x86_64.rpm
启动grafana服务
systemctl daemon-reload
systemctl enable grafana-server --now
通过以下地址访问garfana,并且配置相应的数据源
http://localhost:3000
登录界面如下所示,默认账号是admin/admin,第一次登录会要求修改默认密码

 登录进入grafana系统后,对数据源进行配置,点击,add your first data source,进入添加数据源页面

 进入后,点击Prometheus,进入配置页面

 编辑HTTP下的URL,这里填服务器IP+9090端口,所以填:http://localhost:9090

 拉到最底部进行保存,如下所示即为保存成功

二、安装被监控主机的node_exporter组件

1、对软件压缩包进行解压,并且将安装包放到自己系统安装目录下,我自己放在/usr/local/目录中

tar -xzf node_exporter-1.6.1.linux-amd64.tar.gz

mv node_exporter-1.6.1.linux-amd64 /usr/local/

2、将安装包中的可执行文件node_exporter拷贝到/usr/local/bin目录中

mv /usr/local/node_exporter-1.6.1.linux-amd64/node_exporter /usr/local/bin/

3、为node_exporter服务创建service服务

vim /usr/lib/systemd/system/node_exporter.service
[Unit]
Description=node_exporter
Documentation=https://prometheus.io/
After=network.target
[Service]
Type=simple
User=root
Group=root
ExecStart=/usr/local/bin/node_exporter
Restart=on-failure
[Install]
WantedBy=multi-user.target

4、为node_exporter设置自动启动并启动服务

systemctl daemon-reload
systemctl enable node_exporter --now

修改prometheus配置文件,在文件最后追加以下信息,纳管要监控的主机

vi /opt/prometheus/prometheus.yml- job_name: 'master_prometheus'static_configs:- targets: ['xxx.xxx.xxx.xxx:9100']     添加多个主机以逗号分隔['xxx.xxx.xxx.xxx:9100','xxx.xxx.xxx.xxx:9100']
检查配置是否正确,显示SUCCESS说明配置正确
/opt/prometheus/promtool check config /opt/prometheus/prometheus.ymlChecking /opt/prometheus/prometheus.ymlSUCCESS: /opt/prometheus/prometheus.yml is valid prometheus config file syntax

重启prometheus服务进行相关测试

systemctl restart prometheus

打开如下测试地址

http://prometheus服务器地址:9090/targets

可以看到targets已经增加了对监控主机master_prometheus的监控

 三、grafana中添加配置监控模板

如图点击“+”号后,选择import dashboard

 如下图,搜索系统默认模板8919,然后点击Load

如果模板ID号导入的方法总是失败,可以去下载JSON文件

https://grafana.com/grafana/dashboards/8919-1-node-exporter-for-prometheus-dashboard-cn-0413-consulmanager/

下载JSON文件后把内容复制到下面的输入框里点load

选择数据源Prometheus-1,点击“Import”

三、安装告警中心消息转发系统PrometheusAlert

        Prometheus Alert 是开源的运维告警中心消息转发系统,支持主流的监控系统 Prometheus,日志系统 Graylog
和数据可视化系统 Grafana 发出的预警消息。通知渠道支持钉钉、微信、华为云短信、腾讯云短信、腾讯云电话、阿里云短信、阿里云电话等。

PrometheusAlert 特性
1.支持多种消息来源,目前主要有prometheus、graylog2、graylog3、grafana。
2.支持多种类型的发送目标,支持钉钉、微信、腾讯短信、腾讯语音、华为短信。
3.针对Prometheus增加了告警级别,并且支持按照不同级别发送消息到不同目标对象。
4.简化Prometheus分组配置,支持按照具体消息发送到单个或多个接收方。
5.增加手机号码配置项,和号码自动轮询配置,可固定发送给单一个人告警信息,也可以通过自动轮询的方式发送到多个人员且支持按照不同日期发送到不同人员。
6.增加 Dashboard,暂时支持测试配置是否正确
部署方法 PrometheusAlert 可以部署在本地和云平台上,支持windows、linux、公有云、私有云、混合云、容器和kubernetes。

PrometheusAlert官网:https://github.com/feiyu563/PrometheusAlert

本地部署
1.下载插件

mkdir /data/monitor/prometheusalert/ -p && cd /data/monitor/prometheusalert/ 
wget https://gh.api.99988866.xyz/https://github.com/feiyu563/PrometheusAlert/releases/download/v4.8.2/linux.zip

2.安装部署

unzip linux.zip
mv linux/*  /data/monitor/prometheusalert/
chmod +x /data/monitor/prometheusalert/PrometheusAlert

3.修改prometheusalert配置

vim /data/monitor/prometheusalert/conf/app.conf

#设置插件名字
appname = Prometheus监控
#登录用户名
login_user=root
#登录密码
login_password=admin
#监听地址
httpaddr = "0.0.0.0"
#监听端口
httpport = 8080
#告警消息标题
title=Prometheus告警
#是否开启钉钉告警通道,可同时开始多个通道0为关闭,1为开启
open-dingding=1
#默认钉钉机器人地址
ddurl=https://oapi.dingtalk.com/robot/send?access_token=xxxxx
#是否开启 @所有人(0为关闭,1为开启)
dd_isatall=1
#是否开启飞书告警通道,可同时开始多个通道0为关闭,1为开启
open-feishu=1
#默认飞书机器人地址
fsurl=https://open.feishu.cn/open-apis/bot/v2/hook/xxx-xxxx-xxx-xxx...

4.启动prometheusalert
前台

cd /data/monitor/prometheusalert/
./PrometheusAlert
后台

cd /data/monitor/prometheusalert/
nohup ./PrometheusAlert &

容器部署
docker启动
 docker run -d \
-p 18080:8080 \
-e PA_LOGIN_USER=root \
-e PA_LOGIN_PASSWORD=admin \
-e PA_TITLE=Prometheus告警 \
-e PA_OPEN_FEISHU=1 \
-e PA_OPEN_DINGDING=1 \
--name prometheusalert
feiyu563/prometheus-alert:latest

docker-compose文件启动
1.创建prometheusalert配置文件

vim /data/monitor/prometheusalert/config/app.conf(注意下修改对应接收软件的相关信息)

#---------------------↓全局配置-----------------------
appname = PrometheusAlert
#登录用户名
login_user=123
#登录密码
login_password=123
#监听地址
httpaddr = "0.0.0.0"
#监听端口
httpport = 8080
runmode = dev
#设置代理 proxy = http://123.123.123.123:8080
proxy =
#开启JSON请求
copyrequestbody = true
#告警消息标题
title=云监控测试
#日志文件路径
logpath=logs/prometheusalertcenter.log
#是否开启钉钉告警通道,可同时开始多个通道0为关闭,1为开启
open-dingding=1
#默认钉钉机器人地址
ddurl=https://oapi.dingtalk.com/robot/send?access_token=xxxx-xxxx-xxx...
#是否开启 @所有人(0为关闭,1为开启)
dd_isatall=1
#是否开启飞书告警通道,可同时开始多个通道0为关闭,1为开启
open-feishu=1
#默认飞书机器人地址
fsurl=https://open.feishu.cn/open-apis/bot/v2/hook/xxxx-xxxx-xxxx-xxxx...

2.创建服务yml文件

vim /data/monitor/docker-compose-prometheusalert.yml

version: '3'
services:
  prometheusalert:
    image: feiyu563/prometheus-alert:latest
    container_name: prometheusalert
    restart: always
    ports:
      - 8080:8080
    volumes:
    - /etc/localtime:/etc/localtime
    - /data/monitor/prometheusalert/config:/app/conf 
    - /data/monitor/prometheusalert/logs:/app/logs

3.启动

docker-compose -f /data/monitor/docker-compose-prometheusalert.yml up -d

配置prometheusalert接入告警。
1.创建群聊机器人
创建飞书机器人
推送消息的群——设置——机器人——添加机器人——自定义机器人——设置机器人名字,说明——添加——复制webhook地址——完成


创建钉钉机器人
群设置——只能群助手——添加机器人——设置——自定义机器人——设置机器人名称——设置安全(关键字,IP,加签)——完成


2.访问prometheusalert获取webhook地址
(模板管理——自定义模板——飞书模板或钉钉模板)

模板为json语言编写,可通过自己编写json文件模板来自定义模板内容。
示例模板文件:

{{ range $k,$v:=.alerts }}告警状态:【**{{$v.status}}**】
{{if eq $v.status "resolved"}} 【{{$v.labels.alertname}}告警恢复】
所属平台:{{$v.labels.pingtai}}
主机内网IP:[{{$v.labels.instance}}]
恢复模块:[{{$v.labels.job}}]
当前值: {{$v.annotations.value}}
详细信息:{{$v.annotations.summary}} 已恢复正常 {{else}}【{{$v.labels.alertname}}异常告警】
所属平台:{{$v.labels.pingtai}}
告警级别:{{$v.labels.severity}}
主机内网IP:[{{$v.labels.instance}}]
故障模块:[{{$v.labels.job}}]
当前值: {{$v.annotations.value}}
详细信息:{{$v.annotations.description}} {{end}} {{ end }}

3.alertmanager添加prometheusalert配置
vim alertmanager.yml
在告警发送配置中增加如下配置:

webhook_configs:
 - url: "prometheusalert_webhook地址1(飞书机器人)"
 - url: "prometheusalert_webhook地址2(钉钉机器人)"

4.prometheus添加alertmanager配置
vim prometheus.yml
1
  alertmanagers:
  - scheme: http
    static_configs:
    - targets:
      - "localhost:9093"

5.告警效果测试

相关文章:

监控系统prometheus+grafana+发送告警信息

1、基础环境准备两台或更多的主机 2、关闭selinux vi /etc/selinux/config,修改SELINUX的值为disabled 3、关闭防火墙 systemctl disable firewalld systemctl stop firewalld 4、prometheus官网下载 https://prometheus.io/download/ 5、grafana官网下载 https…...

IoT 物联网场景中如何应对安全风险?——青创智通

工业物联网解决方案-工业IOT-青创智通 ​随着物联网(IoT)技术的快速发展,越来越多的设备、系统和应用被连接到互联网上,从而构建了一个庞大的物联网生态系统。然而,这种连接性也带来了前所未有的安全风险。在物联网场景…...

滴滴基于 Clickhouse 构建新一代日志存储系统

滴滴基于 Clickhouse 构建新一代日志存储系统 ClickHouse 是2016年开源的用于实时数据分析的一款高性能列式分布式数据库,支持向量化计算引擎、多核并行计算、高压缩比等功能,在分析型数据库中单表查询速度是最快的。2020年开始在滴滴内部大规模地推广和应用,服务网约车和日…...

虚拟主机去除index.php目录地址

复制代码到NGINX设置 虚拟主机去除index.php目录地址-复制代码-NGINX设置 location / { if (!-e $request_filename) { rewrite ^(.*)$ /index.php?s/$1 last; break; } } location ~ /\.ht { deny all; }...

JD商品详情原数据 API 返回值说明

一、应用场景 商品详情原数据API的应用场景广泛而多样。具体来说,它可以被用于以下方面: 1、电商平台数据分析:电商平台可以通过商品详情原数据API提取商品销售数据、质量评分、评论和反馈等信息,从而帮助用户更好地理解市场和竞…...

python日常刷题(一)

前言:本文记录2024年3月11日至2024年3月19日牛客网所做的基础题目(错题本): 🎬个人简介:努力学习ing 📋本专栏:python日常刷题 🎀CSDN主页:愚润求学 文章目录…...

Python 利用pandas和mysql-connector获取Excel数据写入到MySQL数据库

如何将Excel数据插入到MySQL数据库中 在实际应用中,我们可能需要将Excel表格中的数据导入到MySQL数据库中,以便于进行进一步的数据分析和处理。本文将介绍如何使用Python将Excel表格中的数据插入到MySQL数据库中。 导入必要的库 首先,我们…...

Stable Diffusion训练图片时,简陋的数据处理

0 图片从命名 如果有强迫症,看到似乎乱码的命名会不舒服,那么就批量从命名 import osdef rename_files_in_directory(directory, key_word, new_suffix):i 1for filename in os.listdir(directory):new_file key_word str(i).zfill(3) new_suffixsou…...

如何在ubuntu 18.04中升级python 3.6到3.7

在ubuntu下安装python 3.7有两种方法: 1,通过使用Deadsnakes PPA中的标准apt工具(本文暂时只介绍这种方法) 2,从源代码进行构建。 前提条件: 需要以root用户或具有sudo访问权限的用户身份登录才能在Ubuntu系统上安装软件包。 方法一:使用apt工具安装…...

python爬虫基础实验:通过DBLP数据库获取数据挖掘顶会KDD在2023年的论文收录和相关作者信息

Task1 读取网站主页整个页面的 html 内容并解码为文本串(可使用urllib.request的相应方法),将其以UTF-8编码格式写入page.txt文件。 Code1 import urllib.requestwith urllib.request.urlopen(https://dblp.dagstuhl.de/db/conf/kdd/kdd202…...

简单记录一次帮维修手机经历(Vivo x9)

简介 手边有一台朋友亲戚之前坏掉的Vivo X9手机, 一直说要我帮忙修理一下, 我一直是拒绝的, 因为搞程序的不等于维修的(会电脑不等于维修电器),不知道这种思路如何根深蒂固的,不过好吧&#xff…...

ap聚类是什么

AP聚类(Affinity Propagation clustering)是一种聚类算法,它基于数据点之间的相似度进行聚类。AP聚类算法无需预先指定簇的数量,而是根据数据点之间的相似性动态地确定簇的个数和分配情况。 AP聚类的核心思想是通过迭代计算数据点…...

C数据类型(C语言)---变量的类型决定了什么?

目录 数据类型(Data Type) 变量的类型决定了什么? (1)不同类型数据占用的内存大小不同 如何计算变量或类型占内存的大小 (2)不同数据类型的表数范围不同 (3)不同类型…...

axios、axios二次封装、api解耦

import axios from axios// 环境的切换切换测试与生产环境 if (process.env.NODE_ENV development) { axios.defaults.baseURL /api; } else if (process.env.NODE_ENV debug) { axios.defaults.baseURL ; } else if (process.env.NODE_ENV production) { axios.…...

HTML 特殊元素:展示PDF、展示JSON 数据

<pre> 标签 (preformatted text) <pre> 标签用来表示预格式化的文本内容 在页面数据展示时&#xff0c;后端返回了一段未经处理的JSON 数据&#xff0c;将这段数据在页面正常展示&#xff0c;让可读性更高。 {/"project": {/ "title": "…...

算法·动态规划Dynamic Programming

很多人听到动态规划或者什么dp数组了&#xff0c;或者是做到一道关于动态规划的题目时&#xff0c;就会有一种他很难且不好解决的恐惧心理&#xff0c;但是如果我们从基础的题目开始深入挖掘动规思想&#xff0c;在后边遇到动态规划的难题时就迎难而解了。  其实不然&#xff…...

鸿蒙Harmony应用开发—ArkTS-转场动画(共享元素转场)

当路由进行切换时&#xff0c;可以通过设置组件的 sharedTransition 属性将该元素标记为共享元素并设置对应的共享元素转场动效。 说明&#xff1a; 从API Version 7开始支持。后续版本如有新增内容&#xff0c;则采用上角标单独标记该内容的起始版本。 属性 名称参数参数描述…...

【C语言】循环语句(语句使用建议)

文章目录 **while循环****while循环的实践****补充:if语句与while语句区别****for循环(使用频率最高)****for循环的实践****while循环和for循环的对比****Do-while循环****break和continue语句****循环的嵌套****goto语句(不常用)****循环语句的效率(来自于高质量的C/C编程书籍…...

Spring Data访问Elasticsearch----响应式Reactive存储库

Spring Data访问Elasticsearch----响应式Reactive存储库 一、用法二、配置 Reactive Elasticsearch存储库支持建立在存储库中解释的核心存储库支持之上&#xff0c;利用由 Reactive REST客户端执行的 Reactive Elasticsearch Operations提供的操作。 Spring Data Elasticsear…...

堆排序(c语言)

文章目录 前言一.什么是堆二.向下调整算法三.堆排序的创建总结 前言 堆排序&#xff08;Heapsort&#xff09;是指利用堆这种数据结构所设计的一种排序算法。堆积是一个近似完全二叉树的结构&#xff0c;并同时满足堆积的性质&#xff1a;即子结点的键值或索引总是小于&#x…...

K8S认证|CKS题库+答案| 11. AppArmor

目录 11. AppArmor 免费获取并激活 CKA_v1.31_模拟系统 题目 开始操作&#xff1a; 1&#xff09;、切换集群 2&#xff09;、切换节点 3&#xff09;、切换到 apparmor 的目录 4&#xff09;、执行 apparmor 策略模块 5&#xff09;、修改 pod 文件 6&#xff09;、…...

模型参数、模型存储精度、参数与显存

模型参数量衡量单位 M&#xff1a;百万&#xff08;Million&#xff09; B&#xff1a;十亿&#xff08;Billion&#xff09; 1 B 1000 M 1B 1000M 1B1000M 参数存储精度 模型参数是固定的&#xff0c;但是一个参数所表示多少字节不一定&#xff0c;需要看这个参数以什么…...

Spring Boot 实现流式响应(兼容 2.7.x)

在实际开发中&#xff0c;我们可能会遇到一些流式数据处理的场景&#xff0c;比如接收来自上游接口的 Server-Sent Events&#xff08;SSE&#xff09; 或 流式 JSON 内容&#xff0c;并将其原样中转给前端页面或客户端。这种情况下&#xff0c;传统的 RestTemplate 缓存机制会…...

PHP和Node.js哪个更爽?

先说结论&#xff0c;rust完胜。 php&#xff1a;laravel&#xff0c;swoole&#xff0c;webman&#xff0c;最开始在苏宁的时候写了几年php&#xff0c;当时觉得php真的是世界上最好的语言&#xff0c;因为当初活在舒适圈里&#xff0c;不愿意跳出来&#xff0c;就好比当初活在…...

【SpringBoot】100、SpringBoot中使用自定义注解+AOP实现参数自动解密

在实际项目中,用户注册、登录、修改密码等操作,都涉及到参数传输安全问题。所以我们需要在前端对账户、密码等敏感信息加密传输,在后端接收到数据后能自动解密。 1、引入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId...

学校招生小程序源码介绍

基于ThinkPHPFastAdminUniApp开发的学校招生小程序源码&#xff0c;专为学校招生场景量身打造&#xff0c;功能实用且操作便捷。 从技术架构来看&#xff0c;ThinkPHP提供稳定可靠的后台服务&#xff0c;FastAdmin加速开发流程&#xff0c;UniApp则保障小程序在多端有良好的兼…...

Nginx server_name 配置说明

Nginx 是一个高性能的反向代理和负载均衡服务器&#xff0c;其核心配置之一是 server 块中的 server_name 指令。server_name 决定了 Nginx 如何根据客户端请求的 Host 头匹配对应的虚拟主机&#xff08;Virtual Host&#xff09;。 1. 简介 Nginx 使用 server_name 指令来确定…...

解读《网络安全法》最新修订,把握网络安全新趋势

《网络安全法》自2017年施行以来&#xff0c;在维护网络空间安全方面发挥了重要作用。但随着网络环境的日益复杂&#xff0c;网络攻击、数据泄露等事件频发&#xff0c;现行法律已难以完全适应新的风险挑战。 2025年3月28日&#xff0c;国家网信办会同相关部门起草了《网络安全…...

逻辑回归暴力训练预测金融欺诈

简述 「使用逻辑回归暴力预测金融欺诈&#xff0c;并不断增加特征维度持续测试」的做法&#xff0c;体现了一种逐步建模与迭代验证的实验思路&#xff0c;在金融欺诈检测中非常有价值&#xff0c;本文作为一篇回顾性记录了早年间公司给某行做反欺诈预测用到的技术和思路。百度…...

破解路内监管盲区:免布线低位视频桩重塑停车管理新标准

城市路内停车管理常因行道树遮挡、高位设备盲区等问题&#xff0c;导致车牌识别率低、逃费率高&#xff0c;传统模式在复杂路段束手无策。免布线低位视频桩凭借超低视角部署与智能算法&#xff0c;正成为破局关键。该设备安装于车位侧方0.5-0.7米高度&#xff0c;直接规避树枝遮…...