免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: chenyx
打印 上一主题 下一主题

linux系统TroubleShooting经验共享 活动结束 获奖名单公布 [复制链接]

论坛徽章:
4
CU大牛徽章
日期:2013-03-13 15:32:35CU大牛徽章
日期:2013-03-13 15:38:15CU大牛徽章
日期:2013-03-13 15:38:52戌狗
日期:2013-12-27 15:08:11
41 [报告]
发表于 2011-12-28 10:40 |只看该作者
linux系统从底层代码到原理很熟悉的人不多,熟悉的人也不是做运维的,导致这个职业所谓的linux工程师有点烂,做运维的也分几种,如果是运维开发那种还有点创新,基本的运维也就解决基本的问题

论坛徽章:
381
CU十二周年纪念徽章
日期:2014-01-04 22:46:58CU大牛徽章
日期:2013-03-13 15:32:35CU大牛徽章
日期:2013-03-13 15:38:15CU大牛徽章
日期:2013-03-13 15:38:52CU大牛徽章
日期:2013-03-14 14:08:55CU大牛徽章
日期:2013-04-17 11:17:19CU大牛徽章
日期:2013-04-17 11:17:32CU大牛徽章
日期:2013-04-17 11:17:37CU大牛徽章
日期:2013-04-17 11:17:42CU大牛徽章
日期:2013-04-17 11:17:47CU大牛徽章
日期:2013-04-17 11:17:52CU大牛徽章
日期:2013-04-17 11:17:56
42 [报告]
发表于 2011-12-28 11:09 |只看该作者
RHCE专门有troubleshooting的课程,可见系统排错的重要性.
TroubleShooting是运维的基本功,也是新手成长的必经之路.

论坛徽章:
0
43 [报告]
发表于 2011-12-28 12:53 |只看该作者
1出现莫名其表的问题的时候,我第一时间还是通过日志来看,/var/log/message,dmesg,以及对应服务的日志分析等等
2.针对软件安装出现的问题一方面结合google,一方面还是看readme
3.对于软件安装使用碰到的问题
使用strace 来跟踪问题
例:rz 命令上传文件 提示 Segment fault。
重新strace -o /tmp/rz.txt rz
仔细的看输出文件/tmp/rz.txt的信息,中间有一行提示no space left。磁盘空间不足
有时候当一些应用服务的日志文件不知道在哪里的时候,strace 来跟踪程序运行的过程,也会发现一些相关的日志文件信息。
4.当存在无法界定是网络问题还是应用问题的时候,通过
tcpdump host des_ip 抓包来诊断是否有数据包的接受

论坛徽章:
0
44 [报告]
发表于 2011-12-28 15:24 |只看该作者
小版主杀手 发表于 2011-12-28 10:40
linux系统从底层代码到原理很熟悉的人不多,熟悉的人也不是做运维的,导致这个职业所谓的linux工程师有点烂 ...



    HP   IBM  oracle的工程师也都是帮别人解决基本问题的,底层的东西也不用每个人都要去熟悉的

论坛徽章:
0
45 [报告]
发表于 2011-12-28 15:50 |只看该作者
本帖最后由 Flashboy2005 于 2011-12-28 15:57 编辑

基本思路嘛,就跟工作差不多了

1. 找到问题的发生的环境,输入和输出(重现步骤)
2. 查找问题的rootclause: 调试
    2.1 错误信息
    2.2 查日志
    2.3 debugger跟踪
    思考 =》 假设 =》 试验 =》分析结果 =》缩小目标 =》下一轮
3. 问题解决方案。

=======
《《Debug It》》

论坛徽章:
0
46 [报告]
发表于 2011-12-28 17:17 |只看该作者
yuhongchun 发表于 2011-12-27 10:32
我们在线上调试iptables脚本时,由于手误的原因,很容易就把自己锁住了或SSH远程不能登陆,这时候我们可以在 ...


这个方法好,学习了

论坛徽章:
0
47 [报告]
发表于 2011-12-28 22:36 |只看该作者
rsync故障排查
  1. 1、@ERROR: auth failed on module xxxxx
  2. rsync: connection unexpectedly closed (90 bytes read so far)
  3. rsync error: error in rsync protocol data stream (code 12) at io.c(150)
复制代码
A: 这是因为密码设置错了, 无法登入成功, 请再检查一下 rsyncd.pwd ,rsyncd.sec中密码的设置, 看两边是否一致? 有时服务器端没有启动服务也会出现这种情况
  1. 2、password file must not be other-accessible
  2. continuing without password file
  3. Password:
复制代码
A: 这表示 rsyncd.pwd rsyncd.sec文件的权限不对,应该设为600
chmod 600 rsyncd.pwd rsyncd.sec
  1. 3、@ERROR: chroot failed
  2. rsync: connection unexpectedly closed (75 bytes read so far)
  3. rsync error: error in rsync protocol data stream (code 12) at io.c(150)
复制代码
A: 通常是rsyncd.conf 中的path 路径所设的那个目录不存在所致.
先创建(mkdir)需要同步的目录
  1. 4、rsync: failed to connect to 218.107.243.2: No route to host (113)
  2. rsync error: error in socket IO (code 10) at clientserver.c(104) [receiver=2.6.9]
复制代码
A:对方主机关机;firewall阻挡
service iptables stop
  1. 5、/server/rsync/bin/rsync -vzrutogp –progress –password-file=/etc/rsyncclien
  2. t.pwd backup@60.173.7.35:backup /var/www/backup
  3. 出现

  4. backup@60.173.7.6′s password
  5. Permission denied, please try again.
