docker搭建prometheus监控

介绍

prometheus是开源的监控解决方案。他的监控侧重于云原生应用,例容器、k8s集群。prometheus通过各种各样的exporter去监控各种metric指标数据。

(本期目标:docker部署prometheus,添加常见exproter并且在grafana中导入可视化模板。)

docker环境的准备,怎么切换到国内镜像仓库源,提升镜像下载速度。小伙伴可以自行去查找其他博客进行学习。

拉镜像

这里我们拉取Prometheusnode-exportermysqld-exportercadvisor镜像并且启动他们。

  • node-exporter:虚拟机监控的exporter,包括虚拟机cpu、内存使用情况等。
  • mysqld-exporter:mysql监控的exporter。
  • cadvisor:容器监控的exporter。
docker pull prom/node-exporter
docker pull prom/mysqld-exporter
docker pull google/cadvisor
docker pull prom/prometheus
docker pull grafana/grafana
起容器
  • node-exporter
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搭建prometheus监控_第1张图片

  • mysqld-exporter
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查看指标。

  • cadvisor
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

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:
docker搭建prometheus监控_第2张图片

  • grafana

创建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,第一次登录后会需要你修改密码。

配置grafana仪表盘
  • 配置数据源

这里我们选择数据源为prometheus
docker搭建prometheus监控_第3张图片
这里我给出我的配置参考:
docker搭建prometheus监控_第4张图片
主要注意URL的填写,我这里填写的是prometheus容器内网地址。大家可以使用docker inspect containerid进行查看。

  • 导入官方仪表盘

8919、179分别是虚拟机监控仪表盘和容器监控仪表盘,输入数字后load。docker搭建prometheus监控_第5张图片
docker搭建prometheus监控_第6张图片
修改名称、选择你的prometheus数据源再import即可。

监控效果查看

下面给出我的虚拟机和容器监控效果图如下:
docker搭建prometheus监控_第7张图片
docker搭建prometheus监控_第8张图片

你可能感兴趣的:(Linux运维,Docker,docker,prometheus)