阿里云官网服务器,CPU使用率低,但负载很高,官网打开很慢,几乎无法打开
解决: 后来发现nginx日志中有一个ip疯狂的访问,通过阿里云安全组禁用此ip


一部分业务无法连接数据库,数据库最大连接数设置太小,调整之后正常


某个业务的多个程序都无法连接数据库,看报错是权限拒绝,后来看连接数据库信息中,MySQL账号的主机域部分发生反解析


redis服务器被攻击,开始疯狂的向外发流量,导致整个服务器网络拥堵, 后来发现这台redis没有做认证


服务器假死 , ip能ping通,但ssh连接不上,其他服务器也不能正常访问,后来通过显示器连接服务器,调整sshd优先级,然后通过ssh连接再处理问题


mysqldump备份数据库脚本手动执行,备份正常,放入定时任务执行,备份文件很多为0,后来在脚本中备份命令下添加sleep延时解决


故障案例一、NFS故障,造成系统cpu使用率低而负载极高。
故障概述:
公司使用NFS为web节点提供共享存储服务,某一天下午发现web节点CPU使用率低,而负载极高.登录web节点服务器排查发现后段NFS服务器故障.
影响范围:
网站看不到图片了。
处理流程:
通过ssh登录NFS服务器重启NFS服务
结果:
所有节点恢复正常。

	https://www.jianshu.com/p/347afe9ba9ee

故障案例二、首页访问速度时快时慢。.hk的域名网站业务,站点测试正常但是出现用户反映站点打开不稳定。
故障概述:
某天收到用户反应公司业务首页访问速度时快时慢,公司用的.hk的域名,站点测试正常但用户反应站点打开不稳定.
影响范围:
中国大陆内地用户
处理流程:
经过排查发现因为hk域名无法在中国备案,所以在香港地区购买的SLB,但ECS在内陆地区,于是出现测试正常使用时却出现站点时而不稳定的情况。通过跟云主机厂商的沟通后采取了拉一条从香港SLB到内陆ECS的专线以确保网络的稳定。
结果:
用户在访问时流量到达香港主机后,香港主机通过专线将流量分发到内地ECS主机集群,然后内地ECS主机集群处理完用户请求后,通过专线直接将数据发送给用户,缩减用户请求数据的延时。


故障案例三、将阿里云的域名迁移至万国数据中心,重新备案后所有子域名https都失效。[忘记替换]
故障概述:
将阿里云的域名迁移至万国数据中心,重新备案后所有子域名https都失效了。
影响范围:
全部ECS实例
处理流程:
1.重新备案已完成,但网站所有二级域名https都失效,造成业务瘫痪。
2.首先认为是CA证书厂商问题,询问无果。
3.通过排查发现失效的域名都是CDN域名
结果:
后来与CDN厂商进行沟通得知,由于域名重新备案后存在缓存,需要刷新CDN缓存,否则域名重新备案后无法快速的恢复到https的状态。


故障案例四、网站部分图片访问成功,部分图片访问出现404?
故障概述:
团队伙伴反应网站上的图片,有的可以显示有的不可以显示报404
影响范围:
网站某些图片
处理流程:
1.分析404一般是没有文件才出现的,于是直接上nginx服务器上查看,检查路径下是否有相应的文件,文件是存在的。
2.检查nginx错误日志,找不到这个错误记录。
3.测试访问其他图片,发现出错的图片都是以pc开头的,其他大部分正常。
4.检查nignx反向代理节点配置,发现其中一个location匹配的规则如下:
location ~ /(pc|hera_insure) {
proxy_pass http://10.137.146.93:80;
proxy_set_header Host h o s t : host: host:server_port;
proxy_set_header Remote_Addr $remote_addr;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_intercept_errors on;
}
5.修改配置匹配规则为: location ~ ^/(pc|hera_insure) …
结果:
在nginx中有这么一个规则,location后面~的优先级高于什么都不写的模式(局部匹配),即location ~ /(pc|hera_insure) 这个匹配规则优先级高于 location /uploadfiles这个规则。我们期望URL中以/uploadfiles起始的请求都进入到 location /uploadfiles规则, 以/pc开头或者/hera_insure开头的url请求都进入到location ~ /(pc|hera_insure)规则。
https://www.cnblogs.com/shihuc/p/6374551.html

故障案例五、网站经过多级CDN转发,请求至源站,但源站无法通过X-Forward-for获取客户端真实IP地址。[realip模块]

