docker部署prometheus+grafana+alertmanager+dingtalk实现钉钉告警

news2024/11/25 16:30:02

目录

  • docker安装
  • 准备工作
    • 镜像拉取
    • 容器启动
      • 启动node-exporter
      • 启动prometheus
      • 启动grafana
      • 启动webhook-prometheus-dingtalk
      • 启动alertmanager
      • 所有容器启动成功如下
  • 将prometheus和alertmanager进行关联
    • 在prometheus目录下新建一个rules.yml文件的告警规则
    • 修改prometheus.yml文件,进行关联
    • 重新启动prometheus
    • 查看显示
  • 测试
    • 将`node-exporter`所在的容器停掉,查看效果
    • 钉钉查看告警
    • 将`node-exporter`所在的容器重启,查看效果
  • 结束

概念就不讲了,直接操作………………

docker安装

       使用prometheus实现钉钉告警是用容器实现的,所以要安装docker,安装方法可以看之前的文章docker的安装和启动–centos7。
       出现如下效果则成功

[root@iZbp16vhn64fpaj6qmsum0Z ~]# docker --version
Docker version 24.0.2, build cb74dfc

       接下来就是安装启动,看之前的文章就好

准备工作

镜像拉取

       拉取需要使用的镜像

docker pull prom/node-exporter
docker pull grafana/grafana 
docker pull prom/prometheus 
docker pull prom/alertmanager 
docker pull timonwong/prometheus-webhook-dingtalk 

       如下所示
在这里插入图片描述
       其中
prom/node-exporter:用于收集主机系统信息和指标的

grafana/grafana:是一个用于可视化和分析监控指标的开源平台。

prom/prometheus:是一个开源的监控系统,用于收集和存储时间序列数据,并提供基于数据的查询、报警和可视化功能。

prom/alertmanager:是 Prometheus 的告警管理器,用于处理和路由来自 Prometheus 服务器的告警通知。

timonwong/prometheus-webhook-dingtalk:是一个用于将 Prometheus 告警通知发送到钉钉的 Webhook,它是一个第三方的开源软件。

容器启动

启动node-exporter

 docker run -d -p 9100:9100 -v /proc:/host/proc:ro -v /sys:/host/sys:ro -v /:/rootfs:ro prom/node-exporter

查看访问
在这里插入图片描述

启动prometheus

       在启动prometheus之前,可以自己编写一个prometheus.yml文件,然后使用卷挂载到该容器内部。

# 创建挂载目录
mkdir /opt/prometheus
cd /opt/prometheus/
# 编写该文件
vim prometheus.yml

prometheus.yml文件

global:
  scrape_interval:     60s
  evaluation_interval: 60s
# Alertmanager配置
scrape_configs:
  - job_name: prometheus
    static_configs:
      - targets: ['121.43.108.111:9090'] # 采取prometheus指标数据
        labels:
          instance: prometheus
  - job_name: linux
    static_configs:
      - targets: ['121.43.108.111:9100'] # 采取本地指标数据
        labels:
          instance: localhost

启动

docker run  -d -p 9090:9090 -v /opt/prometheus:/etc/prometheus prom/prometheus

查看访问
在这里插入图片描述

启动grafana

docker run -d -p 3000:3000 --name=grafana grafana/grafana

查看访问
在这里插入图片描述

启动webhook-prometheus-dingtalk

首先获取钉钉告警机器人的webhook token
在这里插入图片描述
启动
注意:这里要改为 --ding.profile=“webhook1=自己复制的webhook

 docker run -d --restart always -p 8060:8060 timonwong/prometheus-webhook-dingtalk:v0.3.0 --ding.profile="webhook1=复制的webhook"

启动alertmanager

       在启动alertmanager之前,可以自己编写一个alertmanager.yml文件,然后使用卷挂载到该容器内部。

# 创建挂载目录
mkdir /opt/alertmanager
cd /opt/alertmanager/
# 编写该文件
vim alertmanager.yml

alertmanager.yml

global:
  resolve_timeout: 5m

route: # 告警路由配置,定义如何处理和发送告警
  receiver: webhook
  group_wait: 30s
  group_interval: 1m
  repeat_interval: 4h
  group_by: [alertname]
  routes:
  - receiver: webhook
    group_wait: 10s

