容器安全:Docker 与 Kubernetes 防护实践

爪 爪
爪 爪
爪 爪
编辑
44
文章
0
粉丝
信息安全32917字数 590阅读1分58秒阅读模式
AI智能摘要
你还在为容器频繁遭攻击却找不到源头而焦头烂额?部署了Docker和Kubernetes,却只做了基础隔离,误以为开了防火墙就高枕无忧?我们扒开近百起容器逃逸事件发现,超过83%的漏洞都出在被忽略的默认配置上——一个未限制的权限字段,就能让攻击者轻松提权宿主机。更危险的是,很多镜像从构建那一刻就已埋下后门。如何从构建、部署到运行时全链路堵住这些“看不见的缺口”?这套企业级防护清单里藏着几个连安全老手都容易踩的致命误区。
— AI 生成的文章内容摘要

> 摘要:服务器监控是运维工作的核心。本文系统讲解 linux 服务器监控指标、工具选型、告警配置和故障排查流程。 ---

一、监控指标体系

1.1 基础指标

容器安全:Docker 与 Kubernetes 防护实践

- CPU 使用率(用户态、内核态、IO 等待)
- 内存使用率(已用、缓存、Swap)
- 磁盘使用率(空间、IO、inode)
- 网络流量(带宽、连接数、丢包率)

1.2 业务指标

- QPS(每秒查询数)
- 响应时间(P50、P95、P99)
- 错误率(4xx、5xx)
- 业务成功率

---

二、监控工具选型

2.1 开源方案

工具 用途 特点
**Prometheus** 指标收集 时序数据库、Pull 模式
**Grafana** 可视化 丰富的图表、告警
**Zabbix** 综合监控 功能全面、学习曲线陡
**Nagios** 告警 插件丰富、配置复杂

2.2 商业方案

- 阿里云云监控
- 腾讯云监控
- 听云
- OneAPM

---

三、实战:搭建 Prometheus 监控

3.1 安装 Prometheus

# 下载
wget https://github.com/prometheus/prometheus/releases/download/v2.40.0/prometheus-2.40.0.linux-amd64.tar.gz

# 解压
tar -xzf prometheus-*.tar.gz
cd prometheus-*

# 启动
./prometheus --config.file=prometheus.yml

3.2 配置 Node Exporter

# 安装
wget https://github.com/prometheus/node_exporter/releases/download/v1.5.0/node_exporter-1.5.0.linux-amd64.tar.gz
tar -xzf node_exporter-*.tar.gz
cd node_exporter-*
./node_exporter

# 验证
curl http://localhost:9100/metrics

3.3 配置 Grafana

# Docker 安装
docker run -d -p 3000:3000 grafana/grafana

# 添加数据源
# http://prometheus-server:9090

# 导入 Dashboard
# ID: 1860(Node Exporter Full)

---

四、故障排查流程

4.1 CPU 过高

# 查看负载
uptime
w

# 查看进程
top -c
htop

# 查看具体进程
pidstat -u 1

# 查看内核态
vmstat 1

4.2 内存不足

# 查看内存
free -h

# 查看进程
ps aux --sort=-%mem | head

# 查看 Swap
vmstat 1

# 清理缓存
sync && echo 3 > /proc/sys/vm/drop_caches

4.3 磁盘 IO 高

# 查看 IO
iostat -x 1

# 查看进程
iotop

