开源监控系统Prometheus基本介绍及应用展示
Prometheus是一个Google开源的服务监控系统,它通过HTTP协议收集服务数据并存储在本地的时序数据库上。
作为新一代的监控系统,Prometheus具有以下特点:
-
多维数据模型:时间序列由指标名称定义和键/值设置;
-
PromSQL:一种灵活的查询语言,可以利用多维数据完成复杂的查询;
-
不依赖分布式存储,单节点即可运行;
-
基于HTTP的Pull方式采集时间序列数据;
-
通过中间网关支持推送时间序列
-
通过服务发现或静态配置发现目标
-
丰富的图形及仪表盘显示支持
Prometheus架构
Prometheus根据配置定时去拉取各个节点的数据,也可以使用中间网关Pushgateway的方式进行数据push,实际使用的过程通常使用exporter(如mysqld_exporter、redis_exporter等)将metrics时序数据暴露给普罗米修斯。Alertmanager用于告警,Web UI展示通常使用Grafana。
Prometheus数据模型
Prometheus采集到的监控数据均以metric指标)形式保存在时序数据库TSDB中。
metric格式:
<metric name>{<label name>=<label value>, ...}
示例:
api_http_requests_total{method="GET", handler="/index"}
指标是“api_http_requests_total”,表示通过GET方法请求首页API的总数。
安装方法
Prometheus
docker pull prom/prometheus docker run --name prometheus -d -p 127.0.0.1:9090:9090 prom/prometheus
Grafana
docker pull grafana/grafana docker run -d --name=grafana -p 3000:3000 grafana/grafana
Grafana将Prometheus作为数据来源,配合强大的Dashboard功能,就能为我们提供立体式的监控。
通过这套开源的系统,我们就能轻松完成对Nginx、MySQL、Redis等日常服务的监控。
扫码关注我的公众号,获取最新文章!