在系統日志中(/var/log/messages),有時會看到大面積的下面的報錯:
nf_conntrack: table full, dropping packet
這說明系統接到了大量的連接請求,但是系統的連接跟蹤表已經滿了,無法再記錄新的連接了。這時候,系統會丟棄新的連接請求。
(資料圖片)
在 CentOS 下,默認的連接跟蹤表大小是 65536,可以通過下面的命令查看:
cat /proc/sys/net/netfilter/nf_conntrack_max
如果流量比較小,這個值是沒問題的,但如果流量巨大,這個值可能就有點太小了。
顯然,調大最大值的限制就可以了。不過更大的限制意味著可以承接更多連接,意味著要耗費更多資源,這點要注意。
查看當前有多少活躍連接:
cat /proc/sys/net/netfilter/nf_conntrack_count
如果這個值跟上面介紹的 nf_conntrack_max 已經很接近了,就說明快滿了,需要調大 nf_conntrack_max??梢允褂孟旅娴拿钆R時調大:
echo 524288 > /proc/sys/net/netfilter/nf_conntrack_max
如果不想每次重啟都要重新設置,可以修改 /etc/sysctl.conf,加入下面的配置:
net.netfilter.nf_conntrack_max = 524288
為了緩解大量連接的問題,您可能還需要考慮減少服務器等待連接關閉/超時的時間。在 /etc/sysctl.conf 中加入下面的配置:
net.netfilter.nf_conntrack_tcp_timeout_close_wait = 60net.netfilter.nf_conntrack_tcp_timeout_fin_wait = 60net.netfilter.nf_conntrack_tcp_timeout_time_wait = 60
平時使用 categraf(https://github.com/flashcatcloud/categraf) 監控就可以了,categraf 提供了 input.conntrack 采集插件,可以采集 conntrack 的信息,建議采集配置如下:
conf/input.conntrack/conntrack.toml:
files = [ "ip_conntrack_count", "ip_conntrack_max", "nf_conntrack_count", "nf_conntrack_max"]dirs = [ "/proc/sys/net/ipv4/netfilter", "/proc/sys/net/netfilter"]# ignore errorsquiet = true
完事配置一個類似下面的監控規則即可:
conntrack_ip_conntrack_count / ip_conntrack_max > 0.8
另一個監控方案,是直接監控系統日志,算是一個兜底監控方案,可以采用 catpaw 來監控,catpaw 提供了 journaltail 采集插件,可以讀取近期系統日志,grep 關鍵字,如果出現異常關鍵字就告警,配置如下:
conf.d/p.journaltail/journaltail.toml:
[[instances]]# journalctl -S -${time_span}time_span = "1m"# relationship: orkeywords = ["Out of memory", "nf_conntrack: table full, dropping packets"]# check rule namecheck = "Critical System Errors"# # gather intervalinterval = "30s"[instances.alerting]## Enable alerting or notenabled = true## Same functionality as Prometheus keyword "for"for_duration = 0## Minimum interval duration between notificationsrepeat_interval = "5m"## Maximum number of notificationsrepeat_number = 3## Whether notify recovery eventrecovery_notification = true## Choice: Critical, Warning, Infodefault_severity = "Warning"
catpaw 的入門使用,可以參考文章:《太卷了,史上最簡單的監控系統 catpaw 簡介》
免責聲明:市場有風險,選擇需謹慎!此文僅供參考,不作買賣依據。