简介
- Prometheus是一套开源的监控+预警+时间序列数据库的组合,Prometheus本身不具备收集监控数据功能,通过获取不同的export收集的数据,存储到时序数据库中。
- Grafana是一个跨平台的开源的分析和可视化工具,将采集过来的数据实现可视化展示。
- node_export是Prometheus的一个export,主要是用来收集服务器硬件资源使用情况的。
一般是grafana、Prometheus会独立部署在一台机器上,node_export则被部署在被监控的服务器上,收集被监控的服务器资源数据,给Prometheus,然后再通过grafana展示出来。
安装docker
安装docker可看我的文章docker+jmeter+influxdb+granfana
安装prometheus
- 拉取镜像
我这里指定版本v2.48.0,如果不指定版本则会下载最新版本
docker pull prom/prometheus:v2.48.0
- 创建容器prometheus同时启动,命名为prom-1
docker run -d -p9090:9090 --name prom-1 prom/prometheus:v2.48.0
- 浏览器访问,验证是否成功
在浏览器输入IP:端口
安装node_exporter
- 拉取镜像
我这里是指定版本,如果不指定版本则拉取最新的
docker pull prom/node-exporter:v1.7.0
- 创建容器同时启动
docker run -d -p 9100:9100 --name prom-node prom/node-exporter:v1.7.0
- 浏览器访问,验证是否成功
在浏览器输入IP:端口
配置Prometheus+node_exporter
- 将名为prom-1的Docker容器中复制/etc/prometheus/prometheus.yml文件到当前工作目录
docker cp prom-1:/etc/prometheus/prometheus.yml $PWD
- 修改当前目录的prometheus.yml文件
scrape_configs:
- job_name: prometheus
static_configs:
- targets: ['localhost:9090']
labels:
instance: prometheus
- job_name: linux
static_configs:
- targets: ['被监控的服务器ip:9100']
labels:
instance: localhost
注意 :添加多个监控服务器时,可以在中括号中,用逗号分隔写多个
- 把修改后的Prometheus配置文件拷贝到容器中
docker cp $PWD/prometheus.yml prom-1:/etc/prometheus/prometheus.yml
- 重启Prometheus容器
docker restart prom-1
- 测试是否配置成功,在浏览器输入Prometheus所在IP:端口,在prometheus中查看,刚刚配置的主机的state显示UP则配置成功。