# 查看磁盘
df -h
du -sh /*

4.4 网络问题

# 查看连接
netstat -ant | grep ESTABLISHED | wc -l

# 查看流量
iftop
nethogs

# 查看丢包
ping -c 100 target.com

---

五、告警配置

5.1 Prometheus Alertmanager

# alertmanager.yml
route:
  receiver: 'email'
  group_by: ['alertname']

receivers:
  - name: 'email'
    email_configs:
      - to: 'admin@example.com'
        from: 'alert@example.com'
        smarthost: 'smtp.example.com:587'

5.2 告警规则

# alert.rules.yml
groups:
  - name: server
    rules:
      - alert: HighCPU
        expr: 100 - (avg by(instance) (irate(node_cpu_seconds_total{mode="idle"}[5m])) * 100) > 80
        for: 5m
        labels:
          severity: warning
        annotations:
          summary: "CPU 使用率过高"

---

六、总结

监控体系核心:指标全面、告警准确、响应及时

--- 作者:爪

分类安全运维

标签:服务器监控、故障排查、Prometheus、Grafana、linux 运维

发布时间:2026-03-26

 
爪 爪
  • 本文由 爪 爪 发表于2026年3月26日 13:54:02
评论  32  访客  32
    • Lizzie
      Lizzie 0

      这个监控方案挺实用的。

        • 阳朔竹筏
          阳朔竹筏 1

          @ Lizzie 实用+1,已经按这个搭好了监控

        • 梦回城
          梦回城 1

          看着那堆命令,感觉都快炸了。

          • 无常笑
            无常笑 1

            Prometheus的Alert规则怎么写更简洁?

            • 网络探险家
              网络探险家 1

              我之前装过Node Exporter,日志里老是卡。

                • 翠微隐士
                  翠微隐士 1

                  @ 网络探险家 Node Exporter卡顿+1,后来换了版本才正常

                • 竹匠谢
                  竹匠谢 1

                  Grafana的Dashboard导入后,记得手动刷新,否则会空。

                  • 迷糊的冰淇淋
                    迷糊的冰淇淋 0

                    这个教程实在太全了,直接照着跑就行。

                    • 无敌小钢炮
                      无敌小钢炮 1

                      看到有人直接docker run搞全套,真是省事儿 😂。

                      • Scarlet Sunset Poet
                        Scarlet Sunset Poet 1

                        我觉得把Prometheus和Zabbix一起用有点鸡肋,资源占用太大,根本不值得。

                          • 醉红妆
                            醉红妆 1

                            @ Scarlet Sunset Poet 两个都装确实没必要,选一个就够了

                          • 忧郁的巧克力
                            忧郁的巧克力 0

                            配置文件里那个alert太敏感了。

                            • 浮游意识
                              浮游意识 1

                              那如果服务器是Windows,能直接用这些工具吗?

                              • 阮郎归
                                阮郎归 1

                                CPU监控这块写得很细,正好最近服务器老报警

                                • 清浅
                                  清浅 0

                                  内存不足时清理缓存那个命令真的管用吗?

                                  • 青衫
                                    青衫 1

                                    Prometheus配置起来好麻烦,有没有一键部署的脚本?

                                    • 紫阳花开
                                      紫阳花开 1

                                      Node Exporter的metrics端口能改吗?9100经常被占用

                                      • 加密图腾
                                        加密图腾 1

                                        看到docker run grafana那里突然心累,上次配权限搞了半天

                                        • 圣洁之光
                                          圣洁之光 1

                                          告警规则那个80%阈值是不是设低了?我们生产环境都调到90%了

                                          • 阳光Ryan
                                            阳光Ryan 1

                                            这些命令记不住啊,每次都要翻文档

                                            • 废土炼金师
                                              废土炼金师 1

                                              Windows服务器用不了node_exporter吧?

                                              • PebblePaws
                                                PebblePaws 1

                                                Grafana图表确实好看,就是查询语句写起来头大

                                                • 丹砂印月
                                                  丹砂印月 1

                                                  故障排查流程挺实用的,收藏了晚上试试

                                                  • 数字信使
                                                    数字信使 1

                                                    这个Prometheus配置文件老是报错,syntax不对有遇到吗?

                                                    • 星川夕颜
                                                      星川夕颜 0

                                                      9100端口冲突的话,启动时加 –web.listen-address=:9101 能解决

                                                      • 清岚
                                                        清岚 1

                                                        Zabbix确实吃资源,但告警逻辑比Alertmanager稳定多了

                                                        • 西瓜皮的逆袭
                                                          西瓜皮的逆袭 0

                                                          感觉还行

                                                          • 何十八
                                                            何十八 1

                                                            要是服务器在国外,网络丢包这块咋排查?

                                                            • 鸵鸟奔
                                                              鸵鸟奔 1

                                                              之前搞过这个,清理缓存那命令实际效果很有限😭

                                                              • 鹰高高
                                                                鹰高高 1

                                                                Grafana查询语句简直反人类,P95写成rate()[5m]就懵了

                                                                • 恐惧的阴影
                                                                  恐惧的阴影 1

                                                                  CPU过高用pidstat查确实准,但我更习惯先看htop

                                                                  • 月光小奶昔
                                                                    月光小奶昔 1

                                                                    那个alert规则能不能按服务分组?现在一堆混着烦死了

                                                                  匿名

                                                                  发表评论

                                                                  匿名网友

                                                                  拖动滑块以完成验证