当前位置: 首页 > news >正文

Prometheus cadvisor容器监控和node-exporter节点监控

往期文章

Prometheus监控系统
https://blog.csdn.net/qq_39578545/article/details/108754585

Docker之compose介绍

  • 使用一个Dockerfile模板文件可以定义一个单独的应用容器,如果需要定义多个容器就需要服务编排。下面介绍Docker官方产品,Docker Compose。
  • Dockerfile可以让用户管理一个单独的应用容器,而compose则允许用户在一个模板(yaml格式)中定义一组相关联的应用容器(被称为一个project,即项目)
  • 例如一个web服务再加上后端的数据库服务容器等。

docker-compose将所管理的容器分为三层, 分别是工程(project),服务(service)以及容器(containner)

  • docker-compose运行目录下的所有文件(docker-compose.yml文件、extends文件或环境变量等)组成一个工程,如无特殊指定,工程名即为当前目录名。
  • 一个工程当中,可以包含多个服务,每个服务中定义了容器运行的镜像、参数、依赖。
  • 一个服务中可以包括多个容器实例,docker-compose并没有解决负载均衡的问题。因此需要借助其他工具实现服务发现及负载均衡,比如consul。
    docker-compose的工程配置文件默认为docker-compose.yml。可以通过环境变量COMPOSE_FILE -f 参数自定义配置文件,其自定义多个有依赖关系的服务及每个人服务运行的容器。
  • 简单来说:就是来管理多个容器的,定义启动顺序的,合理编排,方便管理。

Prometheus监控容器

需要一台docker 宿主机,docker 容器安装prometheus服务

1.下载compose软件

curl -L https://get.daocloud.io/docker/compose/releases/download/1.29.2/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose

2、授予可执行权限

[root@docker1  ~]# chmod +x /usr/local/bin/docker-compose 
[root@docker1  ~]# which docker-compose
/usr/local/bin/docker-compose
[root@docker1 ~]# docker compose version
Docker Compose version v2.7.0

3、编辑prometheus的配置文件

[roott@docker1  ~]# mkdir /prom_docker
[roott@docker1  ~]# cd /prom_docker/
[roott@docker1 prom_docker]#
[root@docker1 prom_docke]# vim prometheus.yml
[root@docker1 prom_docker]# cat prometheus.yml
scrape_configs:
- job_name: cadvisorscrape_interval: 5sstatic_configs:- targets:- cadvisor:8080[root@docker1 prom_docke]# vim docker-compose.yaml
[root@docker1 prom_docker]# cat docker-compose.yml
version: '3.2'
services:prometheus:image: prom/prometheus:latestcontainer_name: prometheusports:- 9090:9090command:- --config.file=/etc/prometheus/prometheus.ymlvolumes:- ./prometheus.yml:/etc/prometheus/prometheus.yml:rodepends_on:- cadvisorcadvisor:image: gcr.io/cadvisor/cadvisor:latestcontainer_name: cadvisorports:- 8080:8080volumes:- /:/rootfs:ro- /var/run:/var/run:rw- /sys:/sys:ro- /var/lib/docker/:/var/lib/docker:rodepends_on:- redisredis:image: redis:latestcontainer_name: redisports:- 6379:6379

cadvisor相当于node_exporter

4、下载cadvisor.tar镜像

docker pull gcr.io/cadvisor/cadvisor:latest
由于下载该镜像需访问谷歌,因此国内无法成功下载,有条件可以使用香港的服务器里去下载镜像,或者通过其他途径获取该镜像

https://download.csdn.net/download/qq_39578545/87613018

iptables -F
真正删除规则需要重启机器

cAdvisor(需要监控的主机都要安装)
官方地址:https://github.com/google/cadvisor
CAdvisor是谷歌开发的用于分析运行中容器的资源占用和性能指标的开源工具。CAdvisor是一个运行时的守护进程,负责收集、聚合、处理和输出运行中容器的信息。
docker监控也需要用一个exporter,这个exporter就是cAdvisor,类似zabbix的各种agent

[root@localhost prom_docker]# pwd
/prom_docker
[root@localhost prom_docker]# ls
cadvisor.tar  docker-compose.yml  prometheus.ymldocker tag 68c29634fe49 gcr.io/cadvisor/cadvisor:latest

5、使用docker compose启动容器

[root@docker1 prom_docker]# docker compose up -d
[+] Running 4/4⠿ Network prom_docker_default  Created                                    0.3s⠿ Container redis              Started                                    1.1s⠿ Container cadvisor           Started                                    2.3s⠿ Container prometheus         Started                                    3.5s
[root@docker1 prom_docker]# docker compose ps
NAME                COMMAND                  SERVICE             STATUS               PORTS
cadvisor            "/usr/bin/cadvisor -…"   cadvisor            running (starting)   0.0.0.0:8080->8080/tcp, :::8080->8080/tcp
prometheus          "/bin/prometheus --c…"   prometheus          running              0.0.0.0:9090->9090/tcp, :::9090->9090/tcp
redis               "docker-entrypoint.s…"   redis               running              0.0.0.0:6379->6379/tcp, :::6379->6379/tcp如启动有问题注意检查配置文件的格式问题,查看配置文件中各个端口本机是否已经占用等

6、访问cadvisor和prometheus

