温馨提示×

centos dropped怎样监控告警

小樊
42
2026-10-09 02:17:04
栏目: 智能运维

在 CentOS 上,“dropped” 通常指网络丢包(packet dropped),也可能是系统丢包/服务丢弃请求。下面按最常见场景给你一套可落地的监控 + 告警方案。


一、先明确“dropped”是什么

常见 dropped 位置:

  1. 网卡层丢包(ifconfig / ip -s link)
  2. 协议栈丢包(netstat -s / nstat)
  3. 连接跟踪表满(nf_conntrack)
  4. 防火墙 DROP(iptables / nftables)
  5. 应用层丢弃(如 Nginx、HAProxy)

二、基础查看命令(先确认问题)

1. 网卡丢包

ip -s link
ifconfig

关注:

  • RX dropped
  • TX dropped

2. 协议栈丢包

netstat -s | egrep 'drop|retrans|overflow'
nstat -az | grep -i drop

3 conntrack 丢包

dmesg | grep conntrack
cat /proc/sys/net/netfilter/nf_conntrack_count

三、推荐监控方案(生产可用)

方案 1:Node Exporter + Prometheus + Alertmanager(最推荐)

1️⃣ 安装 node_exporter

wget https://github.com/prometheus/node_exporter/releases/download/v1.7.0/node_exporter-1.7.0.linux-amd64.tar.gz
tar zxvf node_exporter-*.tar.gz
cd node_exporter-*
./node_exporter &

2️⃣ Prometheus 抓取

scrape_configs:
  - job_name: node
    static_configs:
      - targets: ['centos-ip:9100']

3️⃣ 告警规则(示例)

groups:
- name: network-drop
  rules:
  - alert: NetworkPacketDropped
    expr: rate(node_network_receive_errs_total[5m]) > 0
    for: 5m
    labels:
      severity: warning
    annotations:
      summary: "网卡丢包告警"
      description: "{{ $labels.instance }} 存在丢包"

4️⃣ Alertmanager 发邮件/钉钉/微信


方案 2:Zabbix(适合传统运维)

监控项:

  • net.if.in[eth0,errors]
  • net.if.out[eth0,errors]
  • net.tcp.listen.drop

触发器:

{host:net.if.in[eth0,errors].last()}>0

方案 3:轻量级脚本(无监控平台)

#!/bin/bash
DROP=$(ip -s link show eth0 | awk '/RX:/ {getline; print $3}')
if [ "$DROP" -gt 100 ]; then
  echo "eth0 dropped: $DROP" | mail -s "CentOS drop alert" admin@xx.com
fi

加 crontab:

* * * * * /root/check_drop.sh

四、常见 dropped 原因 & 处理

原因 处理
网卡 buffer 小 ethtool -G eth0 rx 4096
conntrack 满 调大 nf_conntrack_max
带宽打满 限速 / 扩容
防火墙 DROP 检查 iptables
半连接攻击 开启 SYN Cookie

五、建议你补充的信息(我可以更精准)

你可以告诉我:

  1. 是 网络 dropped 还是服务 dropped
  2. 命令看到的具体 dropped 数值
  3. 是否有 Prometheus / Zabbix
  4. 是物理机 / 云服务器 / 容器

我可以直接帮你写 完整告警规则 + 脚本。

0 踩