在2019-02-06 日下午,zabbix突然出现大量unreachable的告警。

处理过程如下(嫌长可以直接从第11开始看):
1.检查几个告警机器发现有不少断图;
2.检查队列发现有台proxy有大量积压,确认为单点proxy异常非server异常;
3.proxy服务器的CPU/内存全部正常;
4.检查proxy日志有大量“first network error, wait for 60 seconds” 报错;
5.怀疑可能proxy配置参数不够(以前的经验),根据服务器当前容量调大了proxy的部分cache并新增了部分poller数量。
6.第5部完成后重启proxy,观察10分钟,问题未解决。
7.重新思考,已确认的是因为队列积压导致断图,遂开始寻找队列积压原因;
8.检查proxy和server的数据库,负载正常,非数据库引发。
9.检查服务器的流量,发现从15:40开始proxy所在服务器的进/出口流量有陡降。确认是因为proxy无法将数据及时推送到server导致的大量队列积压。
10.netstat检查连接数正常。
11.查看 /var/log/messages 发现从15:40开始有大量“nf_conntrack: table full, dropping packet” 报错,时间吻合,定位原因。
12.修改net.nf_conntrack_max 与 net.netfilter.nf_conntrack_max 参数调整至262144。sysctl -p 后错误日志消失。(感谢eric大佬支持)
13.检查服务器流量,恢复正常,积压队列数量开始降低。
14.故障消失。

故障总结:
直接原因:net.nf_conntrack_max 配置不够,导致的服务器网络不稳定。
综合原因:
1.这台proxy本身配置较高,后面挂了3754个hosts,需要 1329.35的vps,所以本身有大量的链接。
2.linux nf_conntrack_max的默认值较小。



如果想赏钱,可以用微信扫描下面的二维码,一来能刺激我写博客的欲望,二来好维护云主机的费用; 另外再次标注博客原地址 itnotebooks.com 感谢!

手把手搭建CI/CD(一)

gitlab + tekton + argoCD

阅读全文

自动分析国家关于每年的法定节假日安排公告,生成查询接口自动判断作息日

背景 工作中经常遇到需要根据作息去做排班系统、跑定时报表任务、统一告警通道、巡检等等场景,之前是比较粗暴的区分周一~周五、周六和周日这样,遇到法定节...

阅读全文

Golang Terraform 创建阿里云ECS云主机

封装NewTerraform方法 将Terraform的环境相关信息都在这个方法内定义完成 1. Terraform工作目录定义 2. Plugins初始化,考虑到在线初始化太慢,这里是提前下...

阅读全文

1 条评论

欢迎留言