Linux系统运维故障排查
一.思路
1.处理问题要求
2.一般思路
二.具体问题
1.网络问题
(1)网络不通
(2)网络很慢
2.硬件问题
3.操作系统问题
(1)系统无法正常启动
(2)系统运行慢或死机
4.服务或程序问题
5.其他
一.思路
1.处理问题要求:思路清晰、问题明确、快速解决,长时间的积累形成自己的一套解决问题的“反射弧”
2.一般思路:
(1)重视报错信息:定位基本问题基本方向
(2)查询日志文件:报错信息有时只是问题的表象,想要更具体的了解问题,一般需要查看相应日志,如系统日志文件(/var/log)、应用日志文件
(3)分析、定位问题:结合报错信息和日志文件以及相应的环境(代码、系统磁盘、系统内存、各个进程运行情况等等)或者自身和他人经验来定位问题
(4)解决问题:找到问题基本上就能解决问题
系统日志
http://c.biancheng.net/cpp/html/2783.html
https://www.cnblogs.com/yingsong/p/6022181.html
二.具体实例
1.网络问题
网络问题是什么,是不通,还是慢?
1). 如果是网络不通,要定位具体的问题,一般是不断尝试排除不可能故障的地方,最终定位问题根源。一般需要查看
是否接入到链路
是否启用了相应的网卡
本地网络是否连接
DNS故障
能否路由到目标主机
远程端口是否开放
2). 如果是网络速度慢,一般有以下几个方式定位问题源:
DNS是否是问题的源头
查看路由过程中哪些节点是瓶颈
查看带宽的使用情况
来源: http://www.cnblogs.com/Security-Darren/p/4700387.html
2.硬件的问题
查看/var/log/dmesg 或者用 dmesg命令
http://t.cn/RubBMqR
3.操作系统的问题
1)系统无法正常启动:
(1)文件系统被破坏,比如linux根分区文件遭到破坏(一般是系统突然断电或者非法关机导致)
(2)文件系统配置不当,比如/etc/inittab 、/etc/fstab文件等配置错误或丢失导致系统错误(一般是人为配置错误)
centos7 中init进程
https://blog.csdn.net/Holmofy/article/details/69666962
centos5中
inittab文件
https://www.linux178.com/linux/inittab.html
http://blog.51cto.com/leejia/788895
fstab文件:
http://blog.itpub.net/26723566/viewspace-753700/
(3)内核文件丢失或者崩溃(内核升级或者内核存在bug导致)
https://www.jianshu.com/p/e1f550ba164d
内核升级 http://seanlook.com/2014/10/24/upgrade-centos6_kernel-to-3.10.x/
(4)系统引导程序出现问题,比如grub丢失或者损坏(人为修改配置错误或者文件系统故障)
引导程序 Boot Loader 就是在操作系统内核运行之前运行的一段小程序。通过这段小程序,我们可以初始化硬件设备、建立内存空间的映射图,从而将系统的软硬件环境带到 一个合适的状态,以便为最终调用操作系统内核做好一切准备。Boot Loader有若干种,其中Grub、Lilo是常见的Loader。系统读取内存中的grub配置信息(一般为menu.lst或grub.lst),并依照此配置信息来启动不同的操作系统。
补充:
系统引导整体流程:
参考
https://blog.csdn.net/zhaodedong/article/details/47711499
http://blog.51cto.com/12410094/1951058
http://www.runoob.com/linux/linux-system-boot.html
Linux系统无法启动故障解决方案 http://www.voidcn.com/article/p-wnhepalc-gs.html下面的相关文章
4个最好的Linux引导程序 https://linux.cn/article-7788-1.html#3_515
2)系统运行很慢或者死机
系统运行慢的原因
cpu占用、内存占用、IO占用比较高
https://www.linuxidc.com/Linux/2011-10/44274.htm
一般造成Linux系统死机的原因有:
系统硬件问题(SCSI卡,主板,RAID卡,HBA卡,网卡,硬盘等)
外围硬件问题(网络等)
软件问题(系统、应用软件)
驱动bug(找新的驱动)
核心系统bug(到LKML看看,或更换核心再试)
系统设置(恢复到缺省状态,关闭防火墙等)
补充:
linux性能优化值cpu、内存、IO优化 https://blog.csdn.net/ZYC88888/article/details/79027944
linux性能调优指南https://legacy.gitbook.com/book/lihz1990/transoflptg/details(里面的pdf文件)
Linux性能及调优指南:进程管理 http://blog.jobbole.com/105135/
4.服务或程序问题
redis客户端常见异常https://blog.csdn.net/li396864285/article/details/76951278
Nginx常见错误及解决方法http://blog.51cto.com/riverxyz/1961151
nginx几个常见异常https://www.jianshu.com/p/e72f2ea12eae
nginx或其他网站报错502错误常见问题总结 http://www.21yunwei.com/archives/3724
Mysql常见问题如连接数不够、死锁、SQL语句太慢
https://mp.weixin.qq.com/s/rvfRzGe2GB1OkQ_zQVQElA
http://www.ttlsa.com/mysql/mysql-common-error-analysis-and-solution-methods/
5.其他
Linux运维常见故障排查和处理的33个技巧汇总 https://mp.weixin.qq.com/s/hLaVQC3FPChGoEnrBtUJ3Q
6 个 Linux 运维典型问题,大牛的分析解决思路在这里 https://mp.weixin.qq.com/s/4oZqkcs8LQ-_X6SmsRe-yw
从零起步做到Linux运维经理,你必须管好的23个细节https://mp.weixin.qq.com/s/24lNkVbO419G6gX52Xr7bQ
Linux系统运维故障排查的更多相关文章
- Linux系统运维相关的面试题 (问答题)
这里给大家整理了一些Linux系统运维相关的面试题,有些问题没有标准答案,希望要去参加Linux运维面试的朋友,可以先思考下这些问题. 一.Linux操作系统知识 1.常见的Linux发行版本都有 ...
- 7.学完linux系统运维到底可以做什么?
linux运维到底可以做什么?(略有改动原文.排版) 运维,很容易从字面理解为运营.维护. 很多朋友认为,在互联网公司中linux系统运维的工作就是安装系统,部署服务.处理紧急故障,为公司里的开发人员 ...
- Linux系统运维笔记(五),CentOS 6.4安装java程序
Linux系统运维笔记(五),CentOS 6.4安装java程序 用eclipse编译通的java程序,现需要实施到服务器.实施步骤: 一,导出程序成jar包. 1,在主类编辑界面点右健,选 ru ...
- Linux系统运维笔记(四),CentOS 6.4安装 MongoDB
Linux系统运维笔记(四),CentOS 6.4安装 MongoDB 1,下载 https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.0.6 ...
- Linux系统运维笔记(四),CentOS 6.4安装Nginx
Linux系统运维笔记(四),CentOS 6.4安装Nginx 1,安装编译工具及库文件 yum -y install make zlib zlib-devel gcc-c++ libtool op ...
- Linux系统运维笔记(三),设置IP和DNS
Linux系统运维笔记(三),设置IP和DNS 手工配置静态的IP地址 也就是手工配置IP地址.子网掩码.网关和DNS. vi /etc/sysconfig/network-scripts/ifcfg ...
- Linux系统运维笔记(二),Linux文件编辑命令
Linux系统运维笔记 Linux文件编辑命令 首先我们使用命令 vi filename 打开一个文件,这个时候进入到的是命令模式 接下来我们按i,然后键盘随便输入写内容. 然后按ESC重新进入到命令 ...
- Linux系统运维笔记(一),查看系统版本和设置系统时间
Linux系统运维笔记 查看系统版本和设置系统时间 查看系统版本 lsb_release -a (适用于所有的linux,包括Redhat.SuSE.Debian等发行版,但是在debian下要安装l ...
- Linux系统运维笔记(6),CentOS 7.6双网卡路由配置
Linux系统运维笔记(6),CentOS 7.6双网卡路由配置. 一,先确认系统版本: [root@localhost ~]# cat /etc/redhat-releaseCentOS Linux ...
随机推荐
- Ubuntu 修改 /etc/resolv.conf 被清空 或重启不生效解决
sudo gedit /etc/NetworkManager/NetworkManager.conf 注释掉 dns=dnsmasq [main] plugins=ifupdown,keyfile,o ...
- AssetBundle打包详解
Unity5.x AssetBundle打包详解 在网上查看了很多资料,想详细搞清楚AssetBundle的原理.以实现符合项目需求的打包工具和加载逻辑 1. AssetBundle是什么? Asse ...
- Oracle 定时器
我的代码 declare job number; begin dbms_job.submit( JOB=>job, what=>'addBytime;',// 这里要写分号,不然容易出错. ...
- SpringMVC学习四(@ModelMap @RequestBody等等的说明)
参考如下 http://www.cnblogs.com/HD/p/4107674.html http://www.cnblogs.com/qiankun-site/p/5774325.html @re ...
- javascript性能优化之Dom编程性能调优总结
1.最小化的Dom访问,在一次Dom访问做尽可能多的操作: 2.使用局部变量存放指向反复访问的元素节点的Dom引用,原则上js代码中不应该重复获取同一个元素节点,除非它在运行过程中发生改变: 3.对元 ...
- ChinaCock让Android App应用不锁屏
<meta-data android:name="keepScreenOn" android:value="true"> </meta-dat ...
- python 爬虫数据准换时间格式
timeStamp = 1381419600 dateArray = datetime.datetime.utcfromtimestamp(timeStamp) otherStyleTime = da ...
- Microsoft Project 常用快捷键
任务升级 : ALT + SHIFT + 向左键 任务降级: ALT + SHIFT + 向右键 滚动到表头(第一个任务):Ctrl + HOME 滚动到表尾(最后一个任务):Ctrl + E ...
- python day 16作业
day18天作业及默写1,完成下列功能: 1.1创建一个人类Person,再类中创建3个静态变量(静态字段) animal = '高级动物' soup = '有灵魂' language = '语言' ...
- thinkphp5.0自定义验证器
虽然我早就会些php基础语法,我套过数据,自己写的控制器层,不是用的api方式,那个公司是为了锻炼我,所以才那样做的,基本上的东西都是用的框架自带的,重来自己没有去封装过这些东西,所以编程思想上,还很 ...