receivers: # 告警接收者配置,定义如何处理和发送告警
- name: webhook
  webhook_configs:
  - url: http://121.43.108.111:8060/dingtalk/webhook1/send  # 告警 Webhook URL
    send_resolved: true # 是否发送已解决的告警。如果设置为 true,则在告警解决时发送通知

启动

docker run -d -p 9093:9093 -v /opt/alertmanager/:/etc/alertmanager/ --name alertmanager prom/alertmanager

查看访问
在这里插入图片描述

所有容器启动成功如下

在这里插入图片描述

将prometheus和alertmanager进行关联

在prometheus目录下新建一个rules.yml文件的告警规则

[root@iZbp16vhn64fpaj6qmsum0Z prometheus]# pwd
/opt/prometheus
[root@iZbp16vhn64fpaj6qmsum0Z prometheus]# cat rules.yml 
groups:
  - name: host_monitoring
    rules:
    - alert: 内存报警
      expr: netdata_system_ram_MiB_average{chart="system.ram",dimension="free",family="ram"} < 800
      for: 2m
      labels:
        team: node
      annotations:
        Alert_type: 内存报警
        Server: '{{$labels.instance}}'
        #summary: "{{$labels.instance}}: High Memory usage detected"
        explain: "内存使用量超过90%,目前剩余量为:{{ $value }}M"
        #description: "{{$labels.instance}}: Memory usage is above 80% (current value is: {{ $value }})"    - alert: CPU报警
      expr: netdata_system_cpu_percentage_average{chart="system.cpu",dimension="idle",family="cpu"} < 20      for: 2m
      labels:
        team: node
      annotations:
        Alert_type: CPU报警
        Server: '{{$labels.instance}}'
        explain: "CPU使用量超过80%,目前剩余量为:{{ $value }}"
        #summary: "{{$labels.instance}}: High CPU usage detected"
        #description: "{{$labels.instance}}: CPU usage is above 80% (current value is: {{ $value }})"
    - alert: 磁盘报警
      expr: netdata_disk_space_GiB_average{chart="disk_space._",dimension="avail",family="/"} < 4
      for: 2m
      labels:
        team: node
      annotations:
        Alert_type: 磁盘报警
        Server: '{{$labels.instance}}'
        explain: "磁盘使用量超过90%,目前剩余量为:{{ $value }}G"
    - alert: 服务告警
      expr: up == 0
      for: 2m
      labels:
        team: node
      annotations:
        Alert_type: 服务报警
        Server: '{{$labels.instance}}'
        explain: "netdata服务已关闭"

修改prometheus.yml文件,进行关联

[root@iZbp16vhn64fpaj6qmsum0Z prometheus]# pwd
/opt/prometheus
[root@iZbp16vhn64fpaj6qmsum0Z prometheus]# cat prometheus.yml 
global:
  scrape_interval:     60s
  evaluation_interval: 60s
# Alertmanager配置
alerting:
  alertmanagers:
    - static_configs:
        - targets: ["121.43.108.111:9093"]
# rule配置
rule_files:
  - "/etc/prometheus/rules.yml"
scrape_configs:
  - job_name: prometheus
    static_configs:
      - targets: ['121.43.108.111:9090']
        labels:
          instance: prometheus
  - job_name: linux
    static_configs:
      - targets: ['121.43.108.111:9100']
        labels:
          instance: localhost

注意:因为我们是使用挂载的方式将配置文件投射到容器中,相应的文件路径也要发生变化。
比如:rule_files: [“/etc/prometheus/rules.yml”] 的路径就要填写为容器内该文件存放的路径。

重新启动prometheus

docker restart prometheus的容器id

查看显示

在这里插入图片描述

测试

node-exporter所在的容器停掉,查看效果

docker stop node-exporter所在的容器id

node-exporter
在这里插入图片描述
alertmanager
在这里插入图片描述
在这里插入图片描述

钉钉查看告警

在这里插入图片描述

node-exporter所在的容器重启,查看效果

docker restart node-exporter所在的容器id

钉钉查看
在这里插入图片描述

