1、拉取镜像

docker pull prom/node-exporter

docker pull prom/mysqld-exporter

docker pull google/cadvisor

docker pull prom/prometheus

docker pull grafana/grafana

2、启动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://192.168.1.143:9100/metrics

docker下载普罗米修斯 docker部署普罗米修斯_docker下载普罗米修斯

 

 

 

 

 

这些都是收集到数据,有了它就可以做宿主机Linux数据展示了

3、启动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://192.168.1.143:9104/metrics

 

docker下载普罗米修斯 docker部署普罗米修斯_服务器_02

 

 

 

这些都是收集到数据,有了它就可以做MySQL数据库数据展示了

4、启动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://192.168.1.143:8080/metrics

 

docker下载普罗米修斯 docker部署普罗米修斯_服务器_03

 

 

 

这些都是收集到数据,有了它就可以做Docker容器数据展示了

5、启动prometheus

新建目录prometheus,编辑配置文件prometheus.yml

mkdir /opt/prometheus
cd /opt/prometheus/
vim 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.2:9100']
        labels:
          instance: localhost
 
  - job_name: cadvisor
    static_configs:
      - targets: ['172.17.0.4:8080']
        labels:
          instance: cAdvisor
 
  - job_name: mysqld
    static_configs:
      - targets: ['172.17.0.3:9104']
        labels:
          instance: mysql-exporter

docker下载普罗米修斯 docker部署普罗米修斯_服务器_04

 

 

 

 

注意:修改IP地址,这里的172.17.0. xx就是docker容器内的私网,需要自行查询

6、启动prometheus

docker run  -d --name prometheus --restart=always -p 9090:9090 -v /opt/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml prom/prometheus

访问页面

http://192.168.1.143:9090/graph

 

docker下载普罗米修斯 docker部署普罗米修斯_服务器_05

 

 

 

访问targets,url如下

http://192.168.1.143:9090/targets

 

docker下载普罗米修斯 docker部署普罗米修斯_服务器_06

 

 

 

如果状态没有UP起来,等待一会,就会UP了

 

7、启动grafana

新建空文件夹grafana-storage,用来存储数据

 

mkdir /opt/grafana-storage

1

设置权限

 

chmod 777 -R /opt/grafana-storage

因为grafana用户会在这个目录写入文件,直接设置777,比较简单粗暴!

 

启动grafana:

docker run -d --name grafana --restart=always -p 3000:3000 --name=grafana -v /opt/grafana-storage:/var/lib/grafana grafana/grafana

访问页面:

http://192.168.1.143:3000/login

默认会先跳转到登录页面,默认的用户名和密码都是admin

 

docker下载普罗米修斯 docker部署普罗米修斯_docker下载普罗米修斯_07

 

 

 

 

登录之后,它会要求你重置密码。你还可以再输次admin密码!

 

docker下载普罗米修斯 docker部署普罗米修斯_linux_08

 

 

 

密码设置完成之后,就会跳转到首页

 

docker下载普罗米修斯 docker部署普罗米修斯_linux_09

 

 

 

点击Setting——Add data source,由于使用的是镜像方式,所以版本比较新。和网络上的文章展示的图片不一样

 

docker下载普罗米修斯 docker部署普罗米修斯_服务器_10

 

 

 

选择Prometheus

docker下载普罗米修斯 docker部署普罗米修斯_服务器_11

 

 

 

 

name名字写Prometheus

type 选择Prometheus,因为数据都从它那里获取

url 输入Prometheus的ip(docker容器私网ip)+端口

docker下载普罗米修斯 docker部署普罗米修斯_docker下载普罗米修斯_12

 

 

 

docker下载普罗米修斯 docker部署普罗米修斯_linux_13

 

 

可以看到容器的内网IP是172.17.0.5

 

往下翻

点击save&test

 

docker下载普罗米修斯 docker部署普罗米修斯_服务器_14

 

 

如果出现绿色的,说明ok了

 

docker下载普罗米修斯 docker部署普罗米修斯_服务器_15

 

 

回到首页,导入grafana监控模板

docker下载普罗米修斯 docker部署普罗米修斯_服务器_16

 

 

 

 

然后输入号和json

网址:https://grafana.com/grafana/dashboards

往下翻一下 点进去

 

docker下载普罗米修斯 docker部署普罗米修斯_docker_17

 

 

看到后,填入信息

 

docker下载普罗米修斯 docker部署普罗米修斯_docker_18

docker下载普罗米修斯 docker部署普罗米修斯_docker_19

 

 

 

 

 

 

 

然后点击Load

 

 

docker下载普罗米修斯 docker部署普罗米修斯_服务器_20

 

 

 

 

输入名字

下面选择普罗米修斯

