Prometheus
发布于2021-06-15 21:28:09,更新于2022-10-25 22:29:21,标签:java 文章会持续修订,转载请注明来源地址:https://meethigher.top/blogPrometheus监控系统
一、概述
常见监控系统
- mrtg
- cacti
- ntop
- nagios
- centreon
- ganglia
- open-falcon:小米公司开发
- zabbix
- prometheus
Prometheus是Go语言开发的一套开源监控、报警、时间序列数据库的组合。适合监控Docker容器。
因为Kubernetes(俗称K8S)的流行带动了Prometheus的发展。
时间序列数据:按照时间顺序记录系统、设备状态变化的数据。
应用场景
- 无人驾驶汽车行驶记录,如经度、纬度、速度、方向
- 证券行业实时交易数据
- 实时运维监控数据
基于时间序列数据特点
- 性能好
- 存储成本低
Prometheus的特征
- 多维度数据模型
- 灵活的查询语言
- 不依赖分布式存储,单个服务器节点是自主的
- 以HTTP方式,通过pull模型拉取时间序列数据
- 通过中间网关支持push模型
- 支持多种多样的图表和界面展示
架构图
二、入门
2.1 环境准备
准备三台服务器
- grafana服务器
- prometheus服务器
- 被监控服务器
2.2 安装prometheus
1 | wget https://github.com/prometheus/prometheus/releases/download/v2.27.1/prometheus-2.27.1.linux-amd64.tar.gz |
解压
1 | tar -zxvf prometheus-2.27.1.linux-amd64.tar.gz |
移动
1 | mv prometheus-2.27.1.linux-amd64.tar.gz /opt/module/prometheus |
启动
1 | ./prometheus --config.file="prometheus.yml" |
通过ip地址:9090访问界面
查看监控目标
通过prometheus查看cpu监控
为了避免时区的混乱,prometheus所有的组件内部都强制使用Unix时间,对外展示使用UTC时间。
采用Grafana可以避免这个问题。
三、监控Linux主机
3.1 安装
1 | wget https://github.com/prometheus/node_exporter/releases/download/v1.1.2/node_exporter-1.1.2.linux-amd64.tar.gz |
解压
1 | tar -zxvf node_exporter-1.1.2.linux-amd64.tar.gz |
移动
1 | mv node_exporter-1.1.2.linux-amd64.tar.gz /opt/module/node_exporter |
启动
1 | nohup ./node_exporter & |
查看是否执行成功,看端口是否被占用
1 | ss -naltp|grep 9100 |
输入ip:端口号/metrics
查看监控数据
3.2 添加prometheus监控
修改配置文件
1 | scrape_configs: |
四、Grafana界面
4.1 安装
1 | wget https://dl.grafana.com/oss/release/grafana-8.0.2-1.x86_64.rpm |
启动
1 | systemctl start grafana-server |
查看启动结果
1 | ss -naltp|grep 3000 |
4.2 使用
ip地址:3000
进行登录,默认用户名和密码都是admin
4.3 添加prometheus的数据源
添加数据源
做图形展示
点击+号,选择dashboard,添加监控1分钟、15分钟的负载情况
进行保存
打赏