故障概述:
	网站经过多级CDN转发,请求至源站,但源站无法通过X-Forward-for获取客户端真实IP地址。
影响范围:
	用户访问网站无法获取客户端真实IP。
处理流程:
	一般我们会在Nginx之前的代理服务器中把请求的原始来源地址编码进某个特殊的HTTP请求头中,然后再在Nginx中把这个请求头中编码的地址恢复出来。这样Nginx中的后续处理阶段(包括Nginx背后的各种后端应用)就会认为这些请求直接来自那些原始的地址,代理服务器就仿佛不存在一样。ngx_realip模块正是用来处理这个需求的。
结果:
	配置好之后realip模块会将用户的真实IP获取到,解决了无法获取客户端真实IP的问题。

故障案例七、Nginx配置https出现ERR_SSL_PROTOCOL_ERROR?
listen 443 ssl; #没有添加ssl
故障概述:
公司部署了SSL证书服务,但是访问网站时出现ERR_SSL_PROTOCOL_ERROR报错。
影响范围:
出现这个问题,核心原因是配置没有开启SSL模块。
处理流程:
登录Nginx服务器修改配置文件,将listen 443;改为listen 443 ssl;,然后重启Nginx服务。
结果:
配置好后重启服务恢复正常。

聊天记录:http://cdn.xuliangwei.com/15819387546146.jpg

故障案例八、Nginx配置前端四层负载,代理至后端七层,由七层代理后端app程序,无法获取真实客户端IP。
故障概述:
由于公司架构原因,用户访问前端的四层负载均衡,四层负载将请求代理到七层负载均衡,由七层负载均衡代理到后端的app程序,导致后端app程序无法获取客户端的真实IP地址。
影响范围:
后端app程序无法获取客户端的真实地址。
处理流程:

结果:

故障案例九、Nginx出现大量的closed keepalive connection,而其他节点主机没有出现。
问题:因为两台服务器配置文件不一致,有一台开启了日志使用的是info级别
故障概述:
某天发现公司其中一台Nginx服务器日志里出现了大量的closed keepalive connection信息,但是其他节点的日志里没有出现。
影响范围:
导致Nginx日志不一致。
处理流程:
检查Nginx配置发现Nginx节点配置文件不一致,有一台开启的日志使用的是info级别。
结果:
将配置文件日志级别配置改为和其他节点一致后恢复正常。


故障案例十、Nginx IP_hash进行会话保持,但通过内网访问发现无论哪台主机,调度的都是同一台后端节点?
故障概述:
我们测试发现使用内网访问Nginx负载,负载开启了IP_hash进行会话保持,导致无论哪台主机访问都是调度到同一后端节点。
影响范围:
造成后端某一节点压力过高,但其他节点几乎没有压力。
处理流程:
1.关闭负载的IP_hash
2.搭建一个redis,将会话使用redis进行保持
结果:
使用redis进行会话保持后,负载将请求均匀的调度到后端节点。

故障案例二十一、 服务器假死
故障概述
测试环境下某台节点服务器出现了能ping通,但是ssh登录不上,任何其他操作也都没有反应,包括上面部署的nginx也打不开。
影响范围
运维人员通过ssh远程登录方式连接不上服务器。
处理流程
通过连接显示器直接登录服务器,使用nice将sshd的进程优先级调高,这样系统内存吃紧,还是能勉强登录sshd进行调试的。
结果
再通过ssh登录可以成功登录调试。


故障案例二十二、 crond误删除
故障概述
某天通过远程连接方式登录一台服务器执行了crontab命令,然后按了Ctrl+D,再查看时发现所有的crontab任务都没有了。
影响范围
定时任务无法正常执行。
处理流程
crontab有运行日志,在日志里面可以找到执行过的历史命令,前提是要有root权限。通过一段命令筛选出命令执行的日志,然后根据执行时间以及执行的命令进行恢复。
结果
crontab恢复完成,定时任务恢复正常。


故障案例二十三、 通过rm命令删除文件,但空间没有释放
故障概述
某天接到一个求助,用rm命令删除了一个文件,但是通过df -h查看文件所在的空间并没有释放出来。
影响范围
删除文件后依然占用存储空间。
处理流程
首先判断有进程占用此文件,导致rm删掉的只是一个名字,进程还在持续向文件里读取写入数据,所以导致空间不能释放掉。
结果
重启相关程序后进程重新启动,占用的空间马上就释放掉了。

故障案例二十四、ES出现CPU爆满
http://cdn.xuliangwei.com/ES-CPU-ERROR.pdf

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