Prometheus介绍

一、Prometheus介绍

Prometheus是一个开源的系统监控和报警系统,现在已经加入到CNCF基金会,成为继k8s之后第二个在CNCF托管的项目,在kubernetes容器管理系统中,通常会搭配prometheus进行监控,同时也支持多种exporter采集数据,还支持pushgateway进行数据上报,Prometheus性能足够支撑上万台规模的集群。

一、Grafana介绍

Grafana是一个跨平台的开源的度量分析和可视化工具,可以通过将采集的数据查询然后可视化的展示,并及时通知。它主要有以下六大特点:

1、展示方式:快速灵活的客户端图表,面板插件有许多不同方式的可视化指标和日志,官方库中具有丰富的仪表盘插件,比如热图、折线图、图表等多种展示方式;

2、数据源:Graphite,InfluxDB,OpenTSDB,Prometheus,Elasticsearch,CloudWatch和KairosDB等;

3、通知提醒:以可视方式定义最重要指标的警报规则,Grafana将不断计算并发送通知,在数据达到阈值时通过Slack、PagerDuty等获得通知;

4、混合展示:在同一图表中混合使用不同的数据源,可以基于每个查询指定数据源,甚至自定义数据源;

5、注释:使用来自不同数据源的丰富事件注释图表,将鼠标悬停在事件上会显示完整的事件元数据和标记;

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

操作步骤 :

1.增加依赖

需要监控的服务增加如下依赖 

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

由于 spring cloud alibaba 也引入了 prometheus 的 jar 但版本较低,需要再 env-common-bom 统一覆盖低版本

<dependency>
<groupId>io.prometheus</groupId>
<artifactId>simpleclient</artifactId>
<version>0.10.0</version>
</dependency>

特别说明: 加入相关 jar 后,重新编译项目 mvn clean install ,不然 prometheus 端点 404

配置相关文件

配置暴露相关端点 nacos/application-dev.yml

management:
metrics.export.prometheus.enabled: true
endpoints:
enabled-by-default: false
web.exposure.include: '*'
endpoint:
metrics:
enabled: true
prometheus:
enabled: true
health:
show-details: ALWAYS


启动 prometheus

Prometheus 是一套优秀的开源的监控、报警和时间序列数据库组合系统,在现在最常见的 Kubernetes 容器管理系统中,通常会搭配 Prometheus 进行监控。

准备配置文件 prometheus.yml:

scrape_configs:
- job_name: 'env'
scrape_interval: 15s
scrape_timeout: 10s
metrics_path: '/actuator/prometheus'
static_configs:
# 监控目标服务的IP 根据实际情况来
- targets: ['192.16.1.198:9000']

docker 一键启动

docker run -d -p 9090:9090 -v /prometheus.yml:/etc/prometheus/prometheus.yml prom/prometheus --config.file=/etc/prometheus/prometheus.yml

成功启动后,就可以打开网页查看了,并且能图形化展示,URL 为 http://宿主机:9090/

prometheus+grafana 监控使用_数据源


启动 Grafana

Grafana 是一个开源的度量分析与可视化套件,纯 JavaScript 开发的前端工具,通过访问库(如 InfluxDB),展示自定义报表、显示图表等。它的 UI 十分灵活,有丰富的插件和模板,功能强大。一般用在时序数据的监控方面。

docker 一键启动

# 运行实例
docker run -d -p 3090:3000 grafana/grafana

访问 IP:3090 配置添加数据源

prometheus+grafana 监控使用_docker_02

prometheus+grafana 监控使用_数据_03

导入监控模板,输入模板 ID: 13625

prometheus+grafana 监控使用_数据_04

效果截图

prometheus+grafana 监控使用_docker_05