Spring Cloud【为什么需要监控系统、Prometheus环境搭建、Grafana环境搭建 、微服务应用接入监控 】(十七)

 

目录

全方位的监控告警系统_为什么需要监控系统

全方位的监控告警系统_Prometheus环境搭建

全方位的监控告警系统_Grafana环境搭建 

全方位的监控告警系统_微服务应用接入监控 


 

全方位的监控告警系统_为什么需要监控系统

前言 

一个服务上线了后,你想知道这个服务是否可用,需要监控。假如线上出故障了,你要先于顾客感知错误,你需要监控。等等各层面的监控。

 

什么是Prometheus 

Prometheus 是一套开源的系统监控报警框架。

具体流程:

1、Prometheus Server 用于定时抓取数据指标(metrics)、存储时间序列数据(TSDB)

2、Jobs/exporte 收集被监控端数据并暴露指标给Prometheus

3、Pushgateway 监控端的数据会用push的方式主动传给此组件,随后被Prometheus 服务定时pull此组件数据即可

4、Alertmanager 报警组件,可以通过邮箱、微信等方式

5、Web UI 用于多样的UI展示,一般为Grafana

6、还有一些例如配置自动发现目标的小组件和后端存储组件 

Prometheus的特点 

1、多维度数据模型。

2、灵活的查询语言。

3、不依赖分布式存储,单个服务器节点是自主的。

4、通过基于HTTP的pull方式采集时序数据。

5、可以通过中间网关进行时序列数据推送。

6、通过服务发现或者静态配置来发现目标服务对象。

7、支持多种多样的图表和界面展示,比如Grafana等。

Grafana介绍 

Grafana是一个跨平台的开源的度量分析和可视化工具,可以通过将采集的数据查询然后可视化的展示。Grafana提供了对prometheus的友好支持,各种工具帮助你构建更加炫酷的数据可视化。

 

Grafana特点 

1、可视化:快速和灵活的客户端图形具有多种选项。面板插件为许多不同的方式可视化指标和日志。

2、报警:可视化地为最重要的指标定义警报规则。Grafana将持续评估它们,并发送通知。

3、通知:警报更改状态时,它会发出通知。接收电子邮件通知。

4、动态仪表盘:使用模板变量创建动态和可重用的仪表板,这些模板变量作为下拉菜单出现在仪表板顶部。

5、混合数据源:在同一个图中混合不同的数据源!可以根据每个查询指定数据源。这甚至适用于自定义数据源。

6、注释:注释来自不同数据源图表。将鼠标悬停在事件上可以显示完整的事件元数据和标记。

7、过滤器:过滤器允许您动态创建新的键/值过滤器,这些过滤器将自动应用于使用该数据源的所有查询。

实时效果反馈

1.全方位的监控告警系统主要作用____。

A 监控链路

B 监控微服务运行状况

C 监控服务调用情况

D 以上都是错误

2.Prometheus 是一套开源的系统____框架。

A 服务网关

B 服务注册

C 监控报警

D 服务熔断 

全方位的监控告警系统_Prometheus环境搭建

Prometheus下载 

Prometheus下载地址:https://prometheus.io/download 

 

解压Prometheus 

tar -zxvf prometheus-2.34.0-rc.1.linux-amd64.tar.gz -C /usr/local

Prometheus启动服务 

运行,指定prometheus.yml配置文件

./prometheus --config.file=prometheus.yml

Prometheus关闭服务

pgrep -f prometheus

Prometheus验证

启动后在浏览器中访问:http://192.168.66.101:3000/,用户名密码默认都是admin

 

全方位的监控告警系统_Grafana环境搭建 

下载Grafana镜像 

docker pull grafana/grafana-enterprise

运行Grafana镜像

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

Grafana验证

启动后在浏览器中访问:http://192.168.66.101:3000/,用户名密码默认都是admin

 

Grafana datasouce配置 

进入到Data Sources配置页面 

添加监控数据源配置 

点击add data souce按钮,进入添加监控数据源配置页面,数据源类型选择Prometheus(因为Grafana UI的数据来源于 Prometheus)

 

配置Prometheus地址 

保存配置

填写URL后,点击页面最下方的save & Test按钮 

点击左侧import按钮 

配置Grafana模板

在输入框中填写12856,然后点击load。12856是Grafana模板ID,

更多模板请参考:https://grafana.com/grafana/dashboards 

 

选择数据源对象 

进入DashBoard 

就可以查看JVM监控大盘了

全方位的监控告警系统_微服务应用接入监控 

创建工程cloud-provider-prometheus-payment8001 

引入以来 

<dependency>
   <groupId>io.micrometer</groupId>
   <artifactId>micrometer-registry-prometheus</artifactId>
</dependency>

修改application.yml配置文件

management:
 endpoints:
   web:
     exposure:
       include: '*'
 endpoint:
   health:
     show-details: ALWAYS
 metrics:
   tags:
     application: ${spring.application.name}

