docker——监控以及常用监控工具介绍和docker部署

这篇具有很好参考价值的文章主要介绍了docker——监控以及常用监控工具介绍和docker部署。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

容器监控

在公司的时候,监控类的还是接触的比较多。基本上就是grafana + datasource(prometheus、pg、es) + 告警规则

下面简单介绍一些监控维度以及几种数据源工具和grafana使用(全部以docker部署,方便学习)

监控维度

在主机上运⾏的容器是监控的重中之重。作为应⽤的直接载体,使⽤者需要对容器的各类信息进⾏实时监控,以保证应⽤的正常运⾏。Docker在底层使⽤了Linux内核提供的资源机制——namespace和cgroups,以此来⽀持容器的运⾏。通过这些机制,我们可以很⽅便地获取容器的各项监控指标。

  • 容器的基本信息
  • 容器的运⾏状态
  • 容器的⽤量信息

​ 容器的基本信息包括容器的总数、ID、名称、镜像、启动命令、端⼝等信息。容器监控时可以依据容器的运⾏状态,即运⾏中、暂停、停⽌及异常退出,来统计各状态的容器的数量,并实时反馈各个容器的运⾏状态。容器的⽤量信息则是⽤户最关⼼的,也是监控中最为复杂的部分,它可以统计容器的CPU使⽤率、内存使⽤量、块设备I/O使⽤量、⽹络使⽤情况等资源的使⽤情况

监控命令

  • docker ps 命令

通过使⽤docker ps 命令,可以查看当前主机上的容器信息,包括容器ID、镜像名、容器启动执⾏命令、创建时间、状态、端⼝信息和容器名称。

  • docker images 命令

通过使⽤docker images 命令,可以查看当前主机上的镜像信息,包括镜像所属的库、标签、ID、创建时间和实际⼤⼩。该命令默认只会列出所有顶层镜像的信息,可以通过-a参数来查看所有中间层的镜像信息

  • docker stats命令

docker stats 命令是Docker1.5版本提供的命令,专⻔⽤于容器状态信息的统计,同时还有配套的API(GET /containers/(id)/stats),可供开发⼈员调⽤。使⽤该命令,可以实时监控运⾏中的容器运⾏情况,包括CPU、内存、块设备I/O和⽹络I/O,这些信息都会定期刷新以现实最新运⾏情况。

docker stats container_name_or_id
echo -e "GET /containers/cidemo/stats HTTP/1.0\r\n" | nc -U /var/run/docker.sock

者可以使⽤stats api 将容器的运⾏状态信息传递到⾃⼰构建的应⽤中,以实现容器的的系统监控

  • docker inspect 命令

通过使⽤docker inspect 命令,可以查看镜像或容器的底层详细信息,以此来了解镜像或容器的完整构建信息,包括基础配置、主机配置、⽹络设置、状态信息等。同时,如果需要查看其他特定信息,可以通过-f参数来设定输出格式。

docker inspect -f {{.NetworkSettings.IPAddress}} <容器名称/ID>
  • docker top 命令

通过使⽤docker top 命令,可以查看正在运⾏的容器中的进程的运⾏情况。该命令可以使⽤户在没有通过/bin/bash终端与容器交互式,帮助⽤户查看容器内的进程信息,包括进程号、⽗进程号、命令等。

  • docker port

docker port 命令的⽤途较为特定化,⽤于查看容器与主机之间的端⼝映射关系。

常用监控工具

cAdvisor

cAdvisor对Node机器上的资源及容器进⾏实时监控和性能数据采集,包括CPU使⽤情况、内存使⽤情况、⽹络吞吐量及⽂件系统使⽤情况。

源码

cadvisor获取的典型监控指标

