当前位置: 代码迷 >> 综合 >> Prometheus + Grafana 构建服务器监控系统
  详细解决方案

Prometheus + Grafana 构建服务器监控系统

热度:59   发布时间:2023-12-09 10:23:18.0

首先我们先了解一下它能监控什么。

按理说任何你想监控的数据都能监控,关键是怎么合理展示,数据展示是由 Grafana 来完成的,不同的场景需要展示的数据是不一样的,也就是说你需要根据自己的需求定制 Grafana 的页面展示,比如以下是一个 Mysql Overview 的面板展示。
在这里插入图片描述
那显然,这个面板没法应用在服务器的性能监控上,在 Garafana 中面板的样式是可以通过json文件配置的,在 https://github.com/percona/grafana-dashboards 中提供了一些常用的场景下的展示面板,下载下来导入即可使用。

目前提供了以下面板:
Disk Performance
Disk Space
MongoDB Cluster Summary
MongoDB Overview
MongoDB ReplSet
MongoDB RocksDB
MongoDB WiredTiger
MongoDB MMAPv1
MongoDB InMemory
Node Overview
MySQL InnoDB Metrics
MySQL InnoDB Metrics Advanced
MySQL InnoDB Compression
MySQL MyISAM/Aria Metrics
MySQL Overview
MySQL Performance Schema
MySQL Query Response Time
MySQL Replication
MySQL Table Statistics
MySQL User Statistics
MySQL Command Handler Counters Compare
PXC/Galera Cluster Overview
PXC/Galera Graphs
VictoriaMetrics
ProxySQL Overview
Summary Dashboard
System Overview
Trends Dashboard

实际上 Grafana 官方提供了更加丰富的面板 https://grafana.com/grafana/dashboards

有了面板之后就应该有数据源,就需要安装 Prometheus 程序了,它其实是一个代理服务,它不产生数据,它只是按照自己的规则存储和提供数据展示,它自带时间序列化数据库,就是将数据打上标签,以时间维度存储。

所以还需要一些采集数据的节点,就是 exporter 服务,它应该安装在要监控的目标服务器上,用以采集需要的指标数据。并暴露一个 HTTP 端口供 Prometheus 来访问获取数据。并且此 exporter 提供的数据格式应该和面板要匹配的。

基于此,网上提供了常用的 exporter 供下载 https://prometheus.io/download/ 。

blackbox_exporter
consul_exporter
graphite_exporter
haproxy_exporter
memcached_exporter
mysqld_exporter
node_exporter
statsd_exporter

数据流转方式如下:
exporter 采集数据 --> Prometheus 存储 --> Grafana 展示数据

对应关系
1、明确使用场景,也就是你要监控哪种数据。
2、找到符合此场景的 Dashboard 。
3、找到符合此 Dashboard 的数据源 exporter 。
4、将他们关联起来。

关于更详细的操作指南
https://www.jianshu.com/p/413fd42ae660
https://blog.csdn.net/hfut_wowo/article/details/78536022