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

Prometheus+Grafana

一、Prometheus

获取配置文件

docker run -d -p 9090:9090 --name prometheus prom/prometheus
mkdir -p /app/prometheus
docker cp prometheus:/etc/prometheus/prometheus.yml /app/prometheus/prometheus.yml

停止并删除旧的容器,重新启动

docker run -d --name prometheus -p 9090:9090 -v /app/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml prom/prometheus

访问prometheus

http://XX.xx.xx.xx:9090

二、Grafana

看板ID

https://grafana.com/grafana/dashboards/4701-jvm-micrometer/

设置grafana映射文件夹

mkdir -p /app/grafana
chmod 777 -R /app/grafana

启动

 docker run -d -p 3000:3000 --name=grafana  -v /app/grafana:/var/lib/grafana grafana/grafana

默认密码admin admin

三、引入node-exporter监控服务器

docker run -d --name node-exporter -p 9100:9100 \-v /etc/localtime:/etc/localtime -v /etc/timezone:/etc/timezone \prom/node-exporter

将node-exporter服务暴露公网的ip和端口(内网ip也可以) 配置到Prometheus的prometheus.yml文件中

  - job_name: 'linux'static_configs:- targets: ['106.54.220.184:9100']

重启容器,查看Prometheus
在这里插入图片描述

看板:Node Exporter Dashboard 220413 ConsulManager自动同步版

在这里插入图片描述

四、引入mysqld-exporter监控Mysql

在监控的mysql创建只能读取数据的用户,使用该用户登录返回数据库信息

CREATE USER 'mysqlexporter'@'106.54.220.184' IDENTIFIED BY 'mysqlexporter' WITH MAX_USER_CONNECTIONS 3;
GRANT PROCESS, REPLICATION CLIENT, SELECT ON *.* TO 'mysqlexporter'@'106.54.220.184';
flush privileges;

启动Mysql监听

docker run -d --name mysql-exporter -p 9104:9104 -e DATA_SOURCE_NAME="用户名:密码@(ip:3306)/mysql" prom/mysqld-exporter
docker run -d --name mysql-exporter -p 9104:9104 -e DATA_SOURCE_NAME="mysqlexporter:mysqlexporter@(ip:3306)/mysql" prom/mysqld-exporter

将mysqld-exporter服务暴露公网的ip和端口(内网ip也可以) 配置到Prometheus的prometheus.yml文件中

 - job_name: 'mysql'static_configs:- targets: ['ip:9104']

查看普罗米修斯 是否新增了监听
在这里插入图片描述
在Grafana配置Prometheus数据源

Configuration -> Data Sources ->add data source -> Prometheus
Create import Mysql看板ID:8919

在这里插入图片描述
在这里插入图片描述

五、Springboot引入prometheus监测Jvm

应用引入prometheus依赖

        <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-actuator</artifactId></dependency><dependency><groupId>io.micrometer</groupId><artifactId>micrometer-registry-prometheus</artifactId><scope>runtime</scope></dependency>

修改配置文件

#prometheus监控平台配置
management:endpoint:metrics:enabled: true #支持metricsprometheus:enabled: true #支持Prometheusmetrics:export:prometheus:enabled: truetags:application: ruoyi-dev #实例名采集endpoints:web:exposure:include: '*' #开放所有端口

配置发送资源接口放行
在这里插入图片描述
如果应用有app应用上下文,加入上下文/api

curl --request GET --url http://106.54.220.184:8080/api/actuator/prometheus

默认的话

curl --request GET --url http://ip:端口/actuator/prometheus

在这里插入图片描述
配置到prometheus监听

  - job_name: "ruoyi-dev"# metrics_path defaults to '/metrics'# scheme defaults to 'http'.metrics_path: /api/actuator/prometheusstatic_configs:- targets: ["106.54.220.184:8080"]

在这里插入图片描述

备份prometheus.yml默认配置

