Docker上配置Prometheus和Grafana

1 篇文章 1 订阅
1 篇文章 1 订阅


前言

本文章仅记录操作,供日后参考回顾。
系统:MacOS M1
Docker运行环境:Debian


Docker配置

一、安装Docker

1.在浏览器Docker官网中下载Docker 应用程序,安装应用

2.注册Docker个人账号

二、下载debian镜像
~  docker pull debian
~  docker images -a
REPOSITORY   TAG       IMAGE ID       CREATED      SIZE
debian       latest    e38a1b1bebd5   6 days ago   118MB
三、创建容器

创建容器master01

~  docker run -d --name master01 -it -p 9090:9090 -p 3000:3000 debian /bin/bash -c  "while true;do sleep 10;done"
22338f41b0a4544d9cca0a1b4628e2fdc0526571f55af4908500a31a23bc124b

同理,再创建容器node01,node02,node03,不过注意节点映射不能一样

~  docker ps -a                                                                                                            
CONTAINER ID   IMAGE     COMMAND                  CREATED          STATUS          PORTS                                            NAMES
0b386d411270   debian    "/bin/bash -c 'while…"   6 minutes ago    Up 6 minutes    0.0.0.0:3003->3000/tcp, 0.0.0.0:9093->9090/tcp   node03
e65107c906a8   debian    "/bin/bash -c 'while…"   7 minutes ago    Up 7 minutes    0.0.0.0:3002->3000/tcp, 0.0.0.0:9092->9090/tcp   node02
d6b8a83117c8   debian    "/bin/bash -c 'while…"   7 minutes ago    Up 7 minutes    0.0.0.0:3001->3000/tcp, 0.0.0.0:9091->9090/tcp   node01
22338f41b0a4   debian    "/bin/bash -c 'while…"   10 minutes ago   Up 10 minutes   0.0.0.0:3000->3000/tcp, 0.0.0.0:9090->9090/tcp   master01

while true;do sleep 10;done 默认退出容器后会进入终止状态,这里为了方便设成死循环
9090端口是Prometheus的默认端口
3000端口是Grafana的默认端口

四、配置容器及相应命令

创建好后进入容器(这里以master01为例)

~  docker exec -it 223 bash

223是容器ID前三位
因为新建的容器内什么都没有,所以我们需要配置相应的命令

root@22338f41b0a4:/# apt update
root@22338f41b0a4:/# apt-get install wget
root@22338f41b0a4:/# apt-get install vim

同理,配置其他容器

Prometheus配置

一、安装Prometheus

(master01)

Prometheus官网找到和自己系统对应版本的包链接

root@22338f41b0a4:/# wget https://github.com/prometheus/prometheus/releases/download/v2.36.0/prometheus-2.36.0.linux-arm64.tar.gz

解压、做软链接

root@22338f41b0a4:/# tar -xf prometheus-2.36.0.linux-arm64.tar.gz -C /usr/local/
root@22338f41b0a4:/# cd /usr/local/
root@22338f41b0a4:/usr/local# ln -sv prometheus-2.36.0.linux-arm64/ prometheus
二、安装Node_exporter

(所有容器)
和上面一样的步骤

root@22338f41b0a4:/# /usr/local# ls
bin  games    lib  node_exporter		    node_exporter-1.3.1.linux-arm64.tar.gz  prometheus-2.36.0.linux-arm64  share
etc  include  man  node_exporter-1.3.1.linux-arm64  prometheus				    sbin			   src
三、配置hosts文件

主机用这个命令找到这些容器的IP

~  docker inspect master01

在master01中修改host文件,绑定容器IP

root@22338f41b0a4:/# vim/etc/hosts 

这里先不绑定node03,之后有用

127.0.0.1       localhost
172.17.0.2      master01
172.17.0.3      node01
172.17.0.4      node02

::1     localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
172.17.0.2      22338f41b0a4 
四、配置prometheus.yaml文件
root@22338f41b0a4:/usr/local# cd prometheus
root@22338f41b0a4:/usr/local/prometheus# vim prometheus.yml

将这行代码添加到该文件下,新增了一个job,注意格式对齐

  - job_name: "nodes"
    static_configs:
      - targets:
        - 172.17.0.2:9100
        - 172.17.0.3:9100
        - 172.17.0.4:9100
五、启动prometheus web端

master01,node01,node02启动Node_exporter

root@d6b8a83117c8:/usr/local/node_exporter# ./node_exporter

