《构建高可用Linux服务器 第3版》—— 2.5 紧急处理线上服务器故障的办法

本文涉及的产品
传统型负载均衡 CLB,每月750个小时 15LCU
网络型负载均衡 NLB,每月750个小时 15LCU
应用型负载均衡 ALB,每月750个小时 15LCU
简介:

本节书摘来自华章出版社《构建高可用Linux服务器 第3版》一 书中的第2章,第2.5节,作者:余洪春 ,更多章节内容可以访问云栖社区“华章计算机”公众号查看。

2.5 紧急处理线上服务器故障的办法

很多时候,网站或业务系统的服务器出现了故障,我们必须紧急修复,保证网站或业务系统能够使用。一般我们会遇到哪些系统故障,又该如何来处理呢?接下来逐个分析。

2.5.1 更改Administrator密码导致计划任务无法执行

问题描述:公司有位系统管理员离职了,他曾负责管理多台Windows Server 2003服务器,于是负责安全的部门要求接手的系统管理员更改Administrator密码,粗心的系统管理员急急忙忙地更改了Windows Server 2003的Administrator密码,却发现Windows Server2003的计划任务(即Scheduled Tasks)全都执行不了,出现这个问题其实是因为Windows Server2003的计划任务都要求输入正确的Administrator密码。

解决办法:大家养成好习惯,每次更改完Windows Server 2003密码后一定要检查一下计划任务能否正常执行,否则很容易导致公司的重要业务执行不了,进而影响整个网站的运维及业务,希望此问题能引起大家的注意。

2.5.2 CentOS 5.8的root密码被恶意篡改

在公司的内部CentOS 5.8开发机器下,用户基本都是由su-切换到root,不过这时有一个问题,假如多人知道root的账号和密码,那么如果出现问题,你就不知道到底是谁干的坏事,日志里记录的都是root干的。新上架的开发服务器的root密码就曾被开发人员乱改。其实,这时候可以给他们的账户分配sudo权限,这样就可以通过log或last等命令查询开发人员做的事情了。

实际部署:我们可以建立一个admin组,让这个组的用户权限和root一样。我们的某开发小组有4个开发人员正准备使用新添置的开发服务器,我们可以准备给每一个开发人员分配一个账户,密码由他们各自保管,以后考虑将权限细化分配。具体步骤如下。

1)修改sudoers文件,即/etc/sudoers文件(执行visudo命令效果一样),在最后加入以下内容:

%admin ALL=(ALL) ALL
2)添加admin组,命令如下:

groupadd admin
3)添加用户,这里添加4个用户,分别对应4个开发人员,添加命令如下:

useradd yuhongchun

useradd wangxiaona

useradd zhanghua

useradd tangyihe
密码均由4个开发人员自己设置和保管,相互之间不知道对方的密码。

4)添加用户到admin组,命令如下:

usermod -a -G admin yuhongchun

usermod -a -G admin wangxiaona

usermod -a -G admin zhanghua

usermod -a -G admin tangyihe
这样每个开发人员就都有sudo权限了,而每个用户所做的事情基本可以通过日志查询到。注意:以上操作只适应于开发或测试环境,线上机器为了安全考虑,不建议分配具有sudo权限的用户。

2.5.3 bash文件损坏该如何正确处理

故障描述:在IP为192.168.21.36的FreeBSD 8.1 x86_64机器上安装软件时不小心将其依赖的库文件libintl.so.8丢失了,导致所有以bash为基础的shell用户不能登录。由于大家都喜欢在此机上用bash,所以均将其配置成了默认的shell,也就是说所有的用户都不能登录了,系统报错如下:

/libexec/ld-elf.so.1: Shared object "libintl.so.8" not found, required by "bash"

Connection to 192.168.21.36 closed.
解决方法如下所示。

1)用单用户模式进入系统;

2)扫描磁盘(此步操作是安全的),命令如下:

fsck -y
3)将文件系统重新挂载,命令如下:

mount -a
4)将root的默认shell切换到sh,命令如下:

chsh -s sh
5)其实进行到第4步,我们就可以用root以sh模式进入系统了,但为了完美解决问题,这时候可以安装一下bash,命令如下:

pkg_add -r-v bash
重启后一切正常,故障排除。

2.5.4 正确操作nohup让程序始终在后台运行

我的Nginx负载均衡器监控Nginx进程的脚本nginx_pid需要放入后台不间断运行,所以想用命令/bin/sh /data/nginx_pid.sh &来达到此目的,在输入完命令后我就关闭了终端,可再次登录终端时发现此程序并没有运行。忽然想起可能是因为没有使用nohup命令,试了试,果然如此,在带上nohup命令后就正常了。

我们的很多程序只是普通的程序,即使它们以&结尾,如果终端关闭,那么程序也会被关闭。为了能够在后台运行,我们需要使用nohup这个命令,原程序的标准输出被自动改向到当前目录下的nohup.out文件里,起到了log的作用。

但是有时候这样做会有问题,如果把终端关闭,进程也会被自动关闭,查看nohup.out可以看到在关闭终端的瞬间服务自动关闭了。

产生此问题的原因是:虽然Shell中提示了nohup成功,但还是需要按终端上的键盘任意键退回到Shell输入命令窗口,然后通过在Shell中输入exit来退出终端,而不是每次在nohup执行成功后直接关闭终端。这个问题很多朋友容易忽视,希望大家在工作中多加注意。

2.5.5 Nginx负载均衡器出现故障

在主Nginx负载均衡器上,由于nginx.conf配置文件有误,导致客户不能正常访问网站。网站架构用的是Nginx+Keepalived,这时我们可以紧急停掉主Nginx上的Keepalived,让从机接管;等网站稳定后,再来修复主Nginx负载均衡器。

