暂无图片
暂无图片
2
暂无图片
暂无图片
暂无图片

Docker 容器日常巡检

watson 2024-07-30
111

1 docker/podman ps查看容器状态

Docker/podman ps -a 查看容器状态STATUS:
图片
Exited(0):表示容器正常退出
Exited(其他数字):容器异常退出,需要通过log 查看原因
Up:容器在运行状态
Up(Paused):容器暂停
Up(healthy):容器监听健康

Up(unhealthy):容器监听异常


2 健康检查—HealthCheck
一些参数需要docker 17.05以上支持
2.1 通过docker run或者dockerfile添加健康检查
例如:
docker run --name=nginx --health-cmd="curl --silent --fail localhost/ || exit 1" --health-inter-val=30s --health-retries=3 --health-timeout=10s --start-period=60s nginx:latest
--interval:两次健康检查的间隔,默认为 30 秒
--timeout: 健康检查超时时间,,默认 30 秒
--retries: 连续失败次数,默认 3 次。
--start-period: 启动的初始化时间,默认 0 秒
--health-cmd: shell和exec 格式,取命令的返回值结果
0表示成功,1表示失败
图片
STATUS, healthy表示健康
unhealthy表示不健康
reserved保留值,不适用
2.2 输出健康检查状态
docker/podman inspect --format '{{json .State.Health}}' 容器名| python -m json.tool
图片

输出healthy表示健康,用户可以编写脚本监控容器状态做报警


3 docker stats查看容器状态
图片

可以通过docker stats查看容器的cpu, 内存,网络,IO的使用情况


4 通过第三方工具监听容器
这里主要介绍prometheus+grafana+cadvisor
4.1 prometheus介绍
prometheus通过node-exporter收集node主机的信息
图片
可以看到up状态和unhealthy状态的node节点主机
Unhealthy表示node节点node-exporter异常
Prometheus是一款强大的第三方工具,除了docker容器监控,还支持mysq,数据仓库,Hadoop,k8s 等开源系统
4.2 cadvisor介绍
Google的开源cadvisor,帮助收集,监听容器的status和数据,主要是CPU, 内存,FS,网络等usage
图片
4.3 grafana介绍
Grafana作为展示prometheus和cadvisor的数据,也可以实现自定义规则报警。(可以去grafana官网搜寻需要监控的模板)
图片
可以通过dashboard展示node主机上的所有容器
通过panel,metrics自定义需要收集的容器数据
图片
通过自定义规则统计需要收集的容器数据,也可以统计宕机状态的容器
Grafana支持自定义报警功能
图片

如果是大量的容器监控报警,建议使用alertmanager做报警


5 docker容器的日志检查
Docker的日志分为两类,一类是 Docker引擎日志;另一类是容器日志。引擎日志一般都交给了系统日志。容器日志可以理解是运行在容器内部的应用输出的日志。
默认情况下,docker logs显示当前运行的容器的日志信息,内容包含 STOUT(标准输出) 和 STDERR(标准错误输出)。日志都会以 json-file的格式存储于 /var/lib/docker/containers/<容器id>/<容器id>-json.log
CRIO的日志,存放在/var/log/containers/
通过docker/podman logs命令查看容器的日志
图片
查看最近1小时日志
docker/podman logs --since 60m容器名
查看某时间段日志
docker/podman logs -t --since="" --until "" 容器名
建议:docker/podman run时候,日志文件-v到宿主机上,
docker/podman run -d --name xxx -v /opt/log:/log xxx:latest
通过elk去抓取宿主机上的日志,尽量不要通过docker logs去检查容器日志。
除了docker容器,本文也向大家介绍kubernetes的日常巡检。
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论