Docker部署Prometheus的实现示例

 更新时间:2024年08月28日 11:17:57   作者:不甘平凡※  
Prometheus是一款开源的监控和告警工具,它可以收集系统的各种指标数据,如CPU使用率、内存使用量等,本文主要介绍了Docker部署Prometheus的实现示例,感兴趣的可以了解一下

环境:阿里云CentOS7.9

docker部署

1、确定是CentOS7及以上版本

cat /etc/redhat-release

2、如有旧版本,需要先卸载旧版本

 yum remove docker

3、yum安装gcc相关以及需要的软件包

yum -y install gcc gcc-c++ yum-utils

4、配置国内docker-ce的yum源(采用的是阿里云)

yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

5、配置完yum源后可以切换到/etc/yum.repos.d/目录下,查看下是否存在docker-ce.repo,存在的话说明配置成功

 6、更新yum软件包索引

yum makecache fast

 7、安装docker

yum -y install docker-ce docker-ce-cli containerd.io

8、启动docker

systemctl start docker
systemctl status docker

9、查看docker版本

docker --version
Docker version 26.1.4, build 5650f9b

10、配置镜像加速器

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://cz1numin.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

11、docker info命令查看一下是否新增了阿里云的地址,确保配置成功

Prometheus部署

1、下载镜像包

docker pull prom/node-exporter
docker pull prom/mysqld-exporter
docker pull oliver006/redis_exporter 
docker pull prom/prometheus
docker pull grafana/grafana
  • prom/node-exporter:用于收集主机系统信息和指标的
  • prom/mysqld-exporter:用于收集数据库系统信息和指标的
  • oliver006/redis_exporter :用于收集redis信息和指标的
  • grafana/grafana:是一个用于可视化和分析监控指标的开源平台。
  • prom/prometheus:是一个开源的监控系统,用于收集和存储时间序列数据,并提供基于数据的查询、报警和可视化功能。

2、启动容器

2.1启动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://47.119.27.111:9100/metrics

2.2启动 mysqld-exporter

docker run -d --name mysqld_exporter \
--restart=always -p 9104:9104 \
-e DATA_SOURCE_NAME="root:Password123@(192.168.0.230:3306)/"  \
prom/mysqld-exporter

访问地址:http://47.119.27.111:9104/metrics

2.3启动 redis_exporter

#不带密码
docker run -d --name redis_exporter -p 9121:9121 oliver006/redis_exporter --redis.addr redis://192.168.0.230:6379

# 绑定集群中一个redis实例就可以了
# 带密码
docker run -d --name redis_exporter -p 9121:9121 oliver006/redis_exporter --redis.addr redis://192.168.0.230:6379 --redis.password '123123'

访问地址:http://47.119.27.111:9121/metrics

2.4查看容器IP

查看当前运行的网络列表

docker network ls

NETWORK ID     NAME      DRIVER    SCOPE
16dab27fe490   bridge    bridge    local
05a7e6db54e6   host      host      local
f2da59c2d4f9   none      null      local

查看指定网络中的容器和其IP地址

docker network inspect <网络ID或网络名称>

            "0f8f21d3d4cb8a892e3915430a56569c5182346d79a7dd6434718b7dfa59ab0a": {
                "Name": "redis_exporter",
                "EndpointID": "597b8133bfc51af671889a8786000fc27b4c53a74edda683b2be4272ceac0310",
                "MacAddress": "02:42:ac:11:00:04",
                "IPv4Address": "172.17.0.4/16",
                "IPv6Address": ""
            },
            "940f4c0ca99bc9af06dd17f405bb5fb5f52bcd147149270f07ebe5af72128d9f": {
                "Name": "node-exporter",
                "EndpointID": "111ecdc84bd9682018f09d8e5010802dcb5c6d4052c126b931abbc0e539dff90",
                "MacAddress": "02:42:ac:11:00:02",
                "IPv4Address": "172.17.0.2/16",
                "IPv6Address": ""
            },
            "cdc09d537f36572104e001d071cbc4642b0b9a528019f37149de3727f96827e1": {
                "Name": "mysqld_exporter",
                "EndpointID": "63029028def1861190829aec2a4d2f75048bd8e3acfe0fee0c628c169562e998",
                "MacAddress": "02:42:ac:11:00:03",
                "IPv4Address": "172.17.0.3/16",
                "IPv6Address": ""
            }