点击important

 

 

展示如下:

 

docker下载普罗米修斯 docker部署普罗米修斯_docker下载普罗米修斯_21

 

 

仪表盘在这里

 

docker下载普罗米修斯 docker部署普罗米修斯_docker下载普罗米修斯_22

 

 

导入MySQL监控

https://grafana.com/grafana/dashboards

 

docker下载普罗米修斯 docker部署普罗米修斯_docker_23

 

 

 

 

 

 

导入容器的监控

https://grafana.com/grafana/dashboards/11558

docker下载普罗米修斯 docker部署普罗米修斯_linux_24

 

 

 

 

和上面导入方式一样

 

 

备注:因docker的网络模式是bridge,创建容器时候,会自动生成一个ip,为 172.17.0.0/24网段,导致服务器或者docker服务重启后,IP会变。

所以要想docker创建出来的容器IP不变,只能我们自己手动设置静态IP,创建网桥。

那么命令为:

docker network create --subnet 192.168.30.0/24 net-30
该命令为创建一个网络为192.168.30.0网段的IP,网卡名称为net-30

然后我们创建容器的时候,指定一下IP即可

例如:

docker run  -d --name prometheus --net net-30 --ip 192.168.30.2 --restart=always -p 9090:9090 -v /etc/localtime:/etc/localtime -v /opt/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml prom/prometheus

 

 

 扩展内容(一)

 因有的公司 需要监控的服务器为多台,那么这时候怎么可以实现再一个监控网址上,可以监控到多台服务器呢。

例如我的一台服务器上安装了docker,又分别使用docker安装了 node-exporte cadvisor prometheus grafana 我们先把这台服务器称之为主服务器

 

 

 这台服务器通过上面的操作,已经实现了可以监控自身,现在又有新的一台服务器需要监控,我该如何操作呢。我们把这台服务器称之为从服务器

首先,在从服务器上安装docker后,只需拉取node-exporter,prometheus 这两个镜像,然后使用docker的host模式去创建容器即可

(不一定非要用docker的host模式,因为害怕服务器重启后,docker的IP会发生变化,故这里使用docker的host模式)

操作如下:

docker pull node-exporter
docker pull prometheus
docker run -d --name node-exporter --restart=always  --net host  -v /etc/localtime:/etc/localtime -v "/proc:/host/proc:ro" -v "/sys:/host/sys:ro" -v "/:/rootfs:ro" prom/node-exporte
映射目录之前应该先填写好信息
mkdir -p /opt/prometheus/
vim prometheus.yml

现在我们需要在配置文件里面分别写上从服务器的一些配置

192.168.1.56为从服务器IP,因为从服务器创建docker时候使用的host模式

如图所示:

docker下载普罗米修斯 docker部署普罗米修斯_docker_25

 

 

 

 

global:
  scrape_interval:     60s
  evaluation_interval: 60s
 
scrape_configs:
  - job_name: prometheus
    static_configs:
      - targets: ['192.168.1.56:9090']
        labels:
          instance: prometheus
 
  - job_name: linux
    static_configs:
      - targets: ['192.168.1.56:9100']
        labels:
          instance: localhost
 
 
:wq

保存退出

然后我们创建容器

docker run  -d --name prometheus --net host --restart=always  -v /etc/localtime:/etc/localtime -v /opt/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml prom/prometheus

之后我们登录到主服务器的grafana服务,也就是3000端口 http://主服务器ip://3000

然后找到 Add new data source

docker下载普罗米修斯 docker部署普罗米修斯_docker下载普罗米修斯_26

 

 选择prometheus

docker下载普罗米修斯 docker部署普罗米修斯_docker下载普罗米修斯_27

 

 

输入名字和对应的网址即可

例如:name写从服务器1.56

URL写http://192.168.1.56:9090

docker下载普罗米修斯 docker部署普罗米修斯_服务器_28

 

 翻到最下面 点击保存并测试,看到绿色的证明成功

docker下载普罗米修斯 docker部署普罗米修斯_服务器_29

 

 然后我们导入模板 选择Import

docker下载普罗米修斯 docker部署普罗米修斯_linux_30

 

 输入12633 然后点击右侧的Load

docker下载普罗米修斯 docker部署普罗米修斯_服务器_31

 

 然后写上 name从服务器监控面板

然后选择刚刚创建的prometheus,名称为从服务器1.56

docker下载普罗米修斯 docker部署普罗米修斯_linux_32

 

 然后点击最下面的Import导入,即可。然后即可看到该页面。

docker下载普罗米修斯 docker部署普罗米修斯_docker_33

 

 同理,需要监控10个服务器也是这样操作即可。

 

 

扩展内容(二)

 如果不想docker pull(拉取)prometheus和node_exporter镜像的话