复制代码
最有可能的情况是,系统没有认出来,你现在的通信是rsync,所以请仔细检查一下上面加红的那句话中ip地址后面是否为两个:也就是说::为rsync通信,:为ssh通信
  1. 6、当/server/rsync/bin/rsync rsync://backup@61.156.238.119/backup时,出现如下
  2. rsync: link_stat “/.” (in backup) failed: Permission denied (13)
  3. rsync error: some files could not be transferred (code 23) at main.c(1385) [receiver=2.6.9]
复制代码
解决方法1:
更改你的rsyncd.conf中的
uid=nobody
gid=nobody

uid=root
gid=root


解决方法2:
出现这样问题的原因是要同步的这个root目录在掩位的最后一位不是r-x或以上的权限,也就是说root这个目录一定要等于或大于drwxr-xr-x才能玩同

论坛徽章:
0
48 [报告]
发表于 2011-12-30 09:14 |只看该作者
chenyx 发表于 2011-12-27 15:08
回复 31# king_819


遇到过因为SELinux的问题
不过倒不是导致编译问题
而是导致程序启动有问题。

论坛徽章:
6
金牛座
日期:2013-10-08 10:19:10技术图书徽章
日期:2013-10-14 16:24:09CU十二周年纪念徽章
日期:2013-10-24 15:41:34狮子座
日期:2013-11-24 19:26:19未羊
日期:2014-01-23 15:50:002015年亚洲杯之阿联酋
日期:2015-05-09 14:36:15
49 [报告]
发表于 2011-12-30 15:13 |只看该作者
本帖最后由 瀚海书香 于 2011-12-30 15:38 编辑

回复 1# chenyx
1.linux系统排错的思路  
    这个首先需要确定问题的来源,主要分两个方面:
硬件问题
       这个一般都是搞软件开发的弱项,但是一些基本的问题判断能力还是应该有的。比如:故障发生点的确定(网卡、主板、内存、电源、插槽、硬盘等等)。
软件问题
       当我们基本上确定是软件问题的时候(这是我们的强项了),我们需要将问题分为几个大类:
       网络问题
           这个问题经常会出现。调试方法也比较多。
           首先判断物理链路层是否连接,通过网卡灯判断;之后通过arp工具监测能否正常获取到对端的mac地址;然后就是使用ping工具来判断网络层是否连通;最后就是路由的监测。这个监测过程中用到的工具或者命令有: nbtscan、hostscan、ip neigh、ping、ip route
                还有很多设置了防火墙,那么也可能会导致网络出现问题。在调试网络问题的时候,建议不要使用系统自带的防火墙,而且全部开放策略。这个过程中用到的工具或者命令有:service iptables stop; iptables -X; iptables -F;iptables -P FORWARD ACCEPT; iptables -P INPUT ACCPET
       数据库问题
           这里以mysql数据库为例。如果无法访问数据库,那么排错的思路为:
           首先检查数据库服务进程是否正常启动,通过命令 pidof mysqld;有些时候与mysql.sock文件的位置有关系。如果应用程序使用的sock文件与系统默认的文件不是同一个文件,那么会导致无法正常链接数据库。
           通过mysql命令,手动链接到数据库中,排查相应的表是否有问题。通过mysql命令 repair table youtablename来修复损坏的表。
     安全问题
           这个问题一般比较难以发现和排查,比如网络遭遇ddos工具,数据库被远程利用等等。这些问题一般需要抓包工具来协助分析,分析异常流量,来定位问题点。
     权限问题
           这个问题一般包括越权访问和无权访问两种:
           对于越权访问,可以通过不同的账号属性来防止,但是如果通过linux bug获取root账号,那没办法解决;当然了为了彻底防止权限问题,可以修改系统的/etc/shadow文件,删除掉root用户,同时建立一个与root用户权限相同,但是名字不同的账号,这样就比较安全了。
           对于无权访问的情况,一般可以通过sudo来解决。
     私有代码问题
           这个问题一般需要针对特定的软件来分析了。
   
   

论坛徽章:
6
金牛座
日期:2013-10-08 10:19:10技术图书徽章
日期:2013-10-14 16:24:09CU十二周年纪念徽章
日期:2013-10-24 15:41:34狮子座
日期:2013-11-24 19:26:19未羊
日期:2014-01-23 15:50:002015年亚洲杯之阿联酋
日期:2015-05-09 14:36:15
50 [报告]
发表于 2011-12-30 15:13 |只看该作者
本帖最后由 瀚海书香 于 2011-12-30 15:54 编辑

2.系统排错应该遵循的原则
系统排错最需要的心态。经常发现浪费长时间找到的问题,居然是自己认为不可能出错的地方。所以系统排错需要有一个排错的心态,所谓排错的心态就是:
首先排查最可能出错的地方
其次排查自认为最不可能出场的地方
如果还没有发现问题,那么请坚信世界上没有鬼,从最基本的开始一点一点的排查。
切记在排错A问题的时候,受到B问题的影响,即使你认为B问题不可能影响到A问题(因为B有可能影响到A,只是在你的知识层面上B不会影响到A)。
总之一句话,遇到问题的时候,一定要淡定。

有一句话说的是,遇到紧急问题时,你有多淡定,表明你之前吃过多少苦。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP