Docker搭建Prometheus监控系统
简述
对比zabbix,个人更喜欢prometheus。简单快捷,zabbix过重。 1. 安装prometheus收集数据和存储时间序列(TSDB) 2. 在目标机器上安装node-exporter提供metrics 数据给prometheus 3. 安装grafana 展示数据
目录结构
.
├── docker-compose.yml
├── exporter
│ ├── node_exporter
│ └── up.sh
└── prometheus
└── prometheus.yml
目标机器安装 Node Exporter
下载
wget https://github.com/prometheus/node_exporter/releases/download/v0.18.1/node_exporter-0.18.1.linux-amd64.tar.gz
tar zxvf *.gz
进入node exporter目录,创建一个启动脚本 “up.sh” ,开放端口 9101 。
脚本内容如下
nohup ./node_exporter --web.listen-address=":9101" >/dev/null 2>&1 &
启动 Node exporter
./up.sh
Prometheus 监控配置
编辑 prometheus.yml 文件 放在 prometheus目录下
global:
scrape_interval: 5s
scrape_configs:
- job_name: 'prometheus'
static_configs:
- targets: ['prometheus:9090'] #同时监控服务本身
- job_name: 'linux-exporter'
metrics_path: /metrics
static_configs:
- targets: ['localhost:9101'] #node ip以及端口
Docker安装 Prometheus 和 Grafana
docker-compose.yml 文件
version: '3'
services:
prometheus:
image: prom/prometheus
container_name: prometheus
environment:
TZ: Europe/Paris
restart: always
ports:
- "9090:9090"
volumes:
- ./prometheus:/etc/prometheus
- prometheus-data:/prometheus
command:
- '--config.file=/etc/prometheus/prometheus.yml'
- '--storage.tsdb.path=/prometheus'
grafana:
image: grafana/grafana:latest
container_name: grafana
environment:
TZ: Europe/Paris
restart: always
ports:
- "3000:3000"
volumes:
- grafana-storage:/var/lib/grafana
volumes:
grafana-storage: {}
prometheus-data: {}
启动 docker-compose
docker-compose up -d
查看端口是否开放
nc -v ip地址 9090
配置Grafana
http://ip地址:3000 用户名密码 admin
添加数据源
http://ip地址:9090
导入一个好看的 dashborad ,可以去官网看 https://grafana.com/grafana/dashboards
http://ip地址:3000/dashboard/import
输入8919 点Load导入