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

 

目录

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

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

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

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


 

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

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

前言 

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

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

什么是Prometheus 

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

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

具体流程:

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的友好支持,各种工具帮助你构建更加炫酷的数据可视化。

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

Grafana特点 

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

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

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

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

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

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

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

实时效果反馈

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

A 监控链路

B 监控微服务运行状况

C 监控服务调用情况

D 以上都是错误

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

A 服务网关

B 服务注册

C 监控报警

D 服务熔断 

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

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

Prometheus下载 

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

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

解压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

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

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

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

下载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

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

Grafana datasouce配置 

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

进入到Data Sources配置页面 

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

添加监控数据源配置 

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

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

配置Prometheus地址 

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

保存配置

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

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

点击左侧import按钮 

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

配置Grafana模板

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

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

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

选择数据源对象 

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

进入DashBoard 

就可以查看JVM监控大盘了

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

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

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

创建工程cloud-provider-prometheus-payment8001 

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

引入以来 


   io.micrometer
   micrometer-registry-prometheus

修改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 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

查看微服务大盘

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

 

你可能感兴趣的:(Spring全家桶,运维,spring,cloud,后端,java)