注意 其实单纯停掉Nginx是解决不了问题的,因为我们的VIP此时还挂在主Nginx上面,要让从Nginx生效,停掉主Nginx上面的Keepalived是最好的方法(这个从Nginx机器就会将VIP地址接管过来)。

总而言之,线上环境的服务器排障要求我们在最短的时间内解决问题,这其实也是对系统管理员经验和能力的要求。我们平时应该总结在线上环境中容易出现的故障,做到未雨绸缪;平时在维护网站或系统时应该着重注意容易Crash的部分,多花些精力和时间在系统日志或服务日志上面,如果觉得压力过大,单机负载承受不了,可以考虑采用集群的方法来处理。

相关实践学习
SLB负载均衡实践
本场景通过使用阿里云负载均衡 SLB 以及对负载均衡 SLB 后端服务器 ECS 的权重进行修改,快速解决服务器响应速度慢的问题
负载均衡入门与产品使用指南
负载均衡(Server Load Balancer)是对多台云服务器进行流量分发的负载均衡服务,可以通过流量分发扩展应用系统对外的服务能力,通过消除单点故障提升应用系统的可用性。 本课程主要介绍负载均衡的相关技术以及阿里云负载均衡产品的使用方法。
相关文章
|
17天前
|
安全 大数据 Linux
云上体验最佳的服务器操作系统 - Alibaba Cloud Linux | 飞天技术沙龙-CentOS 迁移替换专场
本次方案的主题是云上体验最佳的服务器操作系统 - Alibaba Cloud Linux ,从 Alibaba Cloud Linux 的产生背景、产品优势以及云上用户使用它享受的技术红利等方面详细进行了介绍。同时,通过国内某社交平台、某快递企业、某手机客户大数据业务 3 大案例,成功助力客户实现弹性扩容能力提升、性能提升、降本增效。 1. 背景介绍 2. 产品介绍 3. 案例分享
|
2月前
|
运维 监控 Linux
推荐几个不错的 Linux 服务器管理工具
推荐几个不错的 Linux 服务器管理工具
138 6
|
2月前
|
Prometheus 运维 监控
Prometheus+Grafana+NodeExporter:构建出色的Linux监控解决方案,让你的运维更轻松
本文介绍如何使用 Prometheus + Grafana + Node Exporter 搭建 Linux 主机监控系统。Prometheus 负责收集和存储指标数据,Grafana 用于可视化展示,Node Exporter 则采集主机的性能数据。通过 Docker 容器化部署,简化安装配置过程。完成安装后,配置 Prometheus 抓取节点数据,并在 Grafana 中添加数据源及导入仪表盘模板,实现对 Linux 主机的全面监控。整个过程简单易行,帮助运维人员轻松掌握系统状态。
236 3
|
2月前
|
存储 数据挖掘
服务器数据恢复—V7000存储上多块Mdisk成员盘出现故障的数据恢复案例
服务器存储数据恢复环境: 一台V7000存储上共12块SAS机械硬盘(其中1块是热备盘),组建了2组Mdisk,创建了一个pool。挂载在小型机上作为逻辑盘使用,小型机上安装的AIX+Sybase。 服务器存储故障: V7000存储中磁盘出现故障,管理员发现问题后立即更换磁盘。新更换的硬盘在上线同步数据的时候,存储上另一块磁盘也出现问题,导致逻辑盘无法挂接在小型机上,业务暂时中断。V7000存储的管理界面上显示两块硬盘故障脱机。 pool无法加载,其中三个通用卷均无法挂载。
|
2月前
|
运维 监控 负载均衡
slb后端服务器故障
slb后端服务器故障
63 13
|
2月前
|
人工智能 安全 Linux
|
3月前
|
弹性计算 监控 容灾
阿里云ECS提供强大的云上灾备解决方案,通过高可用基础设施、多样的数据备份方式及异地灾备服务,帮助企业实现业务的持续稳定运行
在数字化时代,企业对信息技术的依赖加深,确保业务连续性至关重要。阿里云ECS提供强大的云上灾备解决方案,通过高可用基础设施、多样的数据备份方式及异地灾备服务,帮助企业实现业务的持续稳定运行。无论是小型企业还是大型企业,都能从中受益,确保在面对各种风险时保持业务稳定。
66 4
W9
|
3月前
|
运维 关系型数据库 MySQL
轻松管理Linux服务器的5个优秀管理面板
Websoft9 应用管理平台,github 2k star 开源软件,既有200+的优秀开源软件商店,一键安装。又有可视化的Linux管理面板,文件、数据库、ssl证书方便快捷管理。
W9
245 1
|
2月前
|
存储 Oracle 安全
服务器数据恢复—LINUX系统删除/格式化的数据恢复流程
Linux操作系统是世界上流行的操作系统之一,被广泛用于服务器、个人电脑、移动设备和嵌入式系统。Linux系统下数据被误删除或者误格式化的问题非常普遍。下面北亚企安数据恢复工程师简单聊一下基于linux的文件系统(EXT2/EXT3/EXT4/Reiserfs/Xfs) 下删除或者格式化的数据恢复流程和可行性。
|
3月前
|
安全 Linux API
Linux服务器安全
人们常误认为服务器因存于数据中心且数据持续使用而无需加密。然而,当驱动器需维修或处理时,加密显得尤为重要,以防止数据泄露。Linux虽有dm-crypt和LUKS等内置加密技术,但在集中管理、根卷加密及合规性等方面仍存不足。企业应选择具备强大验证、简单加密擦除及集中管理等功能的解决方案,以弥补这些缺口。
48 0