想要在本机安装的话,可以查看以下的操作步骤:

操作系统:Ubuntu20.04

1、下载对应的gz包

wget https://github.com/prometheus/prometheus/releases/download/v2.36.0/prometheus-2.36.0.linux-amd64.tar.gz

wget https://prometheus.io/download/node_exporter-1.3.1.linux-amd64.tar.gz

2、首先解压prometheus-2.36.0.linux-amd64.tar.gz

tar xvfz prometheus-2.36.0.linux-amd64.tar.gz

3、解压后我们会得到一个文件夹,进去后,修改prometheus.yml配置文件

cd prometheus-2.36.0.linux-amd64

vim prometheus.yml

把默认的localhost换成本机IP即可,如图红色框住内容

如图所示:

docker下载普罗米修斯 docker部署普罗米修斯_服务器_34

 然后再把下面的node_exporter写进去

 

 

- job_name: 'node_exporter'
    scrape_interval: 5s
    static_configs:
      - targets: ['192.168.1.68:9100']

 

 

如图所示:

docker下载普罗米修斯 docker部署普罗米修斯_linux_35

 

 

:wq 

保存退出

4、编写一个prometheus系统服务并启动服务,设置为开启自启

vim /etc/systemd/system/prometheus.service
 
[Unit]
Description=prometheus
Wants=network-online.target
After=network-online.target[Service]
Type=simple
ExecStart=/data/sh/prometheus-2.29.2.linux-amd64/prometheus \
--config.file /data/sh/prometheus-2.29.2.linux-amd64/prometheus.yml \
# --storage.tsdb.path /var/lib/prometheus/ \
--web.console.templates=/data/sh/prometheus-2.29.2.linux-amd64/consoles \
--web.console.libraries=/data/sh/prometheus-2.29.2.linux-amd64/console_libraries[Install]
WantedBy=multi-user.target 
:wq

保存退出

注意:下面四个红色框住的需填写实际解压prometheus-2.36.0.linux-amd64.tar.gz包的路径

docker下载普罗米修斯 docker部署普罗米修斯_linux_36

 

 


systemctl start  prometheus.service
systemctl status  prometheus.service
systemctl enable  prometheus.service

docker下载普罗米修斯 docker部署普罗米修斯_linux_37

 5、我们现在解压node_exporter-1.3.1.linux-amd64.tar.gz包

tar xf node_exporter-1.3.1.linux-amd64.tar.gz

6、编写一个node_exporter系统服务

sudo vim /etc/systemd/system/node_exporter.service
 
[Unit]
Description=Node Exporter
Wants=network-online.target
After=network-online.target[Service]
Type=simple
ExecStart=/data/sh/node_exporter-1.0.1.linux-amd64/node_exporter[Install]
WantedBy=multi-user.target 
:wq

保存退出

注意:ExecStart后面写实际解压node_exporter-1.3.1.linux-amd64.tar.gz包的路径

7、启动服务,查看服务状态,加入开机自启

systemctl start node_exporter.service

systemctl status node_exporter.service

systemctl enable node_exporter.service

docker下载普罗米修斯 docker部署普罗米修斯_linux_38

 8、然后我们登录到主服务器的grafana服务,也就是3000端口 http://主服务器ip://3000

然后找到 Add new data source

docker下载普罗米修斯 docker部署普罗米修斯_docker下载普罗米修斯_26

 

 选择prometheus

docker下载普罗米修斯 docker部署普罗米修斯_docker下载普罗米修斯_27

 

 

输入名字和对应的网址即可

例如:name写gpu服务器1.68

URL写http://192.168.1.68:9090

docker下载普罗米修斯 docker部署普罗米修斯_docker下载普罗米修斯_41

 

 

 翻到最下面 点击保存并测试,看到绿色的证明成功

docker下载普罗米修斯 docker部署普罗米修斯_服务器_29

 

 然后我们导入模板 选择Import

docker下载普罗米修斯 docker部署普罗米修斯_linux_30

 

 输入12633 然后点击右侧的Load

docker下载普罗米修斯 docker部署普罗米修斯_服务器_31

 

 然后写上 name从服务器监控面板

然后选择刚刚创建的prometheus,名称为GPU1服务器1.68-性能监控面板

docker下载普罗米修斯 docker部署普罗米修斯_linux_45

 

 然后点击最下面的Import导入,即可。然后即可看到该页面。

docker下载普罗米修斯 docker部署普罗米修斯_docker下载普罗米修斯_46

 

 

 

 

我有空不想写了 诶 就是玩儿~

如果夏天你能来到我身边

我就把头发打理得蓬松一点

然后

穿上淡黄的长裙去见你

 

 

小鬼 快点过来抱了~