基于Prometheus和Grafana的现代服务器监控体系构建
构建一个基于 Prometheus 和 Grafana 的现代服务器监控体系涉及多个步骤。以下是大体的流程和步骤说明:
1. Prometheus 监控系统
Prometheus 是一个开源的系统监控和报警工具,专门设计用于抓取时间序列数据。
1.1 Prometheus 的安装
-
Docker 安装 Prometheus
docker run -d --name=prometheus -p 9090:9090 prom/prometheus -
手动安装 你可以从 Prometheus 官方网站 下载并安装适合操作系统的二进制文件。
1.2 Prometheus 配置
Prometheus 使用 prometheus.yml 文件进行配置。主要包括要抓取的目标服务器(targets)配置。
global:scrape_interval: 15s # 抓取数据的间隔时间scrape_configs:- job_name: 'node_exporter'static_configs:- targets: ['<your-server-ip>:9100'] # Node Exporter 部署的服务器
1.3 安装 Node Exporter(用于监控 Linux 系统)
Node Exporter 是 Prometheus 的一个代理,用于采集 Linux 服务器的各种硬件、系统数据。
-
Docker 安装 Node Exporter
docker run -d --name=node-exporter -p 9100:9100 prom/node-exporter -
手动安装 从 Node Exporter 官网 下载并安装。
Node Exporter 默认监听 :9100 端口,Prometheus 将从这个端口抓取服务器的 CPU、内存、磁盘、网络等信息。
2. Grafana 可视化工具
Grafana 是一个开源的分析和监控平台,通常与 Prometheus 搭配使用。
2.1 Grafana 安装
-
Docker 安装 Grafana
docker run -d --name=grafana -p 3000:3000 grafana/grafana -
手动安装 你可以从 Grafana 官方网站 下载并安装。
2.2 配置 Grafana 连接 Prometheus
- 登录 Grafana(默认账号/密码:
admin/admin)。 - 添加数据源:
- 导航到
Configuration > Data Sources > Add data source - 选择
Prometheus - 在 URL 中输入 Prometheus 的地址(如
http://<your-server-ip>:9090)
- 导航到
- 点击
Save & Test,确保连接成功。
2.3 导入仪表板(Dashboards)
Grafana 提供了丰富的现成仪表板,可以直接导入用于监控服务器。
- 在
Create > Import页面,输入 Prometheus 相关的 Dashboard ID,例如:1860(Node Exporter Full),点击加载。 - 选择刚才配置的 Prometheus 数据源,导入后即可查看服务器监控信息。
3. Prometheus 告警机制(Alertmanager)
Prometheus 还支持告警功能,结合 Alertmanager 可以在服务器出现问题时发出通知。
3.1 安装 Alertmanager
-
Docker 安装
docker run -d --name=alertmanager -p 9093:9093 prom/alertmanager -
配置 Prometheus 告警 修改
prometheus.yml文件,添加 Alertmanager 的配置:alerting:alertmanagers:- static_configs:- targets: ['localhost:9093']rule_files:- "alert.rules.yml" # 告警规则文件
3.2 定义告警规则
创建一个告警规则文件 alert.rules.yml,用于定义在特定条件下触发告警。
groups:
- name: examplerules:- alert: HighCPUUsageexpr: node_cpu_seconds_total > 0.85for: 1mlabels:severity: criticalannotations:summary: "High CPU Usage Detected"description: "CPU usage is above 85% for more than 1 minute."
Alertmanager 可以与邮件、Slack、PagerDuty 等多种通知渠道集成,帮助你快速响应问题。
4. 完成监控体系
一旦配置完成,你就可以通过 Prometheus 来采集服务器的监控数据,并通过 Grafana 进行可视化展示。同时,还可以通过告警系统来实时获知系统出现的异常状况,保证服务器的健康运行。
参考图形架构
- Prometheus 采集数据
- Node Exporter 作为服务器上的代理提供数据
- Grafana 用于展示数据
- Alertmanager 用于处理告警
这一体系可以根据实际需要进行扩展,监控多个服务或微服务系统。
相关文章:
基于Prometheus和Grafana的现代服务器监控体系构建
构建一个基于 Prometheus 和 Grafana 的现代服务器监控体系涉及多个步骤。以下是大体的流程和步骤说明: 1. Prometheus 监控系统 Prometheus 是一个开源的系统监控和报警工具,专门设计用于抓取时间序列数据。 1.1 Prometheus 的安装 Docker 安装 Prom…...
原生 input 中的 “type=file“ 上传文件
目标:实现文件上传功能 原型图: HTML部分: <div class"invoice-item"><div class"invoice-title">增值税专用发票</div><div class"invoice-box"><el-form-item label"标准…...
【Unity新闻】Unity的产品命名变化
快速回顾一下Unity产品命名的调整。 在2023年 Unity就宣布版本命名的变化,将使用Unity 6作为最新版本的命名。 具体的规则,在论坛里进行了说明。 以后正式的LTS版本就是Unity 6,将在2024年末发布。 而不管是之前的Runtime费还是今天的费用…...
《PostMan(一):配置全局令牌》
文章目录 一、配置全局token1、设置2、添加全局3、添加全局变量名称4、选中全局,并查看5、添加赋值脚本6、配置令牌取值7、即可成功获取用户信息 一、配置全局token 1、设置 2、添加全局 3、添加全局变量名称 4、选中全局,并查看 5、添加赋值脚本 // 把…...
如何理解Configurational entropy
Configurational entropy 是热力学和统计力学中的一个重要概念,它描述的是系统中由于其微观状态排列(即配置)导致的不确定性或混乱程度。不同于热力学中的热熵(thermal entropy),它特指那些与系统中的粒子、…...
H5端接入萤石监控
官方文档 EZOPEN协议 下滑至-平台架构 web/h5端使用文档 <template><div :id"video-container${index}${index2}" class"w-full bg-black"></div> </template><script>export default {data() {return {EZVIZAToken:…...
SSD1306 OLED显示屏驱动方案简介
SSD1306是一种常见的单色OLED(有机发光二极管)显示屏驱动芯片。以下从它的基本特点、工作原理和应用领域进行详细介绍: 一、基本特点 1. 尺寸与分辨率: SSD1306芯片支持多种尺寸的OLED显示屏,常见的有0.96寸、1.3寸等。不同尺寸的屏幕具有不…...
React18快速入门
需要先安装并配置React相关的工具和插件 下载安装Node.js,这里以MacOS Node.js v22.6.0为例 终端命令行检查是否安装成功 node -v npm -vNode.js快速入门 npm设置镜像源 #设置为阿里镜像源 npm config set registry https://registry.npmmirror.com #查看是否生…...
Day11笔记-字典基本使用系统功能字典推导式
二、字典【重点掌握】 1.概念 列表和元组的使用缺点:当存储的数据要动态添加、删除的时候,我们一般使用列表,但是列表有时会遇到一些麻烦,定位元素比较麻烦 # 一个列表/元组保存5个学生的成绩, score_list [66,100,70,78,99] sc…...
Ribbon (WPF)
Ribbon (WPF) 在本文中主要包含以下内容: Ribbon组件和功能应用程序菜单快速访问工具栏增强的工具提示 Ribbon是一个命令栏,它将应用程序的功能组织到应用程序窗口顶部的一系列选项卡中。Ribbon用户界面(UI)增加了特性和功能的可发现性,使用…...
解锁编程潜力,从掌握GitHub开始
目录: 一、搜索开源项目 1、什么是Git 2、Github常用词含义 3、一个完整的项目界面 4、使用Github搜索项目 1)in关键词 2)star或fork数量去查找 3)awesome加强搜索 二、访问速度慢的解决 1、使用网易UU加速器 2、使用…...
HTML转义字符对照表
HTML特殊字符转义对照表一 字符十进制转义字符字符十进制转义字符""&&<<<à>>>不断开空格 ?¡¡Ááâ⢢¢ˆ£££&…...
【zabbix监控软件(配置及常用键值)】
监控软件–zabbix 同类产品:nagios、cacti 简介:能够部署企业级监控平台。 监控范围 1)zabbix SNMP 监控网络设备 防火墙、交换机 2)zabbix agent 监控 服务器:raid插槽 CPU 内存插槽 温度 风扇 操作系统࿱…...
98、RS485全自动收发电路入坑笔记
因为RS485采用叉分信号,只支持半双工。正常的RS485芯片驱动电路是需要GPIO来切换发送和接收模式。如下图所示,一般的RS485电平转换芯片都有RE/DE脚,用来切换收发模式。 例如这篇推荐:芯片RS485自动收发电路常见问题与应对策略 但…...
单机快速部署开源、免费的分布式任务调度系统——Apache DolphinScheduler
本文主要为大家介绍Apache DolphinScheduler的单机部署方式,方便大家快速体验。 环境准备 需要Java环境,这是一个老生常谈的问题,关于Java环境的安装与配置期望大家都可以熟练掌握。 验证java环境 java -version 下载安装包并解压 使用wg…...
【运维监控】Prometheus+grafana监控zookeeper运行情况
运维监控系列文章入口:【运维监控】系列文章汇总索引 文章目录 一、prometheus二、grafana三、prometheus集成grafana监控zookeeper1、修改zookeeper配置2、修改prometheus配置3、导入grafana模板4、验证 本示例通过zookeeper自带的监控信息暴露出来,然后…...
【C++二分查找】2560. 打家劫舍 IV
本文涉及的基础知识点 C二分查找 LeetCode2560. 打家劫舍 IV 沿街有一排连续的房屋。每间房屋内都藏有一定的现金。现在有一位小偷计划从这些房屋中窃取现金。 由于相邻的房屋装有相互连通的防盗系统,所以小偷 不会窃取相邻的房屋 。 小偷的 窃取能力 定义为他在…...
位段、枚举、联合
位段 在一个结构体中以位(最小单位)为单位来指定其成员所占的内存长度。位段成员名后面有一个冒号,冒号后有一个数字(这个数字是小于等于这个成员所占的位)。 typedef struct S {char a : 2;//8char b : 8;//8char c …...
golang学习笔记15——golang依赖管理方法
推荐学习文档 golang应用级os框架,欢迎star基于golang开发的一款超有个性的旅游计划app经历golang实战大纲golang优秀开发常用开源库汇总golang学习笔记01——基本数据类型golang学习笔记02——gin框架及基本原理golang学习笔记03——gin框架的核心数据结构golang学…...
Linux 挂载磁盘与开机自动挂载操作指南
Linux 挂载磁盘与开机自动挂载操作指南 文章目录 Linux 挂载磁盘与开机自动挂载操作指南一 挂载磁盘1 查看硬盘信息2 新增数据盘执行分区3 新建分区4 创建一个主分区5 分区编号6 初始磁柱编号7 截止磁柱编号8 查看新建分区信息9 分区结果写入10 新分区同步操作系统11 设置新分区…...
eNSP-Cloud(实现本地电脑与eNSP内设备之间通信)
说明: 想象一下,你正在用eNSP搭建一个虚拟的网络世界,里面有虚拟的路由器、交换机、电脑(PC)等等。这些设备都在你的电脑里面“运行”,它们之间可以互相通信,就像一个封闭的小王国。 但是&#…...
使用VSCode开发Django指南
使用VSCode开发Django指南 一、概述 Django 是一个高级 Python 框架,专为快速、安全和可扩展的 Web 开发而设计。Django 包含对 URL 路由、页面模板和数据处理的丰富支持。 本文将创建一个简单的 Django 应用,其中包含三个使用通用基本模板的页面。在此…...
微信小程序云开发平台MySQL的连接方式
注:微信小程序云开发平台指的是腾讯云开发 先给结论:微信小程序云开发平台的MySQL,无法通过获取数据库连接信息的方式进行连接,连接只能通过云开发的SDK连接,具体要参考官方文档: 为什么? 因为…...
MySQL用户和授权
开放MySQL白名单 可以通过iptables-save命令确认对应客户端ip是否可以访问MySQL服务: test: # iptables-save | grep 3306 -A mp_srv_whitelist -s 172.16.14.102/32 -p tcp -m tcp --dport 3306 -j ACCEPT -A mp_srv_whitelist -s 172.16.4.16/32 -p tcp -m tcp -…...
MySQL JOIN 表过多的优化思路
当 MySQL 查询涉及大量表 JOIN 时,性能会显著下降。以下是优化思路和简易实现方法: 一、核心优化思路 减少 JOIN 数量 数据冗余:添加必要的冗余字段(如订单表直接存储用户名)合并表:将频繁关联的小表合并成…...
MySQL 8.0 事务全面讲解
以下是一个结合两次回答的 MySQL 8.0 事务全面讲解,涵盖了事务的核心概念、操作示例、失败回滚、隔离级别、事务性 DDL 和 XA 事务等内容,并修正了查看隔离级别的命令。 MySQL 8.0 事务全面讲解 一、事务的核心概念(ACID) 事务是…...
适应性Java用于现代 API:REST、GraphQL 和事件驱动
在快速发展的软件开发领域,REST、GraphQL 和事件驱动架构等新的 API 标准对于构建可扩展、高效的系统至关重要。Java 在现代 API 方面以其在企业应用中的稳定性而闻名,不断适应这些现代范式的需求。随着不断发展的生态系统,Java 在现代 API 方…...
uniapp 小程序 学习(一)
利用Hbuilder 创建项目 运行到内置浏览器看效果 下载微信小程序 安装到Hbuilder 下载地址 :开发者工具默认安装 设置服务端口号 在Hbuilder中设置微信小程序 配置 找到运行设置,将微信开发者工具放入到Hbuilder中, 打开后出现 如下 bug 解…...
Linux部署私有文件管理系统MinIO
最近需要用到一个文件管理服务,但是又不想花钱,所以就想着自己搭建一个,刚好我们用的一个开源框架已经集成了MinIO,所以就选了这个 我这边对文件服务性能要求不是太高,单机版就可以 安装非常简单,几个命令就…...
vue3 daterange正则踩坑
<el-form-item label"空置时间" prop"vacantTime"> <el-date-picker v-model"form.vacantTime" type"daterange" start-placeholder"开始日期" end-placeholder"结束日期" clearable :editable"fal…...
