相较于其他网络设备,如交换机、电脑终端等,服务器发生故障的概率较小,但对企业的影响是很大的。一般像网站无法访问时,大多都是服务器出了问题。作为服务器工程师除了要有服务器基础知识以外,还需要具备服务器故障的诊断思路,这样才能最快速的解决问题也可以减少故障停机时间。
一、服务器常见故障类型分类:
A. 开机无显示
B. 加电BIOS自检阶段故障
C. 系统和软件安装阶段故障和现象
D. 操作系统启动失败
E. 系统运行阶段故障
二、服务器常见故障现象及其对应的排除方法
A.服务器开机无显示(加电无显示和不加电无显示)
1. 检查供电环境
2. 检查电源和故障指示灯(故障指示灯状态,目前很多厂商的服务器都有故障指示灯,或故障诊断卡等。)
3. 按下电源开关时,键盘指示灯是否亮、风扇是否全部转动
4. 是否更换过显示器,尝试更换另外一台显示器
5. 插拔内存,用橡皮擦擦拭一下金手指,如果在故障之前有增加内存,去掉增加的内存尝试
6. 是否添加了CPU,如果有增加CPU尝试去掉
7. 去掉增加的第三方I/O卡包括Raid卡等
8.ClearCMOS (记得使用跳线来清除,尽量不要直接拔电池,每款服务器清除跳线位置不一致,具体找不到电话联系一下厂商客服)
9. 尝试更换主板、内存等主要部件
10.清除静电,将电源线等外插在服务器上的线缆全部拔掉,然后轻按开机键几下
B.加电BIOS自检报错
1. 根据BIOS自检报错信息提示
2. 查看是否外*第三方的卡或者添加部件,如果有还原基本配置重启
3. 做最小化测试
4. 尝试清除CMOS
5. 看能否正常进入BIOS
C. 系统安装阶段故障和现象
1.查看服务器支持操作系统的兼容版本(从厂商能查到兼容性列表)
2.系统安装蓝屏(对蓝屏故障代码诊断)
3.安装在分区格式化的时候找不到硬盘
(阵列驱动没有安装或者没有配置阵列,可以尝试适应引导光盘安装)
4.大于2T的硬盘式应该如何分区(必须使用阵列卡才能实现或者有外插识别卡)
(使用阵列卡配置阵列分成一个小于2T的空间,一个大于2T的空间,然后将系统安装在小于2T的上面,安装好系统后在使用GPT方式分区即可)
5.安装过程是死机
(检查兼容性列表---查看硬盘接口选择是否正确---阵列驱动安装是否正确---尝试最小化配置安装检查是否为内存和CPU等问题)
6.引导光盘安装失败
(使用引导光盘安装失败,查看引导光盘版本是否匹配,尝试手动安装系统,如有阵列重新配置阵列引导安装)
D. 操作系统启动失败
1.在系统启动自检过程中有报错 (具体查看启动报错信息在定方案)
2.启动系统蓝屏(查看蓝屏代码核对)
3.进入登陆界面死机(查看进入单用户或者安全模式是否正常,进入BIOS是否正常、是否会死机,进入磁盘阵列查看阵列状态是否正常,检查测试硬盘是否有坏道,最小化配置启动)
4.忘记密码 (windows 使用PE 破解,linux 进入单用户破解)
E. 系统运行阶段故障
1.安装数据库等应用软件报错 (对系统版本和软件版本是否兼容,查看报错信息是否缺少插件)
2.系统运行速度变慢 (查*病毒,检测阵列状态,测试硬盘有无坏道,重新安装系统或者修复)
3.运行蓝屏 (查看蓝屏代码目录)
4.运行死机 (检查进入BIOS是否死机,进入系统后测试部件温度是否正常,windows系统查看dump文件)
5.硬盘拷贝数据文件速度变慢 (测试硬盘是否有坏道,如果有阵列检查阵列状态,检查改变条带大小,与软件应用要求测试对比)
三.服务器故障排错的基本原则:
1. 尽量恢复系统出厂配置
a:硬件配置:去除第三方厂商备件和非标配备件
b:资源配置:清除CMOS、恢复资源初始配置
c: BIOS、F/W、驱动程序:升级最新的BIOS、F/W和相关驱动程序
d: TPL:扩展的第三方的I/O卡是否属于该机型的硬件兼容列表(TPL)
2. 从基本到复杂
a:系统上从个体到网络:首先将存在故障的服务器独立运行,待测试正常后再接入网络运行,观察故障现象变化并处理。
b:硬件上从最小系统到现实系统:指从可以运行的硬件开始逐步到现实系统为止。
c: 软件上从基本系统到现实系统:指从基本操作系统开始逐步到现实系统为止。
3. 部件交换对比测试
a:在最大可能相同的条件下,交换操作简单效果明显的部件
b:交换NOS载体,既交换软件环境
c:交换硬件,既交换硬件环境
d:交换整机,既交换整体环境
四,服务器故障排查方法总结
问题描述:
每当出现网站访问不了的时候,估计应该就是服务器出现故障了,这个时候大部分情况都是属于数据库出现问题。
查找步骤:
1、查找top检查服务器负载是否有问题
一般网站访问不了,top显示的负载都是很大的,这个时候可以看到mysql的进程占用资源很高,往往就是mysql发生故障了
2、在服务器中查看网站的访问记录
这些访问记录存储在:/home/对应的网站名/access-logs/对应的网站名
可以先通过tail查看,查看出异常的ip的时候可以通过grep进行过滤查看,在这个文件一般都可以找到恶意爬虫、恶意访问的记录,这些往往有可能是导致mysql数据库挂掉的原因。
3、这个时候先对数据库进行重启,对apache进行重启
service mysql restart
service httpd restart
重启之后一般都可以暂时恢复正常的访问的了。如果是出于恶意访问的话,找出恶意访问的ip把它禁止掉即可,如果是网站数据库出现故障,那么还要进行数据库排查。
4、查找数据库错误日志
首先需要知道数据库mysql的安装目录,可以通过whereis mysql找到,但是这往往没用
还有一种方法,就是通过ps -ef | grep mysql来查看
或者也可以通过进入mysql,使用select @@basedir as basePath from dual来查看mysql安装目录
我们在第二种查找方法ps -ef | grep mysql中对应mysql的几种日志找到其所在目录,然后查看对应文件进行分析
mysql有以下几种日志
错误日志:-log-err
查询日志:-log
慢查询日志:-log-slow-queries
更新日志:-log-update
二进制日志:-log-bin
以上便是对应的数据库错误日志和慢查询日志的查看方法了
在服务器的维修中,线索都会显得扑朔迷离,有的甚至按起葫芦翘起瓢。一般来说不可能一次就可以准确地判断出问题的所在。这样就要求工程师要有信心和耐心。出现错误一般的方法都是根据经验优先使用最简单排错方法测试,如果没有解决问题再找其它因素进行测试。总之,服务器出错后必须一步一步解决,没有捷径可言。