注意:

management.endpoints.web.exposure.include=* 配置为开启 Actuator 服务,因为Spring Boot Actuator 会自动配置一个 URL 为 /actuator/Prometheus 的 HTTP 服务来供 Prometheus 抓取数据,不过默认该服务是关闭的,该配置将打开所有的 Actuator 服务。 management.metrics.tags.application 配置会将该工程应用名称添加到Grafana UI,方便后边根据应用名称来区分不同的服务。

修改主启动类 

@EnableEurekaClient
@SpringBootApplication
@Slf4j
public class PaymentMain8001 {
    public static void main(String[] args) {
      SpringApplication.run(PaymentMain8001.class,args);
        log.info("***********PaymentMain8001服务启动成功 ******* ");
   }
    @Bean
    MeterRegistryCustomizer<MeterRegistry> configurer(@Value("${spring.application.name }") String applicationName) {
        return registry -> registry.config().commonTags("application", applicationName);
   }
}

关闭Prometheus服务

因为 Prometheus 是一个 Unix 二进制程序,我们可以向 Prometheus 进程发送 SIGTERM 关闭信号。

使用 pgrep -f prometheus 找到运行的 Prometheus 进程号

使用 kill -9 1234 来关闭 

修改prometheus.yml配置文件 

 - job_name: "payment-provider"
   scrape_interval: 5s
   metrics_path: "/actuator/prometheus/"
   static_configs:
     - targets: ["192.168.66.10:8001"]

启动Prometheus服务

./prometheus --config.file=prometheus.yml

查看微服务大盘

 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Leetcode 114. 二叉树展开为链表

题目描述 题目链接&#xff1a;https://leetcode.cn/problems/flatten-binary-tree-to-linked-list/description/ 思路 先序遍历展开后的单链表应该同样使用 TreeNode &#xff0c;其中 right 子指针指向链表中下一个结点&#xff0c;而左子指针始终为 null 。 List list …

Oracle 迁移 Hive 过程中遇到的问题总结