2.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: node
    static_configs:
      - targets: ['172.17.0.2:9100']
        labels:
          instance: node-exporter

  - job_name: redis
    static_configs:
      - targets: ['172.17.0.4:9121']
        labels:
          instance: redis_exporter

  - job_name: mysqld
    static_configs:
      - targets: ['172.17.0.3:9104']
        labels:
          instance: mysql-exporter

启动(注意:宿主机的路径必须是绝对路径:/opt/prometheus/prometheus.yml,否则会报错)

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

访问地址:http://47.119.27.111:9090/graph

访问targets地址:http://47.119.27.111:9090/targets

2.6启动grafana

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

mkdir /opt/grafana-storage

添加权限

chmod 777 -R /opt/grafana-storage

启动

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

访问地址:http://47.119.27.111:3000/login

配置Grafana

默认登录:admin/admin

设置----》Data sources----》Add data source

选择Prometheus

Name:Prometheus

URL【Prometheus的ip(docker容器私网ip)+端口】:http://172.17.0.5:9090

点击下面的Save & Test,如果出现绿色的,说明ok了

监控mysql

导入grafana监控模板,mysql监控模板id为7362,填入如下输入框内

 

监控主机

导入主机的监控模板,模板id为8919,以相同方式导入即可

监控容器

导入容器的监控模板,模板id为179,以相同方式导入即可

监控redis

导入容器的监控模板,模板id为 763,以相同方式导入即可

到此这篇关于Docker部署Prometheus的实现示例的文章就介绍到这了,更多相关Docker部署Prometheus内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家! 

相关文章

  • docker创建容器的两种实现方式(交互式与守护式)

    docker创建容器的两种实现方式(交互式与守护式)

    这篇文章主要介绍了docker创建容器的两种实现方式(交互式与守护式),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-05-05
  • docker如何开启2375端口提供外部访问docker

    docker如何开启2375端口提供外部访问docker

    这篇文章主要介绍了docker如何开启2375端口提供外部访问docker问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-08-08
  • Docker中数据卷(volume)管理的两种方式

    Docker中数据卷(volume)管理的两种方式

    数据卷有两种形式,一种是容器中的某个目录,它可以被别的容器引用,只要有一个容器引用了这个数据卷,数据就不会被删除;另一种数据卷是将容器中的数据卷和宿主机的目录进行挂载。 数据卷可以在多个容器之间共享,修改数据卷不会影响镜像
    2021-07-07
  • Docker中部署Nginx并挂载配置文件的实现

    Docker中部署Nginx并挂载配置文件的实现

    本文主要介绍了Docker中部署Nginx并挂载配置文件的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-06-06
  • Docker 常用命令整理并介绍

    Docker 常用命令整理并介绍

    这篇文章主要介绍了Docker 常用命令的知识,这里介绍了Docker 的操作容器,Image,网络操作,等内容,有需要的小伙伴可以参考下
    2016-10-10
  • docker save镜像时进行gzip压缩方式

    docker save镜像时进行gzip压缩方式

    文章介绍了三种Docker镜像压缩方法:管道压缩(推荐,使用gzip/pigz,速度快)、xz压缩(高压缩比但慢)、及先保存再压缩(不推荐,占空间),建议日常用管道gzip,传输用xz,避免直接保存未压缩文件
    2025-08-08
  • Docker 网络命令详解

    Docker 网络命令详解

    这篇文章主要详细介绍了Docker 网络命令的相关资料,需要的朋友可以参考下
    2017-06-06
  • docker重启会创建幽灵网桥的问题

    docker重启会创建幽灵网桥的问题

    删除网卡后路由异常,tracepath显示网络未离服务器,重启导致IP冲突无法连接,通过AI工具找到全新解决方案,成功修复,总结个人经验供参考
    2025-08-08
  • Docker在WSL环境下启动失败的问题解决办法

    Docker在WSL环境下启动失败的问题解决办法

    在Windows系统上,有时候我们可能会遇到Docker启动失败的问题,特别是在使用WSL(Windows Subsystem for Linux)作为Docker运行环境时,这篇文章主要介绍了Docker在WSL环境下启动失败问题的解决办法,需要的朋友可以参考下
    2025-07-07
  • Ubuntu系统下docker Pull镜像错误timeout解决办法

    Ubuntu系统下docker Pull镜像错误timeout解决办法

    最近在用docker搭个开发环境,发现在拉取镜像的时候有点问题,这篇文章主要给大家介绍了关于Ubuntu系统下docker Pull镜像错误timeout的解决办法,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2024-07-07

最新评论