生产环境:
硬件设备:普通电脑承担Linux服务器
操作系统:CentOS6.8
问题描述:7月16日发现无法访问Linux服务器,当时分析有可能出现两种情况:
1.普通电脑硬件故障,很有可能是长时间运行导致硬件故障,严重的来说是硬件烧坏了;
2.Linux系统运行当中出现问题。
通过种种原因分析排除了4种情况:
1.如果是断电了,但其他服务器运行正常;
2.如果是断网了,但其他服务器可以正常访问;
3.如果是web服务导致无法访问,但一般情况也来远程连接,可是无法远程连接;
4.通过理论上和长时间运行证明Linux系统运行是稳定的,1年之间无需重新启动系统。
7月30日,请门卫重新启动电源后,还是发现无法访问和远程连接Linux服务器。
7月31日,迫不及待了,不能等了,问题在哪,什么原因,心理好纠结。今天上午抽时间跑到单位,进入中心机房发现显示器屏幕显示如下图:
出现以上这种原因,是7月30日请门卫重启了一下电源导致重启电脑,原因是放假前需要使用键盘而拔下了,但可以在BIOS上进行设置,避免上述情况出现:
进入到 Standard CMOS Setup(标准系统参数设置)里面有个Halt on(暂停执行),它有几个选择,其中All But Keyborad是让BIOS检测到除了键盘之外的任何错误使系统暂停,等候处理。选择这个后,进入系统时,就不可以不用插键盘啦。
说明:如果是有许多专业服务器,我们并不需要每台服务器配备显示器、键盘和鼠标,有时候仅初始化配置需要用一下就可以了,一般配一个推车(有显示器、鼠标和键盘),大公司都是批量配置、维护和升级。
但是导致无法访问和远程连接Linux服务器,并不是没有接入键盘的原因导致的。远程连接Linux服务器看系统日志,进一步分析原因:
[[email protected]~]# last >>last.txt #显示用户登录的信息,并写入到last.txt文件
[[email protected]~]# sz last.txt #sz上传到客户端电脑分析用户登录情况
root pts/2 115.151.215.151 Sun Jul 31 12:28 still logged in
root pts/0 115.151.215.151 Sun Jul 31 11:26 - 11:38 (00:11)
root pts/0 115.151.215.151 Sun Jul 31 10:59 - 11:24 (00:25)
reboot system boot 2.6.32-642.el6.xSun Jul 31 09:53 - 12:56 (03:02)
root tty1 Sun Jul 31 09:50 -down (00:02)
reboot system boot 2.6.32-642.el6.xSun Jul 31 09:47 - 09:52 (00:04)
sky pts/1 117.40.239.12 Fri Jul 8 08:11 - 08:13 (00:01)
sky pts/0 117.40.239.12 Thu Jun 30 08:25 - 11:10 (02:45)
root pts/0 218.65.68.126 Wed Jun 29 23:08 - 23:09 (00:00)
root pts/1 218.65.68.126 Wed Jun 29 23:06 - 23:08 (00:01)
root pts/1 218.65.68.126 Wed Jun 29 23:02 - 23:05 (00:02)
reboot system boot 2.6.32-642.el6.xWed Jun 29 23:00 - 09:52 (31+10:51)
root pts/1 218.65.68.126 Wed Jun 29 21:07 - down (01:52)
reboot system boot 2.6.32-642.el6.xWed Jun 29 21:07 - 22:59 (01:52)
root pts/0 218.65.68.126 Wed Jun 29 20:27 - down (00:38)
sky pts/0 218.65.68.126 Wed Jun 29 17:24 - 19:19 (01:54)
sky pts/1 218.65.68.126 Tue Jun 28 17:08 - 17:47 (00:39)
reboot system boot 2.6.32-642.el6.xTue Jun 28 15:04 - 21:06 (1+06:01)
root pts/0 117.40.239.12 Tue Jun 28 15:03 - down (00:00)
root pts/0 117.40.239.12 Tue Jun 28 10:47 - 11:25 (00:37)
root pts/1 117.40.239.12 Tue Jun 28 10:09 - 10:47 (00:38)
reboot system boot 2.6.32-642.el6.xTue Jun 28 10:07 - 15:04 (04:56)
…………………………………………………………………………………………..
解释:说明7月8日——7月31日之间,没有任何用户可以访问Linux服务器。
[[email protected]~]# last reboot >> last_reboot.txt
#最近重启系统的记录
[[email protected]~]# sz last_reboot.txt
reboot system boot 2.6.32-642.el6.x Sun Jul 31 09:53 -13:11 (03:17)
reboot system boot 2.6.32-642.el6.x Sun Jul 31 09:47 -09:52 (00:04)
reboot system boot 2.6.32-642.el6.x Wed Jun 29 23:00 -09:52 (31+10:51)
reboot system boot 2.6.32-642.el6.x Wed Jun 29 21:07 -22:59 (01:52)
reboot system boot 2.6.32-642.el6.x Tue Jun 28 15:04 -21:06 (1+06:01)
.....................................................................................................................................
解释:6月30日——7月30之间,系统管理员没有对系统做reboot操作,同时在这里可以证明,与没有接入键盘导致外界无法连接是没有任何关联的。
[[email protected] ~]#cat /var/log/boot.log #该文件记录了系统在引导过程中发生的事件,就是Linux系统开机自检过程显示的信息
G Welcome to CentOS
Starting udev:G [ OK ]
Setting hostnamesky9896: [ OK ]
Checkingfilesystems
/dev/sda2: clean,186576/3219456 files, 5377035/12861440 blocks
/dev/sda1: clean,50/25688 files, 83291/102400 blocks
/dev/sda5: clean,32097/11911168 files, 1235336/47643904 blocks [ OK ]
Remounting rootfilesystem in read-write mode: [ OK ]
Mounting localfilesystems: [ OK ]
Enabling/etc/fstab swaps: [ OK ]
Enteringnon-interactive startup
ip6tables:Applying firewall rules: [ OK ]
iptables: Applyingfirewall rules: [ OK ]
Bringing uploopback interface: [ OK ]
Bringing upinterface eth0: Determining if ipaddress 117.40.239.9 is already in use for device eth0...
[ OK ]
Bringing upinterface eth1.back: Device eth1 doesnot seem to be present, delaying initialization.
[FAILED]
Startingauditd: [ OK ]
Startingportreserve: [ OK ]
Starting systemlogger: [ OK ]
Starting systemmessage bus: [ OK ]
InitializingOpenCT smart card terminals: [ OK ]
Startingcups: [ OK ]
Mountingfilesystems: [ OK ]
Starting HALdaemon: [ OK ]
Retrigger failedudev events [ OK ]
Starting PC/SCsmart card daemon (pcscd): [ OK ]
insmod: errorinserting ‘/etc/safedog/KernelSafedog/sddev.ko‘: -1 Invalid module format
Startingsnmpd: [ OK ]
Startingsnmptrapd: [ OK ]
Startingsshd: [ OK ]
Startingxinetd: [ OK ]
ntpdate:Synchronizing with time server: [FAILED]
Startingntpd: [ OK ]
Starting vsftpdfor vsftpd: [ OK ]
Startingmysqld: [ OK ]
Startingsendmail: [ OK ]
Startingsm-client: [ OK ]
Startinghttpd: [ OK ]
Startingcrond: [ OK ]
Starting atd: [ OK ]
Starting jexecservicesUsing CATALINA_BASE: /usr/local/tomcat
UsingCATALINA_HOME: /usr/local/tomcat
UsingCATALINA_TMPDIR: /usr/local/tomcat/temp
UsingJRE_HOME: /usr
UsingCLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Tomcat started.
/etc/rc3.d/S99local:line 9: /usr/local/apache2/bin/apachectl: No such file or directory
/etc/rc3.d/S99local:line 10: /applicaction/nginx/sbin/nginx: No such file or directory
[[email protected]~]# cat /var/log/cron #只产生7月31日的数据
[[email protected]~]# cat /var/log/maillog #只产生7月31日的数据
通过上述数据分析得知:7月8日—7月30日该时间段,Linux服务器岩机了,没有产生运行日志文件,可是为什么7月8日之前的相关运行日志文件找不到,为什么?难道自动覆盖了吗?请看到该文章的专业技术人员帮忙解答,先谢谢了。
下面是远程连接产生的另外一个问题:这种情况出现过两次
回家远程连接Linux服务器操作一段时间后,出现无法连接的情况:
连接N次,无法连接,隔了20分钟以上,又可以正常远程连接。
有些作者解释,估计是以下原因:
1. SSH连接数大多;
2. 没有正常退出SSH;
3. SSH配置和验文件;
通过实现Linux服务器分析,以上原因都不可能,最终隔了20分钟以上,又可以远程连接。