前言 最近一个小伙伴在做从 Oracle 到 Hive 的业务迁移工作,在迁移过程中属实遇到了一些坑,今天就来汇总一下这些坑,避免以后大家其他业务迁移的时候再出现类似的问题,即使出现了也可以拿过来进行对照解决。 问题1:Distinct window functions are not supported: count(…

shell 脚本通过 dumpsys SurfaceFlinger --latency 数据计算 FPS 和评价流畅度。

目录 前言&#xff1a; 开篇前述&#xff1a; 一、设计初衷 二、设定预期倒推查找解决方案 设计实现部分 一、确定数据来源原因&#xff08;dumpsys SurfaceFlinger --latency&#xff09; 二、根据需求确定计算规则 三、代码实现 四、监控数据可视化交互结果设计 前言…

ES6基础知识二:ES6中数组新增了哪些扩展?

一、扩展运算符的应用 ES6通过扩展元素符…&#xff0c;好比 rest 参数的逆运算&#xff0c;将一个数组转为用逗号分隔的参数序列 console.log(...[1, 2, 3]) // 1 2 3console.log(1, ...[2, 3, 4], 5) // 1 2 3 4 5[...document.querySelectorAll(div)] // [<div>, &l…

APISIX 安全评估

背景 有大佬已经对 [apisix攻击面](https://ricterz.me/posts/2021-07-05-apache-apisix-attack- surface-research.txt)做过总结。 本文记录一下自己之前的评估过程。 分析过程 评估哪些模块&#xff1f; 首先我需要知道要评估啥&#xff0c;就像搞渗透时&#xff0c;我得…

Websocket协议-http协议-tcp协议区别和相同点

通讯形式 单工通讯-数据只能单向传送一方来发送数据&#xff0c;另一方来接收数据 半双工通讯-数据能双向传送但不能同时双向传送 全双工通讯-数据能够同时双向传送和接受 注&#xff1a;http的通讯方式是分版本 http1.0&#xff1a;单工。因为是短连接&#xff0c;客户端…

【设计模式——学习笔记】23种设计模式——建造者模式Builder(原理讲解+应用场景介绍+案例介绍+Java代码实现)

介绍 建造者模式又叫生成器模式&#xff0c;是一种对象构建模式。它可以将复杂对象的建造过程抽象出来(抽象类别)&#xff0c;使这个抽象过程的不同实现方法可以构造出不同属性的对象建造者模式是一步一步创建一个复杂的对象&#xff0c;它允许用户只通过指定复杂对象的类型和…

C 程序 运算符

文章目录 1、算术运算符2、关系运算符3、逻辑运算符4、位运算符5、赋值运算符6、杂项运算符 ↦ sizeof & 三元7、运算符优先级 1、算术运算符 #include <stdio.h>int main() {int a 21;int b 10;int c ;c a b;printf("Line 1 - c 的值是 %d\n", c );c …

【mac系统】mac系统调整妙控鼠标速度

当下环境&#xff1a; mac系统版本&#xff0c;其他系统应该也可以&#xff0c;大家可以自行试下&#xff1a; 鼠标 mac妙控鼠标&#xff0c;型号A1657 问题描述&#xff1a; 通过mac系统自带的鼠标速度调节按钮&#xff0c;调到最大后还是感觉移动速度哦过慢 问题解决&…

Cesium态势标绘专题-矩形(标绘+编辑)

标绘专题介绍:态势标绘专题介绍_总要学点什么的博客-CSDN博客 入口文件:Cesium态势标绘专题-入口_总要学点什么的博客-CSDN博客 辅助文件:Cesium态势标绘专题-辅助文件_总要学点什么的博客-CSDN博客 本专题没有废话,只有代码,代码中涉及到的引入文件方法,从上面三个链…

网站实现下载apk安装包

目录 1、背景说明2、效果图3、具体实现3.1 界面代码3.2 js代码 4、说明4.1 存在异常4.2 解决方案 5、参考资料 1、背景说明 有时需要将写好的apk安装包在局域网内部进行发布&#xff0c;具体实现非常简单&#xff0c;如下所示 2、效果图 进入到网站后&#xff0c;点击下载按…

STM32MP157驱动开发——按键驱动(tasklet)

文章目录 “tasklet”机制&#xff1a;内核函数定义 tasklet使能/ 禁止 tasklet调度 tasklet删除 tasklet tasklet软中断方式的按键驱动程序(stm32mp157)tasklet使用方法&#xff1a;button_test.cgpio_key_drv.cMakefile修改设备树文件编译测试 “tasklet”机制&#xff1a; …

Stable Diffusion服务环境搭建(远程服务版)

Stable Diffusion服务环境搭建&#xff08;远程服务版&#xff09; Stable Diffusion是什么 Stable diffusion是一个基于Latent Diffusion Models&#xff08;潜在扩散模型&#xff0c;LDMs&#xff09;的文图生成&#xff08;text-to-image&#xff09;模型。具体来说&#…

学生公寓报修管理系统的设计与实现(论文+源码)_kaic

摘 要 随着科技的发展&#xff0c;信息化的管理手段早以在人们生活的各个方面取代了传统的管理手段&#xff0c;以先进管理理念为基础的现代化信息管理系统已经成为了许多机构的必备工具。在如今大学的校园里&#xff0c;有着许许多多的信息化管理系统&#xff0c;如图书管理系…

前端面试题汇总大全!

文章目录 前端面试题汇总大全&#xff08;含答案超详细&#xff09;-- 持续更新一、HTML 篇1.xhtml和html有什么区别2.行内元素有哪些&#xff1f;块级元素有哪些&#xff1f; 空(void)元素有那些&#xff1f;行内元素和块级元素有什么区别3. 简述一下你对 HTML 语义化的理解&a…

【数学建模】为什么存在最优策略?

一、说明 在进行优化回归过程&#xff0c;首先要看看是否存在最优策略&#xff1f; 在有限马尔可夫决策过程 &#xff08;MDP&#xff09; 中&#xff0c;最优策略被定义为同时最大化所有状态值的策略。换句话说&#xff0c;如果存在最优策略&#xff0c;则最大化状态 s 值的策…

组件化开发复习

1.vue的根组件使用 // 1.创建appconst app Vue.createApp({// data: option apidata() {return {message: "Hello Vue",counter: 0,counter2: 0,content: ""}},watch: {content(newValue) {console.log("content:", newValue)}}}) createApp 函…

【升职加薪秘籍】我在服务监控方面的实践(3)-机器监控

大家好,我是蓝胖子&#xff0c;关于性能分析的视频和文章我也大大小小出了有一二十篇了&#xff0c;算是已经有了一个系列&#xff0c;之前的代码已经上传到github.com/HobbyBear/performance-analyze&#xff0c;接下来这段时间我将在之前内容的基础上&#xff0c;结合自己在公…

C语言---动态内存管理

C语言—动态内存管理 文章目录 C语言---动态内存管理1. 为什么要进行动态内存分配1.1 动态内存管理所在的区域 2. 动态内存函数的介绍2.1 malloc2.1.1 malloc语法2.1.2 malloc具体实例 2.2 free2.2.1 free语法2.2.2 free具体实例 2.3 calloc2.3.1 calloc语法2.3.2 calloc具体实…

42. 接雨水

题目介绍 给定 n 个非负整数表示每个宽度为 1 的柱子的高度图&#xff0c;计算按此排列的柱子&#xff0c;下雨之后能接多少雨水。 示例 1&#xff1a; 输入&#xff1a;height [0,1,0,2,1,0,1,3,2,1,2,1] 输出&#xff1a;6 解释&#xff1a;上面是由数组 [0,1,0,2,1,0,1,3…