结束

参考文章: 在这里

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

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

相关文章

NLP学习笔记十二-skip-gram模型求解

NLP学习笔记十一-skip-gram模型求解 上一篇文章&#xff0c;我们见到了skip-gram模型的原理&#xff0c;这里我们在陈述一下skip-gram模型其实是基于分布相似性原理来设计的&#xff0c;在skip-gram模型中&#xff0c;他认为一个词的内涵可以由他的上下文文本信息来概括&#…

AcWing 837. 连通块中点的数量

题目如下&#xff1a; 给定一个包含 n个点&#xff08;编号为 1∼ n&#xff09;的无向图&#xff0c;初始时图中没有边。 现在要进行 m 个操作&#xff0c;操作共有三种&#xff1a; C a b&#xff0c;在点 a和点 b之间连一条边&#xff0c;a 和 b 可能相等&#xff1b;Q1 …

【iMessage苹果日历推真机群控】使用虚拟化平台创建一个 macOS 虚拟机

PC 虚拟机上部署群控推送并模拟苹果 iMessage 推送消息是比较复杂的任务。由于苹果的 iMessage 服务是基于苹果设备和操作系统的&#xff0c;模拟 iMessage 推送需要考虑苹果的生态系统和安全机制。 以下是一种可能的方法&#xff0c;但请注意这是一个高级设置&#xff0c;需要…

chatgpt赋能python:Python编程中的放大代码技巧

Python 编程中的放大代码技巧 Python 是一门广泛应用于各个领域的编程语言。由于它易学易用、可移植性好、开发效率高等特点&#xff0c;使其在人工智能、大数据分析、网站开发等领域被广泛应用。在实际编程中&#xff0c;随着代码量的增加&#xff0c;需要更好地组织和管理代…

BFS 广度优先搜索

广度优先搜索BFS&#xff08;Breadth First Search&#xff09;也称为宽度优先搜索&#xff0c;它是一种先生成的结点先扩展的策略&#xff0c;类似于树的层次遍历。 在广度优先搜索算法中&#xff0c;解答树上结点的扩展是按它们在树中的层次进行的。首先生成第一层结点&#…

TS系列之keyof详解,示例

文章目录 前言一、keyof是什么总结 前言 如果你用过TS的工具类型&#xff0c;Partial、Required、Pick、Record。那么你可能看过他们内部实现都有共同点就是keyof关键字。即使没有见过&#xff0c;那么下面就一起来了解一下&#xff0c;keyof关键字的详细作用吧。 一、keyof是…

Filebeat详细介绍,下载和启动,日志读取和模块设置等

目录 Filebeat介绍为什么要用Filebeat&#xff1f;架构下载启动读取文件自定义字段输出到ElasticSearch Filebeat工作原理harvesterprospectorinput启动命令参数说明 部署Nginx读取Nginx中的配置文件Modulenginx module 配置配置filebeat测试错误1错误2 Filebeat 介绍 Filebe…

Java开发中的常见问题和解决方法:如何解决常见的性能和bug问题

章节一&#xff1a;引言 在Java开发中&#xff0c;我们经常会面临各种各样的问题&#xff0c;包括性能问题和Bug。这些问题可能会导致应用程序的运行变慢、不稳定甚至崩溃。本文将介绍一些常见的Java开发问题&#xff0c;并提供解决这些问题的方法和技巧&#xff0c;帮助开发人…

ElasticSearch集群8.0版本搭建、故障转移

目录 ElasticSearch集群集群节点搭建集群分片和副本 故障转移将data节点停止将master节点停止 分布式文档路由文档的写操作 搜索文档全文搜索搜索&#xff08;query&#xff09;取回 fetch ElasticSearch集群 集群节点 ELasticsearch的集群是由多个节点组成的&#xff0c;通过…

SSM学习记录9:SpringBoot整合SSM(注解方式)

SSM学习记录9&#xff1a;SpringBoot整合SSM&#xff08;注解方式&#xff09; 1.首先创建新项目&#xff0c;选择Spring Initializr&#xff0c;type为Maven 2.接着依赖选择Spring Web 3.无需繁琐配置&#xff0c;即可运行编写的controller类 启动SpringBootDemoApplication↓…

