prometheus是开源的监控解决方案。他的监控侧重于云原生应用,例容器、k8s集群。prometheus通过各种各样的exporter去监控各种metric指标数据。
(本期目标:docker部署prometheus,添加常见exproter并且在grafana中导入可视化模板。)
docker环境的准备,怎么切换到国内镜像仓库源,提升镜像下载速度。小伙伴可以自行去查找其他博客进行学习。
这里我们拉取Prometheus
、node-exporter
、mysqld-exporter
、cadvisor
镜像并且启动他们。
docker pull prom/node-exporter
docker pull prom/mysqld-exporter
docker pull google/cadvisor
docker pull prom/prometheus
docker pull grafana/grafana
docker run -d --name node-exporter --restart=always -p 9100:9100 -v "/proc:/host/proc:ro" -v "/sys:/host/sys:ro" -v "/:/rootfs:ro" prom/node-exporter
容器启动后可通过访问http://ip:9100/metrics
查看指标。
docker run -d --name mysqld_exporter --restart=always -p 9104:9104 -e DATA_SOURCE_NAME="root:Password123@(172.17.0.2:3306)/" prom/mysqld-exporter
容器启动后可通过访问http://ip:9104/metrics
查看指标。
docker run -v /:/rootfs:ro -v /var/run:/var/run:rw -v /sys:/sys:ro -v /var/lib/docker/:/var/lib/docker:ro -v /dev/disk/:/dev/disk:ro -p 8080:8080 -d --name=cadvisor --restart=always google/cadvisor:latest
容器启动后可通过访问http://ip:8080/metrics
查看指标。
prometheus容器启动前需要配置前面三个exporter的网络信息。因为同属于docker网络。我们可以通过docker inspect containerid
来查看上面三个容器的IP,将三个exporter注册进prometheus里。
mkdir /opt/prometheus
cd /opt/prometheus/
vim prometheus.yml
下面贴出我的prometheus.yml
配置文件:
global:
scrape_interval: 60s
evaluation_interval: 60s
scrape_configs:
- job_name: prometheus
static_configs:
- targets: ['localhost:9090']
labels:
instance: prometheus
- job_name: linux
static_configs:
- targets: ['172.17.0.3:9100']
labels:
instance: localhost
- job_name: cadvisor
static_configs:
- targets: ['172.17.0.5:8080']
labels:
instance: cAdvisor
- job_name: mysqld
static_configs:
- targets: ['172.17.0.4:9104']
labels:
instance: mysql-exporter
使用下面命令启动prometheus容器:
docker run -d --name prometheus --restart=always -p 9090:9090 -v /opt/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml prom/prometheus
访问http://ip:9090/targets
,可以看到我们起来的几个exporter:
创建grafana数据目录:
mkdir /opt/grafana-storage
chmod 777 -R /opt/grafana-storage
下面启动grafana容器:
docker run -d --name grafana --restart=always -p 3000:3000 --name=grafana -v /opt/grafana-storage:/var/lib/grafana grafana/grafana
容器启动后可通过访问http://ip:3000
访问grafana,初始账号为admin/admin
,第一次登录后会需要你修改密码。
这里我们选择数据源为prometheus
这里我给出我的配置参考:
主要注意URL的填写,我这里填写的是prometheus容器内网地址。大家可以使用docker inspect containerid
进行查看。
8919、179分别是虚拟机监控仪表盘和容器监控仪表盘,输入数字后load。
修改名称、选择你的prometheus数据源再import即可。