prometheus
Prometheus 是一个开源的服务监控系统和时序数据库,它提供了通用的数据模型和快捷的数据采集、存储和查询接口。
- 监控和告警框架
- 时序数据库(TSDB)
特点
- 多维数据模型,由指标名称和键/值对标识的时间序列数据。
- 灵活的查询语言 PromQL。
- 不依赖分布式存储,单个服务器节点是自主的。
- 通过基于HTTP的pull方式采集时序数据。
- 可以通过中间网关(Pushgateway)进行时序列数据推送。
- 通过服务发现或者静态配置来发现目标服务对象。
- 支持多种多样的图表和界面展示,比如Grafana等
Grafana:是一个跨平台的开源的度量分析和可视化工具,可以将采集的数据可视化的展示,并及时通知给告警接收方。其官方库中具有丰富的仪表盘插件。
核心组件
- Prometheus Server(用于抓取数据和存储时序数据)
- client libraries(用于对接 Prometheus Server)
- push gateway(用于批量,短期的监控数据的汇总节点)
- exporters(例如 node_exporter, MongoDB exporter 等)(用于各种汇报数据)
- alertmanager(用于告警通知管理)
工作流程
- Prometheus server 定期从配置好的 jobs 或者 exporters 中拉取 metrics,或者接收来自 Pushgateway 发送过来的metrics,或者从其它的 Prometheus server 中拉取 metrics。
- Prometheus server 在本地存储收集到的 metrics,并运行定义好的 alerts.rules,记录新的时间序列或者向 Alert manager 推送警报。
- Alertmanager 根据配置文件,对接收到的警报进行处理,发出告警。
- 在图形界面中,可视化采集数据。
安装prometheus
brew install prometheus
启动
brew services start prometheus
访问
http://localhost:9090
效果
安装grafana
brew install grafana
启动
brew services start grafana
访问
http://localhost:3000
效果
默认账号密码:admin/admin
添加prometheus数据源
- Configuration
- Add data source
- Prometheus