利用人工智能模型学习Python爬虫

爬虫是一种按照一定的规则&#xff0c;自动地抓取万维网信息的程序或者脚本。 网络爬虫(又称为网页蜘蛛&#xff0c;网络机器人)是其中一种类型。 爬虫可以自动化浏览网络中的信息&#xff0c;当然浏览信息的时候需要按照我们制定的规则进行&#xff0c;这些规则我们称之为网络…

UE4/5样条线学习(一):基础的样条线使用

目录 效果展示&#xff1a; 制作&#xff1a; 组件 逻辑 效果展示&#xff1a; 注&#xff1a;按住alt拉轴可以拉出多一个点 制作&#xff1a; 第一步我们创建一个蓝图&#xff0c;命名为BP_Sline&#xff1a; 组件 之后我们开始找组件&#xff0c;输入bill&#xff0c;我…

使用 docker 创建 mongodb 副本集, 和调整副本集优先级

mongod 本地创建副本集 mongod --port 27017 --dbpath /srv/mongodb/db0 --replSet rs0 --bind_ip localhost,<hostname(s)|ip address(es)> –dbpath 指向数据存放地址 –replSet 后面为 副本集的名。 rs.initiate() 启动新的副本集 rs.conf() 查看副本集的配置 rs.stat…

chatgpt赋能python:Python实现多关键词搜索PDF文件

Python实现多关键词搜索PDF文件 概述 在今天的数字化社会中&#xff0c;很多信息都以数字化的形式存储在PDF文件中。这让我们在搜索特定信息时面临很多挑战&#xff0c;特别是当我们需要同时搜索多个PDF文件并集中检索这些文件时。 在这篇文章中&#xff0c;我们将介绍如何使…

HTTP协议,带你了解HTTP协议

目录 1、HTTP 协议介绍 2、HTTP 协议的工作过程 HTTP 协议的工作过程可以分为以下几个步骤&#xff1a; 3、Fiddler 抓包工具介绍 3.1 抓包工具的使用 3.2 抓包结果 3.3 抓包工具原理 4、HTTP 协议格式总览 5、HTTP 请求&#xff08;Request&#xff09; 5.1 认识 URL…

Seata分布式事务实现

docker方式搭建seata-server(推荐) 参考官方文档: 使用 Docker 部署 Seata Server docker run -d --name seata-server -p 8091:8091 -p 7091:7091 seataio/seata-server:1.6.1 根据版本情况使用不同版本的镜像: https://github.com/alibaba/spring-cloud-alibaba/wiki/%E7…

算法拾遗三十三Morris遍历

算法拾遗三十三Morris遍历 常规二叉树遍历Morris遍历Morris遍历判断是否是搜索二叉树给定一颗二叉树的头节点head&#xff0c;求以head为头的树中&#xff0c;最小深度是多少&#xff1f; 常规二叉树遍历 public static class Node {public int value;Node left;Node right;pub…

UE4/5样条线学习(二):样条网格体组件的使用

目录 效果展示&#xff1a; 制作&#xff1a; 效果展示&#xff1a; 制作&#xff1a; 前面的步骤和之前的UE4/5样条线学习&#xff08;一&#xff09;&#xff1a;基础的样条线使用_多方通行8的博客-CSDN博客是一样的。 创建一个actor蓝图&#xff0c;然后一个公告板组件&…

Redis Lua脚本书写

目录 1. 级联缓存值 1.1 级联缓存session及相关信息 lua脚本语句 redis运行示例 2. 级联查询 2.1 级联查询session lua脚本语句 redis运行示例 3. 级联更新 3.1 级联更新accountId对应的用户信息 lua脚本 redis运行示例 4. 级联续期 4.1 刷新session时级联续期 lu…

嵌入式数据库之sqlite3

一、数据库基本概念 数据&#xff1a;能够输入计算机并能被计算机程序识别和处理的信息集合。 数据库&#xff1a;数据库是在数据库管理系统管理和控制之下&#xff0c;存放在存储介质上的数据集合。 二、常用的数据库 1.大型数据库 Oracle公司是最早开发关系数据库的厂商之一…