8080 端口访问 cadvisor
9090 端口访问 prometheus
http://192.168.48.129:8080
在这里插入图片描述

7、安装grafana ,使用能显示docker容器的模板

[root@docker1 prom_docker]# docker run -d -p 3001:3000 --name sc-grafana-1 grafana/grafana
Unable to find image 'grafana/grafana:latest' locally
latest: Pulling from grafana/grafana
9621f1afde84: Pull complete
37c977d2b27c: Pull complete
c808de7a697e: Pull complete
86659f76fb09: Pull complete
747aee88ceca: Pull complete
99d875e11915: Pull complete
3fb2327ae1ed: Pull complete
ac9523800f50: Pull complete
e15e29cdce8f: Pull complete
Digest: sha256:980ff2697655a0aa5718e40bbda6ac52299d2f3b1584d0081152e2d0a4742078
Status: Downloaded newer image for grafana/grafana:latest
c4aae27eb48ce7be7add6af0d8073aed15c305de81ec94e788ebdfc529836353http://192.168.48.129:3001/
首次进入时,需要输入用户名和密码,皆为admin1、添加数据源 datasource
2、导入图标模板
https://grafana.com/grafana/dashboards
该网站有许多已经搭建好了的grafana模板,每个模板都有一个id,也可以下载成json文件,

在这里插入图片描述


scrape_configs:- job_name: cadvisorscrape_interval: 5sstatic_configs:- targets:- cadvisor:8080- job_name: 'prometheus'static_configs:- targets: ['127.0.0.1:9090']- job_name: 'job1'static_configs:- targets: ['192.168.48.129:9100']- job_name: 'job2'static_configs:- targets: ['192.168.48.129:6379']

Node_exporter

Node-exporter 可以采集机器(物理机、虚拟机、云主机)的监控指标数据,能够采集到的指标包括cpu、内存、磁盘、网络、文件数等信息。

各种各样的exporter下载地址:https://prometheus.io/download/
1、下载安装

curl -O -L https://github.com/prometheus/node_exporter/releases/download/v1.5.0/node_exporter-1.5.0.linux-amd64.tar.gz# 解压
tar -zxvf node_exporter-1.5.0.linux-amd64.tar.gz -C /usr/local/
mv /usr/local/node_exporter-1.5.0.linux-amd64/ /usr/local/node_exporter-1.5.0
# 创建软连接
ln -s /usr/local/node_exporter-1.5.0/ /usr/local/node_exporter

2、添加到系统服务

sudo tee /usr/lib/systemd/system/node_exporter.service << EOF
[Unit]
Description=Prometheus node_exporter
[Service]
User=nobody
ExecStart=/usr/local/node_exporter/node_exporter --log.level=error
ExecStop=/usr/bin/killall node_exporter
[Install]
WantedBy=default.target
EOF

3、启动

# 启动
systemctl start node_exporter
# 查看服务状态
systemctl status node_exporter访问地址:http://192.168.48.129:9100/metrics,可以看到监控的指标信息

4、配置Prometheus

global:scrape_interval: 5sevaluation_interval: 5sscrape_timeout: 5sscrape_configs:- job_name: 'prometheus'static_configs:- targets: ['localhost:9090']- job_name: 'linux-exporter'metrics_path: /metricsstatic_configs:- targets: ['localhost:9100']

5、grafana DashBoard添加
https://grafana.com/grafana/dashboards/12884-1-node-exporter-for-prometheus-dashboard-cn-v20200628/
https://grafana.com/grafana/dashboards
在这里插入图片描述

http://www.lryc.cn/news/42906.html

相关文章:

  • 机器学习|正则化|评估方法|分类模型性能评价指标|吴恩达学习笔记
  • python迭代器详解
  • 关于Docker逃逸
  • @Autowired和@Resource区别
  • 动态内存管理详细讲解
  • Python和Excel的完美结合:常用操作汇总(案例详析)
  • 卡特兰数、斯特林数基础
  • STL——mapmultimap和setmultiset
  • 2023热门抖音权重查询小程序源码
  • 153.网络安全渗透测试—[Cobalt Strike系列]—[生成hta/exe/宏后门]
  • 如何成为优秀的程序员
  • 多线程(四):线程安全
  • [ROC-RK3568-PC] [Firefly-Android] 10min带你了解Camera的使用
  • C++之模拟实现string
  • SpringBoot实战(十三)集成 Admin
  • mke2fs命令:建立ext2文件系统
  • 免费分享一个springboot+vue的办公系统
  • STM32数据搬运工DMA
  • 4、操作系统——进程间通信(2)(system V-IPC介绍)
  • 基于CentOS Stream 9平台搭建Nacos2.0.4集群以及OpenResty反向代理
  • 老杜MySQL入门基础 第二天
  • Python深度学习实战:人脸关键点(15点)检测pytorch实现
  • linux简单入门
  • 给准备面试网络工程师岗位的应届生一些建议
  • 主线程与子线程之间相互通信(HandlerThread)
  • 13基于双层优化的电动汽车日前-实时两阶段市场竞标
  • REDIS19_zipList压缩列表详解、快递列表 - QuickList、跳表 - SkipList
  • JavaScript 基础 - 第3天
  • 23.3.26总结
  • 【Java学习笔记】37.Java 网络编程