master01启动Prometheus

root@22338f41b0a4:/usr/local/prometheus# ./prometheus

主机上找到本机IP

~  ifconfig en0

打开浏览器输入IP:端口,三个节点正常工作且被监控中

在这里插入图片描述

六、基于文件的服务发现

设想每增加一个节点到监控下,都需要进master01修改host文件,再修改prometheus.yaml文件,很麻烦。于是用写个文件,让文件主动发现符合被监控要求的节点更有效率
在master01下创建一个target文件夹,编写一个关于node的yaml文件

root@22338f41b0a4:/usr/local/prometheus# mkdir target
root@22338f41b0a4:/usr/local/prometheus# cd target/
root@22338f41b0a4:/usr/local/prometheus/target# vim nodes-linux.yaml
- targets:
  - 172.17.0.2:9100
  - 172.17.0.3:9100
  - 172.17.0.4:9100
  labels:
    app: node_exporter

再编写一个关于prometheus的yaml文件

root@22338f41b0a4:/usr/local/prometheus/target# vim prometheus-server.yaml
- targets:
  - 172.17.0.2:9090
  labels:
    app: prometheus

接着去主配置文件中定义这两个文件的指向

root@22338f41b0a4:/usr/local/prometheus# vim prometheus.yml

这里只修改了scrape_configs下的两个job,并将之前部署的static_configs注释掉转而替代为file_sd_configs

scrape_configs:
  # The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
  - job_name: "prometheus"
    file_sd_configs:
    - files:
      - target/prometheus-*.yaml
      refresh_interval: 1m

    # metrics_path defaults to '/metrics'
    # scheme defaults to 'http'.

#   static_configs:
#      - targets: [":9090"]

  - job_name: "nodes"
    file_sd_configs:
    - files:
      - target/prometheus-*.yaml
      refresh_interval: 1m

        #  - job_name: "nodes"

 #  static_configs:
 #     - targets:
 #      - 172.17.0.2:9100
 #      - 172.17.0.3:9100
 #      - 172.17.0.4:9100

这里我们可以用这个命令来检查主配置文件的语法

root@22338f41b0a4:/usr/local/prometheus# ./promtool check config prometheus.yml
Checking prometheus.yml
SUCCESS: prometheus.yml is valid prometheus config file syntax

配置好文件服务发现机制后我们用node03来测试
这里直接将之前已经配置好的node03的node_exporter服务跑起来
然后在node-linux.yaml中添加node03

- targets:
  - 172.17.0.2:9100
  - 172.17.0.3:9100
  - 172.17.0.4:9100
  - 172.17.0.5:9100 #新增的node03
  labels:
    app: node_exporter

刷新web页面,可以看到node03也自动被监控到了

在这里插入图片描述

Grafana配置

一、安装Grafana

在浏览器中打开Grafana官网下载界面安装指南,选择适合你主机的版本,copy其命令到master01终端即可(这边选择用tar.gz的方式)

root@22338f41b0a4:wget https://dl.grafana.com/enterprise/release/grafana-enterprise-8.5.4.linux-arm64.tar.gz
root@22338f41b0a4:tar -zxvf grafana-enterprise-8.5.4.linux-arm64.tar.gz

然后进入执行目录下运行grafana

root@22338f41b0a4:/usr/local# cd grafana-8.5.4/bin
root@22338f41b0a4:/usr/local/grafana-8.5.4/bin# ./grafana-server web 
二、配置并选择Prometheus数据源

返回浏览器中输入网站地址http://192.168.1.117:3000/,如图所示

在这里插入图片描述

默认账密都为admin,输入后点skip进入主界面,然后点击Configuration中的Data Source

在这里插入图片描述

选择添加Prometheus,再把URL填上主机IP和端口号,最后Save&Test即可

在这里插入图片描述

三、用Prom QL 语法绘制图表

还在研究中,之后学会了再补上

四、合理的排版与数据呈现

数据展示有两种方式,一个直接拿模板,一个自己编排
这边就放一个模板的例子吧
在浏览器上访问Grafana官网模板,筛选你想要的模板样式,记住它的编号
然后到Grafana Web界面,Import你的编号

在这里插入图片描述

这里我用的是11074,大家可根据喜好挑选

在这里插入图片描述

参考资料

一、马哥教育
二、Docker-从入门到实践

总结

这篇文章算是记录了本人5.24-6.3号的学习成果,之后计划深入学习Docker和Prom QL语法,有收获再来记录吧

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值