__都非拉得的博客

Posted on 26 Sep 2014

描述

服务器宕机, 网络能ping通,但是ssh,http无法连接. 宕机时间从8:57:32到9:54:34 CentOS 5.4 x64 2014-9-26 8:57:32

问题出现之前的操作

对服务器操作系统进行了更新 ( CentOS 5.10 Final x64 )

判断可能原因

ssh vsftpd 暴力破解

# cat /var/log/secure | grep 'Invalid user' # 不存在跟没有认证的用户的ssh登录尝试
# cat /var/log/secure | grep -v invalid | grep 'Failed password' # 授权过的但是密码不对ssh登录尝试
# cat /var/log/secure | grep 'incorrect password' # 授权过的但是密码不对vsftpd登录尝试

开启了IPv6,IPV4与IPV6冲突导致SSH无法绑定端口

# ifconfig # 看下面是否存在ipv6

SSH配置或者没有开启

# /etc/init.d/sshd status

iptables规则

# iptables -F # 清除预设表filter中所有规则链中的规则。
# iptables -X # 清除预设表filter中使用者自定链中的规则。
# iptables -Z
# service iptables stop #关闭防火墙

selinux开启

# vi /etc/selinux/config
#SELINUX=enforcing #注释掉
#SELINUXTYPE=targeted #注释掉
SELINUX=disabled #增加

shutdown -r now #重启系统

端口占用

# lsof -i tcp:80 # tcp:22
COMMAND   PID   USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
httpd    1342 apache    3u  IPv6 514672      0t0  TCP *:http (LISTEN)

...

# pkill http #或者 kill -9 1342

内存耗光

# free -m
             total       used       free     shared    buffers     cached
Mem:          5961       5414        547          0        752       3850
-/+ buffers/cache:        811       5150
Swap:         1992         52       1939

# cat /var/log/message | grep "out of memory" 

CPU

# top

主要是看进程的cpu/占用内存/运行时间,当然也可以看内存使用以及负载等.

负载

# uptime 
12:40:11 up  2:47,  1 users,  load average: 0.04, 0.03, 0.08

当然,现在的负载小多了,当时的负载我记得是在16点几.

问题出现后的操作

初步原因

服务器内存耗光,apache进程导致cpu飙升到100%

深度原因

mod_pagespeed在更新后自动打开了,在老网站生成缓存的时候出错了.
但是这个操作几乎无限进行,结果瞬间生成了大量的错误日志写入到了http错误日志中,
大量的写操作导致宕机

当然,至于为什么mod_pagespeed会出现这种问题,继续寻找中…

EOF