# my global config
global:scrape_interval: 15s # Set the scrape interval to every 15 seconds. Default is every 1 minute.evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute.# scrape_timeout is set to the global default (10s).# Alertmanager configuration
alerting:alertmanagers:- static_configs:- targets:# - alertmanager:9093# Load rules once and periodically evaluate them according to the global 'evaluation_interval'.
rule_files:# - "first_rules.yml"# - "second_rules.yml"# A scrape configuration containing exactly one endpoint to scrape:
# Here it's Prometheus itself.
scrape_configs:# The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.- job_name: "prometheus"# metrics_path defaults to '/metrics'# scheme defaults to 'http'.# 监测本机普罗米修斯static_configs:- targets: ["localhost:9090"]# 监测Linux	  - job_name: 'Linux-184'static_configs:- targets: ['106.54.220.184:9100'] # 监测Mysql	  - job_name: "MySQL-184"static_configs:- targets: ["106.54.220.184:9104"]# 监测Jvm- job_name: "ruoyi-dev"metrics_path: /api/actuator/prometheusstatic_configs:- targets: ["106.54.220.184:8080"]

相关文章:

Prometheus+Grafana

一、Prometheus 获取配置文件 docker run -d -p 9090:9090 --name prometheus prom/prometheusmkdir -p /app/prometheusdocker cp prometheus:/etc/prometheus/prometheus.yml /app/prometheus/prometheus.yml停止并删除旧的容器&#xff0c;重新启动 docker run -d --name…...

CoCa论文笔记

摘要 计算机视觉任务中&#xff0c;探索大规模预训练基础模型具有重要意义&#xff0c;因为这些模型可以可以极快地迁移到下游任务中。本文提出的CoCa&#xff08;Contrastive Captioner&#xff09;&#xff0c;一个极简设计&#xff0c;结合对比损失和captioning损失预训练一…...

uniapp 微信小程ios端键盘弹起后导致页面无法滚动

项目业务逻辑和出现的问题整理 新增页面 用户可以主动添加输入文本框 添加多了就会导致当前页面出现滚动条,这就导致ios端滚动页面的时候去点击输入框键盘抬起再关闭的时候去滚动页面发现页面滚动不了(偶尔出现),经过多次测试发现是键盘抬起的时候 主动向上滑动 100%出现这种问…...

三维模型优势在哪里?如何提升产品自身商业价值?

不少企业、商家都开始使用VR全景展示来宣传推广自己的产品、活动等&#xff0c;虽说VR全景的沉浸式体验&#xff0c;相比于图片、视频而言有着无法取代的优势&#xff0c;但是也不能忘了VR全景另一个大优势&#xff0c;那就是丰富多样的互动性。3D模型展示让产品展示和体验不再…...

WheatA 轻量级生态数据软件

无论是在工作还是上学期间&#xff0c;大家想要做一个科研项目或者市场调查时&#xff0c;往往需要大量的数据用于分析总结&#xff0c;这时获得优质的数据就显得额外重要&#xff0c;数据的优劣往往决定了项目结果的好坏。数据来源的主要渠道主要有两种&#xff1a;无非是去数…...

2127. 参加会议的最多员工数 : 啥是内向/外向基环树(拓扑排序)

题目描述 这是 LeetCode 上的 「2127. 参加会议的最多员工数」 &#xff0c;难度为 「困难」。 Tag : 「拓扑排序」、「内向基环树」、「图」 一个公司准备组织一场会议&#xff0c;邀请名单上有 n 位员工。 公司准备了一张圆形的桌子&#xff0c;可以坐下任意数目的员工。 员工…...

Qt入门日记1

