【docker】资源使用率验证及告警

说明

Docker资源使用率可以通过以下命令进行验证:

使用 docker stats 命令查看容器的实时资源使用情况,例如:

bash 复制代码
docker stats <container_id>

该命令会展示容器的CPU、内存、网络IO、磁盘IO等各项资源的使用情况。2. 使用 docker stats 命令结合 --no-stream 参数导出容器的资源使用情况快照,例如:

bash 复制代码
docker stats --no-stream <container_id> > stats.txt

该命令将容器的资源使用情况快照导出到 stats.txt 文件中,可以在需要时查看。3. 使用 top 命令查看容器的资源使用情况,例如:

bash 复制代码
docker exec -it <container_id> top

该命令会展示容器中运行的进程信息,包括CPU、内存等资源的使用情况。

脚本

bash 复制代码
#!/bin/bash

cd `dirname $0`

hostname=$(hostname)
ip=$(/sbin/ifconfig -a | grep inet | grep -v 127.0.0.1 | grep -v inet6 | grep -E "10|192" | awk '{print $2}')

# 获取docker的资源使用情况
ids=`docker ps | awk '{print $1}'`

if [ -n "${ids}" ]; then
   index=0 
   for id in ${ids}
    do
       # 删除第一行的数据i
       if [[ $index == 0 ]]; then
	        index=1
	        continue
        fi

        # docker 资源使用率
	    resource=`docker stats --no-stream | grep $id`
	    echo "$resource"
	
	    # 名称
	    docker_name=`echo $resource | awk '{print $2}'`
	    echo "docker名称:$docker_name"
	
	    # cpu使用率
	    cpu_rate=`echo $resource | awk '{print $3}'`
	    echo "CPU使用率:$cpu_rate"
	
	    # 内存使用
	    mem_used=`echo $resource | awk '{print $4}'`
	    mem_total=`echo $resource | awk '{print $6}'`
	    mem_rate=`echo $resource | awk '{print $7}'`
	    echo "内存: 总共$mem_total,已用$mem_used,使用率$mem_rate"
	
	    # 网络
        net_input=`echo $resource | awk '{print $8}'`
        net_output=`echo $resource | awk '{print $10}'`
        echo "网路流量:流入$net_input,流出$net_output"
	
	    # 磁盘读写
	    block_in=`echo $resource | awk '{print $11}'`
	    block_out=`echo $resource | awk '{print $13}'`
	    echo "磁盘:写$block_in,读$block_out"
	
	    # 进程数量
        pids=`echo $resource | awk '{print $14}'`
        echo "进程数:$pids"
	
	    # 逻辑验证,发送告警

    done
fi

结果

相关推荐
n1121226 分钟前
Docker 容器时区错 8 小时:3 个坑
运维·docker·容器·故障排查·服务器运维·容器时区
小白的码BUG之路1 小时前
K8s -- 搭建过程中经常遇到的问题
云原生·容器·kubernetes
慈云数据1 小时前
用 DSH 辅助部署一个网站监控平台:Uptime Kuma + Docker 实战
运维·docker·容器
螺蛳粉 螺蛳粉2 小时前
第 03 篇:为什么 K8s 的最小调度单元是 Pod 而不是容器:pause 容器与边车模式(底座认知 03)
docker·云原生·容器·kubernetes·etcd·运维排障·kube-apiserver
艾伦_耶格宇2 小时前
【kubernetes - 1.28版本】-9 K8S-dashbord可视化界面
云原生·容器·kubernetes
无人生还别怕19 小时前
如何搭建k8s服务(containerd部署)
linux·云原生·容器·kubernetes·openanolisos
杨浦老苏20 小时前
把项目管理搬回自己服务器:Windshift部署与避坑
docker·项目管理·群晖
木雷坞20 小时前
Baserow Docker部署:导入设备借用CSV,再用表单新增登记
运维·docker·容器
fb_1234521 小时前
从探针到权限:一篇吃透 Kubernetes 健康检查、RBAC 认证授权与 Dashboard 可视化管理
云原生·容器·kubernetes
wefg121 小时前
【Docker】基本指令
运维·docker·容器