使用docker compose安装部署prometheus、cAdvisor、redis容器监控


官方参考文档:Monitoring Docker container metrics using cAdvisor | Prometheus

部署

一、创建项目目录,编辑Prometheus.yml主配置文件,添加监控的容器cAdvisor为目标容器

[root@localhost ~]# mkdir prom
[root@localhost ~]# cd prom
[root@localhost ~]# vi prometheus.yml
[root@localhost prom]# cat prometheus.yml |egrep -v "^([ ]*#)|^$"	#过滤掉注释和空行
global:
  scrape_interval: 15s # Set the scrape interval to every 15 seconds. Default is every 1 minute.
  evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute.
alerting:
  alertmanagers:
    - static_configs:
        - targets:
rule_files:
scrape_configs:
  - job_name: "prometheus"
    static_configs:
      - targets: ["localhost:9090"]
# 加入以下内容:
  - job_name: cadvisor
    scrape_interval: 5s
    static_configs:
      - targets:
        - cadvisor:8080
将prometheus.yml拷贝到/etc/prometheus/目录下
[root@localhost ~]# mkdir /etc/prometheus
[root@localhost ~]# cp prometheus.yml /etc/prometheus

二、编写docker-compose文件启动prom、cAdvisor、redis容器

[root@localhost prom]# vi docker-compose.yml
version: '3.2'
services:
  prometheus:
    image: prom/prometheus:latest
    container_name: prometheus
    ports:
    - 9090:9090
    command:
    - --config.file=/etc/prometheus/prometheus.yml		# 本机存放的配置文件路径,但感觉读的还是当前目录的文件,
    volumes:
    - ./prometheus.yml:/etc/prometheus/prometheus.yml:ro		# 只读挂载
    depends_on:
    - cadvisor		# 依赖容器,要先启动cadvisor容器
  cadvisor:
    image: gcr.io/cadvisor/cadvisor:latest		# gcr.io为谷歌云,国内访问不了,需提前准备
    container_name: cadvisor
    ports:
    - 8080:8080
    volumes:		# 挂载——获取其他容器信息的原因
    - /:/rootfs:ro
    - /var/run:/var/run:rw
    - /sys:/sys:ro
    - /var/lib/docker/:/var/lib/docker:ro
    depends_on:
    - redis
  redis:
    image: redis:latest
    container_name: redis
    ports:
    - 6379:6379
加载本地acdvisor软件包到本地
[root@localhost prom]# ls
cadvisor.tar  docker-compose.yml  prometheus.yml
[root@localhost prom]# docker load -i cadvisor.tar		# 加载镜像
ace0eda3e3be: Loading layer  5.843MB/5.843MB
33bb68b99ee4: Loading layer  102.4MB/102.4MB
d3174d703c76: Loading layer  13.25MB/13.25MB
8b7599e512b6: Loading layer  44.19MB/44.19MB
Loaded image: gcr.io/cadvisor/cadvisor:latest
[root@localhost prom]# docker images
REPOSITORY                         TAG       IMAGE ID       CREATED         SIZE
redis                              alpine    0b405767398c   3 days ago      29.9MB
scweb                              1.0       d07d5978a7b5   4 days ago      214MB
47.120.37.21:8088/zhihe/zh-nginx   latest    080ed0ed8312   3 weeks ago     142MB
prom/prometheus                    latest    a07b618ecd1d   4 weeks ago     234MB
busybox                            1.36      7cfbbec8963d   5 weeks ago     4.86MB
hello-world                        latest    feb5d9fea6a5   19 months ago   13.3kB
gcr.io/cadvisor/cadvisor           latest    68c29634fe49   2 years ago     163MB
切换到Prom目录启动容器
[root@localhost prom]# docker compose up -d
[+] Running 3/3
 ✔ Container redis       Started                                                                 0.4s 
 ✔ Container cadvisor    Started                                                                 0.7s 
 ✔ Container prometheus  Started                                                                 1.5s 

三、访问localhost:8080查看cadvisor的Web界面,访问 localhost:9090 查看Prom界面

cadvisor


cadvisor2

cadvisor可以看到所有正在运行的容器即可


哪里说得不对欢迎留言评论哈,会第一时间修改滴

以下是一个docker-compose.yml文件,可以用于安装RedisPrometheus、Kafka、Grafana和MySQL: ```yaml version: '3.8' services: redis: image: redis:alpine container_name: redis ports: - "6379:6379" prometheus: image: prom/prometheus:latest container_name: prometheus ports: - "9090:9090" volumes: - ./prometheus.yml:/etc/prometheus/prometheus.yml command: - '--config.file=/etc/prometheus/prometheus.yml' kafka: image: wurstmeister/kafka:latest container_name: kafka ports: - "9092:9092" - "9094:9094" environment: KAFKA_ADVERTISED_LISTENERS: INSIDE://:9092,OUTSIDE://localhost:9094 KAFKA_LISTENERS: INSIDE://:9092,OUTSIDE://:9094 KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: INSIDE:PLAINTEXT,OUTSIDE:PLAINTEXT KAFKA_INTER_BROKER_LISTENER_NAME: INSIDE depends_on: - zookeeper zookeeper: image: wurstmeister/zookeeper container_name: zookeeper ports: - "2181:2181" grafana: image: grafana/grafana:latest container_name: grafana ports: - ./grafana/provisioning/dashboards:/etc/grafana/provisioning/dashboards - ./grafana/provisioning/datasources:/etc/grafana/provisioning/datasources - grafana-data:/var/lib/grafana environment: GF_SECURITY_ADMIN_PASSWORD: admin mysql: image: mysql:8.0 container_name: mysql ports: - "3306:3306" environment: MYSQL_ROOT_PASSWORD: rootpassword MYSQL_DATABASE: mydatabase MYSQL_USER: myuser MYSQL_PASSWORD: mypassword volumes: - mysql-data:/var/lib/mysql volumes: grafana-data: mysql-data: ``` 这个docker-compose.yml文件定义了以下服务: 1. Redis: 内存数据结构存储系统 2. Prometheus: 开源监控系统和时间序列数据库 3. Kafka: 分布式流处理平台 4. Zookeeper: Kafka的依赖项,用于管理Kafka集群 5. Grafana: 开源监控和可视化平台 6. MySQL: 关系型数据库管理系统 要使用这个docker-compose.yml文件,请按照以下步骤操作: 1. 将内容保存为docker-compose.yml文件。 2. 在文件所在的目录中打开终端或命令提示符。 3. 运行命令:docker-compose up -d 4. 等待所有容器启动完成。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

只何

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值