目录 1.Qt简介和案例 2.第一个Qt程序 3.学会查看帮助文档 4.创建一个按钮 5.对象树简介 6.Qt的坐标系 7. 信号和槽 7.1自定义信号和槽 7.2信号连接信号 7.3拓展 7.4Qt4版本以前的connect 1.Qt简介和案例 Qt是一个跨平台的C图形用户界面应用程序框架(就是一个库吧…...

SpringBoot_第七章(读写分离)

这里列举了三种读写分离实现方案,分别是如下三种 1&#xff1a;MybatisPlus&#xff08;读写分离&#xff09; 1.1&#xff1a;首先创建三个数据库1主2从 表名是user表 1.2&#xff1a;代码实例 1&#xff1a;导入pom <!--MybatisPlus的jar 3.0基于jdk8--><depend…...

linux下mysql-8.2.0集群部署(python版本要在2.7以上)

目录 一、三台主机准备工作 1、mysql官方下载地址&#xff1a;https://dev.mysql.com/downloads/ 2、修改/etc/hosts 3、关闭防火墙 二、三台主机安装mysql-8.2.0 1、解压 2、下载相应配置 3、初始化mysql&#xff0c;启动myslq&#xff0c;设置开机自启 4、查看初始密…...

40 深度学习(四):卷积神经网络|深度可分离卷积|colab和kaggle的基础使用

文章目录 卷积神经网络为什么要卷积卷积的具体流程池化tensorflow代码 深度可分离卷积原理介绍计算量对比代码参数计算例子 colab 和 kagglecolabkaggle如何在colab上使用kaggle的数据 卷积神经网络 卷积神经网络的基本结构 1&#xff1a; (卷积层(可选)池化层) * N全连接层 *…...

Spring Boot面向切面加注解

一.项目pom.xml文件引入切面依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-aop</artifactId> </dependency>二.定义注解类 import java.lang.annotation.*;/*** desc 错误日志注解* au…...

uniapp小程序授权统一处理

1.使用 1.将工具代码引入到utils中 const authorize (scope, isOne false, isMust false) > {if (!scope || !authorizeObj[scope]) {return console.error(请传输需要获取权限的 scope&#xff0c;详见,https://uniapp.dcloud.net.cn/api/other/authorize.html#scope-…...

光学仿真|优化汽车内部照明体验

当我们谈论优化人类感知的内部照明时&#xff0c;我们实际上指的是两个重点领域&#xff1a;安全性和驾驶员体验。如果内部照明可以提供尽可能最佳的体验&#xff0c;驾驶员则能够更好地应对颇具挑战性或意外的驾驶状况&#xff0c;并且减轻疲劳感。除了功能优势外&#xff0c;…...

Spring XML使用CASE WHEN处理SELECT字段

在日常开发中&#xff0c;经常会碰到需要导出的情况。而一些枚举值或者状态一般是定义成整型&#xff0c;这个时候需要对数据进行转换&#xff0c;转换成对应的文本再导出。 在XML中用CASE WHEN来根据不同的查询结果做不同的处理。 比如 SELECT name AS 姓名, age AS 年龄 C…...

关于C#中使用多线程的讨论

关于C#中使用多线程的讨论 C# 中 Thread 调用的函数有返回值 没有输入应该如何解决 如果你想在一个新的线程中调用一个带返回值但没有输入参数的函数,可以使用 Thread 类的委托 ThreadStart 来创建一个新的线程,并在其中调用该函数。然后,你可以使用 Thread 类的 Join 方法…...

工程机械数字孪生可视化平台建设,推动大型装备智能化数字化转型升级

随着信息技术的迅猛发展&#xff0c;数字孪生技术作为一项新兴技术应运而生。数字孪生是指通过数学模型和仿真技术&#xff0c;将实际物理对象与其数字化虚拟模型相互关联&#xff0c;实现对物理对象的全生命周期管理和智能优化。在工程机械领域&#xff0c;巨蟹数科从数字孪生…...

Linux 网络流量监控利器 iftop命令详解及实战

简介 iftop 是什么 在 Linux 系统下即时监控服务器的网络带宽使用情况&#xff0c;有很多工具&#xff0c;比如 iptraf、nethogs 等等&#xff0c;但是推荐使用小巧但功能很强大的 iftop 工具。 iftop 是 Linux 系统一个免费的网卡实时流量监控工具&#xff0c;类似于 top 命令…...

protected by SourceGuardian and requires a SourceGuardian loader ‘ixed.8解决方案

php相关问题 安装程序提示以下内容 遇到某些php程序的安装提示&#xff1a; PHP script ‘/www/wwwroot/zhengban.youyacao.com/install/index.php’ is protected by SourceGuardian and requires a SourceGuardian loader ‘ixed.8.1.lin’ to be installed. 1) Click her…...

KWin、libdrm、DRM从上到下全过程 —— drmModeAddFBxxx(14)

接前一篇文章:KWin、libdrm、DRM从上到下全过程 —— drmModeAddFBxxx(13) 上一回讲完了drivers/gpu/drm/drm_framebuffer.c中的framebuffer_check函数中的第一个for循环,本回继续讲解framebuffer_check()接下来的代码。为了便于理解,再次贴出其源码,如下所示: static …...

2023-macOS下安装anaconda,终端自动会出现(base)字样,如何取消

2023-macOS下安装anaconda&#xff0c;终端自动会出现(base)字样&#xff0c;如何取消 安装后&#xff0c;我们再打开终端&#xff0c;就会自动出现了&#xff08;base&#xff09; 就会出现这样子的&#xff0c;让人头大&#xff0c; 所以我们要解决它 具体原因是 安装了anac…...

手把手教你复现ownCloud高危漏洞CVE-2023-49103:从环境搭建到信息泄露验证

从零构建ownCloud漏洞靶场&#xff1a;CVE-2023-49103深度复现指南 当开源云存储系统ownCloud的graphapi组件暴露出PHP环境信息时&#xff0c;意味着什么&#xff1f;想象一下&#xff0c;攻击者通过一个未公开的URL路径&#xff0c;就能获取数据库密码、邮件服务器凭证甚至加密…...

别再为GEO数据注释发愁了!三种方法(TXT/Soft/R包)保姆级代码对比与避坑指南

GEO数据注释实战&#xff1a;TXT/Soft/R包三大方法深度解析与避坑手册 每次处理GEO数据时&#xff0c;注释环节总像一场未知的冒险——你永远不知道下一个报错会在哪行代码等着你。作为生物信息学分析的关键第一步&#xff0c;注释质量直接决定了后续差异分析、功能富集等结果的…...

不用精确模型也能控?手把手教你用Matlab实现MFAC控制算法(附完整代码)

零基础实现MFAC控制&#xff1a;Matlab实战指南与参数调优全解析 在控制工程实践中&#xff0c;我们常常遇到这样的困境&#xff1a;面对一个复杂的非线性系统&#xff08;比如实验室里的倒立摆或者工厂中的液位控制装置&#xff09;&#xff0c;传统的PID控制效果不佳&#xf…...

Using Vulkan -- Atomics

原子操作的类型变体 想要更好地理解各类相关扩展&#xff0c;首先需要了解 Vulkan 提供的不同原子操作类型&#xff0c;主要分为以下维度&#xff1a; 数据类型 floatint 位宽 16 bit32 bit64 bit 操作类型 加载&#xff08;loads&#xff09;存储&#xff08;stores&am…...

无网环境部署:OpenClaw离线安装Qwen3-14B镜像指南

无网环境部署&#xff1a;OpenClaw离线安装Qwen3-14B镜像指南 1. 为什么需要离线部署方案 在金融、政务等对数据安全要求极高的领域&#xff0c;服务器通常运行在严格的Air-gap环境&#xff08;物理隔离网络&#xff09;中。去年我在某金融机构做POC时&#xff0c;就遇到了这…...

虚拟列表原理与实现,并在 Vue 项目场景中怎么实现

这是前端面试里的中高频题&#xff0c;尤其是你简历里如果写了&#xff1a;长列表优化大数据量渲染性能优化表格优化Vue 项目优化那几乎很容易被问到。这道题如果只回答&#xff1a;“虚拟列表就是只渲染可视区域的数据。”这个回答方向没错&#xff0c;但太浅。 如果你能讲到&…...

如何用Bubblewrap CLI创建你的第一个Trusted Web Activity项目

如何用Bubblewrap CLI创建你的第一个Trusted Web Activity项目 【免费下载链接】bubblewrap Bubblewrap is a Command Line Interface (CLI) that helps developers to create a Project for an Android application that launches an existing Progressive Web App (PWAs) usi…...

OmX Hooks完全指南:轻松扩展你的AI助手功能

OmX Hooks完全指南&#xff1a;轻松扩展你的AI助手功能 【免费下载链接】oh-my-codex OmX - Oh My codeX: Your codex is not alone. Add hooks, agent teams, HUDs, and so much more. 项目地址: https://gitcode.com/GitHub_Trending/oh/oh-my-codex OmX&#xff08;O…...

保姆级教程:在Ubuntu 20.04上从零搭建AFL++模糊测试环境(含QEMU模式配置与常见报错解决)

从零构建AFL模糊测试环境&#xff1a;Ubuntu 20.04实战手册与深度排错指南 模糊测试作为现代软件安全领域的核心技术之一&#xff0c;正在重新定义漏洞挖掘的效率和深度。当传统人工审计难以应对日益复杂的代码规模时&#xff0c;AFL以其智能化的变异策略和精准的路径追踪能力&…...

微信小程序使用websocket调用大模型返回逐字显示的结果

页面展示&#xff1a;小程序代码&#xff1a; aichat.js:const config require(../../utils/config.js); Page({data: {messages: [],inputText: ,isLoading: false,scrollToId: scroll-bottom,currentStreamingId: null,isConnecting: false,isReceiving: false,socketOpen: …...