指标名称                                   类型             含义
container_cpu_load_average_10s           gauge     过去10秒容器CPU的平均负
载
container_cpu_usage_seconds_total       counter   容器在每个CPU内核上的累
积占⽤时间 (单位:秒)
container_cpu_system_seconds_total     counter   System CPU累积占⽤时间
(单位:秒)
container_cpu_user_seconds_total         counter   User CPU累积占⽤时间
(单位:秒)
container_fs_usage_bytes                 gauge     容器中⽂件系统的使⽤量
(单位:字节)
container_fs_limit_bytes                 gauge     容器可以使⽤的⽂件系统总
量(单位:字节)
container_fs_reads_bytes_total           counter   容器累积读取数据的总量
(单位:字节)
container_fs_writes_bytes_total           counter   容器累积写⼊数据的总量
(单位:字节)
container_memory_max_usage_bytes     gauge     容器的最⼤内存使⽤量(单
位:字节)
container_memory_usage_bytes             gauge     容器当前的内存使⽤量(单
位:字节
container_spec_memory_limit_bytes       gauge     容器的内存使⽤量限制
machine_memory_bytes                     gauge     当前主机的内存总量
container_network_receive_bytes_total     counter   容器⽹络累积接收数据总量
(单位:字节)
container_network_transmit_bytes_total   counter   容器⽹络累积传输数据总量
(单位:字节)

cAdvisor 对外暴露的Prometheus容器指标

docker启动cAdvisor

# 安装cAdvisor 来收集容器信息 所有节点运⾏以下命令来安装cAdvisor
docker run -d \
--volume=/:/rootfs:ro \
--volume=/var/run:/var/run:ro \
--volume=/sys:/sys:ro \
--volume=/var/lib/docker/:/var/lib/docker:ro \
--volume=/dev/disk/:/dev/disk:ro \
--publish=8081:8080 \
--detach=true \
--name=cadvisor \
--privileged=true \
-v "/etc/localtime:/etc/localtime" \
google/cadvisor:latest
Node Exporter

Node Exporter 是prometheus官⽅提供的agent,是非常常用的采集agent。 同时可以在代码中自定义实现exporter,将指标暴露给prometheus采集

1.源码地址

2.默认启⽤指标

3.默认禁用指标

安装Node Exporter

# 安装Node Exporter 来收集硬件信息
docker run -d -p 9100:9100 \
-v "/proc:/host/proc" \
-v "/sys:/host/sys" \
-v "/:/rootfs" \
-v "/etc/localtime:/etc/localtime" \
--net=bridge \
prom/node-exporter \
--path.procfs /host/proc \
--path.sysfs /host/sys \
--collector.filesystem.ignored-mount-points "^/(sys|proc|dev|host|etc)
($|/)"

Prometheus

⼀个系统和服务监控系统。它以给定的时间间隔从配置的⽬标收集度量,评估规则表达式,显示结果,并在观察到指定条件时触发警报。

  • 多维数据模型(由度量名称和键/值维度集定义的时间序列)
  • PromQL提供⼀种强⼤⽽灵活的查询语⾔
  • 不依赖分布式存储;单服务器节点是⾃治的
  • ⼀种⽤于时间序列采集的HTTP pull模型
  • 通过批处理作业的中间⽹关⽀持推送时间序列
  • 通过服务发现或静态配置发现⽬标
  • 多种图形和仪表板⽀持模式

源码地址

安装

# 拉取镜像
docker pull prom/prometheus
# 查看docker的ip地址
ifconfig | grep -A 1 docker0
# 创建⽬录/opt/prometheus
mkdir -p /opt/prometheus
# 新增prometheus.yml⽂件
vim /opt/prometheus/prometheus.yml

# prometheus.yml的内容如下
# 其中targets中的⽹址是对应服务器所在的地址
global:
 scrape_interval: 20s
 evaluation_interval: 20s
scrape_configs:
 - job_name: 'prometheus'
   static_configs:
   - targets: ['192.168.28.12:9090']
 - job_name: 'linux'
   static_configs:
   - targets: ['192.168.28.12:9100']
 - job_name: 'cadvisor'
   static_configs:
   - targets: ['192.168.28.12:8081']


# 创建prometheus容器
docker run -itd --name prometheus -p 9090:9090 \
-v /opt/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml \
-v /etc/localtime:/etc/localtime:ro \
prom/prometheus

grafana

⼀个开源的监控系统Web UI ,⽀持多种数据源。⽀持⾃定义看板

可以去官网导入各种模板,并配置数据源配合使用

官网

docker run -d -i -p 3000:3000 \
-v "/etc/localtime:/etc/localtime" \
-e "GF_SERVER_ROOT_URL=http://grafana.server.name" \
-e "GF_SECURITY_ADMIN_PASSWORD=admin123" \
--net=bridge \
grafana/grafana

访问对应主机3000端口即可,admin账户密码设置为admin123文章来源地址https://www.toymoban.com/news/detail-821010.html

到了这里,关于docker——监控以及常用监控工具介绍和docker部署的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Prometheus+Grafana 监控平台实践-搭建&常用服务监控&告警

    Prometheus 是一个开放性的监控解决方案,通过各种 Exporter 采集当前主机/服务的数据,和 Grafana 相结合可以实现强大的监控和可视化功能 本篇将分享使用 docker compose 构建 Prometheus+Grafana,并监控之前文章所搭建的主机服务,分享日常使用的一些使用经验 文章较长,已安装可略

    2024年02月05日
    浏览(32)
  • prometheus监控mysql8.x以及主从监控告警

    mysql8.x主从部署请看下面文档 docker和yum安装的都有 Docker部署mysql8.x版本互为主从_争取不加班!的博客-CSDN博客 Mysql8.x版本主从加读写分离(一) mysql8.x主从_myswl8双主一从读写分离_争取不加班!的博客-CSDN博客 安装部署mysqld_exporter wget https://github.com/prometheus/mysqld_exporter/releas

    2024年02月16日
    浏览(26)
  • 云原生监控平台 Prometheus 从部署到监控

    角色 节点 IP地址 监控端 Prometheus ,Grafana,node_exporter ,Nginx 47.120.35.251 被监控端1 node_exporter 47.113.177.189 被监控端2 mysqld_exporter,node_exporter,Nginx,Nginx Exporter 47.113.146.118 2.1.1 二进制安装脚本安装Nginx 2.1.2 修改Nginx.conf 2.2.1 下载相关软件包 1.2.2 将Prometheus添加至System管理  1.2

    2024年02月11日
    浏览(30)
  • Prometheus监控实战之Docker容器监控

    容器的使用已经非常普及,将服务迁移到容器上正成为了越来越多公司的选择。而对于运维人员而言,熟悉容器的使用与监控,也已成为一项必不可少的专业技能。 关于容器的开源产品,目前知名的有Docker、Containerd、CoreOS rkt、LXC 等,在这其中Docker占据了绝对的统治地位,也

    2024年02月06日
    浏览(24)
  • 【云原生】Docker容器命令监控+Prometheus监控平台

    目录 1.常用命令监控 docker ps docker top docker stats 2.weave scope 1.下载 2.安装 3.访问查询即可 3.Prometheus监控平台 1.部署数据收集器cadvisor 2.部署Prometheus 3.部署可视化平台Gragana 4.进入后台控制台 1.常用命令监控 docker ps 字段含义 docker top 查看指定容器内的进程 选项 查看详细docker容器

    2024年02月15日
    浏览(25)
  • Prometheus + grafana 的监控平台部署

    vim /opt/module/prometheus-2.44.0/prometheus.yml 命令 修改配置文件 命令 分发 /opt/module/node_exporter-1.6.0 目录到需要监控的节点 使用systemctl 管理node_exporter服务 分发到各个节点,并且启动服务 使用systemctl管理 kafka_exporter 服务 命令 使用systemctl 管理grafana 服务 命令 1.7.1 导入 grafana Dashboa

    2024年02月09日
    浏览(22)
  • prometheus+cadvisor监控docker容器

    一、安装cadvisor 二、运行容器 若出现如下报错 执行 三、访问页面 ip:8088 四、Prometheus集成 五、在grafana中导入面板 六、监控图

    2024年02月11日
    浏览(23)
  • Prometheus配置Grafana监控大屏(Docker)

    从容器拷贝配置文件至对应目录 查看内容 删除临时docker容器 相关参数说明 http://ip:3000/,注意端口开放 修改中文界面(不需要可以跳过) 点击右上角头像,选择Profile 打开菜单,在连接中选择数据源 选择Prometheus 填写服务地址 确保服务可以访问后,点击保存 最方便就是通过

    2024年01月24日
    浏览(26)
  • Prometheus监控之SNMP Exporter介绍和数据展现

    由于技术能力有限,文章仅能进行简要分析和说明,如有不对的地方,请指正,谢谢🙂。 SNMP协议全称是:Simple Network Management Protocol,译为简单网络管理协议,是作为TCP/IP网络管理标准协议,为不同的设备提供统一接口,实现了网络设备之间的统一管理。 SNMP协议分为三个版

    2023年04月26日
    浏览(28)
  • 云原生监控平台 Prometheus 的相关概念及部署

          Prometheus 是一个开源的系统监控和报警系统,在 2012 年由 SoundCloud 公司创建,并于 2015 年正式发布。2016 年,Prometheus 正式加入 CNCF (Cloud Native Computing Foundation),成为继kubernetes之后第二个在CNCF托管的项目, 现已广泛用于在容器和微服务领域中得到了广泛的应用,当然不仅

    2024年02月10日
    浏览(28)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包