一个让人尴尬癌犯了的问题,数不清的僵尸 sshd 进程 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
ikw
V2EX    Linux

一个让人尴尬癌犯了的问题,数不清的僵尸 sshd 进程

  •  
  •   ikw
    zwpaper 2017-01-03 22:10:28 +08:00 via iPhone 8841 次点击
    这是一个创建于 3207 天前的主题,其中的信息可能已经有所发展或是发生改变。
    今天真是长见识了,一台服务器上面突然发现上万个僵尸进程,大部分是 sshd ,现在还能登陆上去,但是运行的程序有的又会变僵尸……

    /var/log/ 下面也没什么 log 输出

    Google 出来的结果都让重启机器……

    我有点不知所措了
    41 条回复    2017-06-07 18:28:02 +08:00
    pagxir
        1
    pagxir  
       2017-01-03 22:15:23 +08:00
    父进程状态异常了吧,估计被暂停了。
    ikw
        2
    ikw  
    OP
       2017-01-03 23:26:00 +08:00
    @pagxir 找不到父进程了,现在好像都被挂到 init 下面了,现在 kill 也 kill 不掉,然后僵尸进程数还在增加
    k9982874
        3
    k9982874  
       2017-01-03 23:32:36 +08:00 via iPhone
    猜是谁写了个 sshd 自动执行脚步互锁了?
    ikw
        4
    ikw  
    OP
       2017-01-03 23:55:19 +08:00
    @k9982874 主要是没有 log ,无从下手有点尴尬,明天去公司还得再战这个问题
    solrted
        5
    solrted  
       2017-01-04 00:43:37 +08:00 via Android
    @zwpaper lsof -p pid
    qceytzn
        6
    qceytzn  
       2017-01-04 03:18:29 +08:00
    @solrted lsof: illegal process ID: pid
    lslqtz
        7
    lslqtz  
       2017-01-04 04:17:21 +08:00 via iPhone
    kill 后又复活?
    试试看多执行几次 killall
    lslqtz
        8
    lslqtz  
       2017-01-04 04:18:13 +08:00 via iPhone
    对于 CentOS 来说:
    service sshd stop
    killall sshd
    然后进一步排查问题(?) 或许很怪查不出
    ryd994
        9
    ryd994  
       2017-01-04 09:20:21 +08:00
    是用了 docker 里的 sshd 么?
    如果是的话,不要直接启动 sshd ,用 sh 之类的间接启动
    ikw
        10
    ikw  
    OP
       2017-01-04 10:55:18 +08:00
    @qceytzn 基本上 lsof -p 输出都是空的
    ikw
        11
    ikw  
    OP
       2017-01-04 10:59:07 +08:00
    @lslqtz killall 不起作用,返回是 0 ,但是进程数一点没少, killall sshd 把我自己踢出去了,再进来还是一样的
    ikw
        12
    ikw  
    OP
       2017-01-04 10:59:38 +08:00
    @ryd994 貌似没有用 docker
    MartinWu
        13
    MartinWu  
       2017-01-04 11:06:47 +08:00
    同病相怜。。。
    anjingme
        14
    anjingme  
       2017-01-04 11:07:48 +08:00
    重启下 sshd 看看,当然重启失败了,自己也会被踢出来,搞个 nc 开个口子先再重启。
    MartinWu
        15
    MartinWu  
       2017-01-04 11:07:58 +08:00
    千万别去重启 sshd 啊。。。。
    MartinWu
        16
    MartinWu  
       2017-01-04 11:12:57 +08:00
    我的情况是,表面跟楼主描述的大致相同。最后放弃治疗,打算把上面的业务迁移到其他机器,就重启了。但是把业务都迁移走了后,突然发现,所有的僵尸都没了。然而我并没有追踪到是哪个进程关闭后,就把僵尸都埋了。

    而我现在只追查到,发现 ssh 僵尸都是 sshd 这个用户的,而这个僵尸应该就是 sshd fork 出来负责验证权限的子进程。
    lslqtz
        17
    lslqtz  
       2017-01-04 11:15:18 +08:00 via iPhone
    @MartinWu 我以为楼主是在机房...
    ikw
        18
    ikw  
    OP
       2017-01-04 13:17:30 +08:00
    @MartinWu 我现在是我 sshd 退出来了,还能再登进去,只是不知道哪天 pid 要被用完了就上不去了

    现在好像我运行一个后台程序,再退出 bash ,后台程序就变僵尸了
    ikw
        19
    ikw  
    OP
       2017-01-04 13:18:45 +08:00
    @lslqtz 我现在 service xxx 直接都是 timeout 了。。。
    想把我堵 ssh 外面都不行。。。
    ikw
        20
    ikw  
    OP
       2017-01-04 13:19:40 +08:00
    @MartinWu 我基本放弃治疗了。。。但是这个问题感觉有点意思呢
    w2exzz
        21
    w2exzz  
       2017-01-04 13:31:23 +08:00
    chkconfig --level35 sshd off
    reboot

    /usr/sbin/sshd -d
    MartinWu
        22
    MartinWu  
       2017-01-04 13:59:37 +08:00 via iPhone
    @zwpaper 对,就是这样的状况。
    ikw
        23
    ikw  
    OP
       2017-01-04 14:17:15 +08:00
    @w2exzz 现在重启很大可能可以解决问题,但是一个是不希望重启,一个是希望保存现场,研究一下问题到底在哪里。
    所以暂时还不 reboot
    MartinWu
        24
    MartinWu  
       2017-01-04 15:26:05 +08:00
    @zwpaper 能否看下 kernel 的日志有没有什么信息? 或者 /proc/里
    MartinWu
        25
    MartinWu  
       2017-01-04 15:28:40 +08:00
    @zwpaper 在不影响业务的基础上,继续摸索下吧,在线等更新。我现在就后悔去重启了。。
    jyf007
        26
    jyf007  
       2017-01-04 19:44:05 +08:00 via Android
    dropbear
    ikw
        27
    ikw  
    OP
       2017-01-05 00:02:22 +08:00
    @MartinWu 现在发现了一个问题就是 systemd hung 住了,感觉有可能问题出在这个地方。

    今天还找到一个说是 210 以前的 systemd 有 bug ,有可能会让 systemd hung 住,但是我的机器上的好像是 213 的,按说不应该。具体版本号我忘了,后来忙别的去了,可以肯定的是比 210 新。
    在这看到的: https://bbs.archlinux.org/viewtopic.php?id=178168

    现在 /var/log 基本上没有新写入东西了, rsyslog 也在一次失败的实验中变僵尸了。。。

    现在新发现是 journalctl 里有不少 log ,这个没来得及看,明天看看有没有空看一下。

    别在线等啊,我还有个活背着呢,你要有什么想法也可以告诉我,我来试试,再给你反馈结果
    ikw
        28
    ikw  
    OP
       2017-01-05 00:05:04 +08:00
    @MartinWu kernel 的日志你说的是哪个位置?/proc/ 没找到比较特别的地方呢,就是僵尸的 proc stat 都是 Z , ppid 都是 1
    ikw
        29
    ikw  
    OP
       2017-01-05 00:12:21 +08:00
    @jyf007 这是一个 ssh 工具?恕在下愚钝,没想到用法啊。。。
    不过 Matt Johnston ,这个名字有点印象,好像这两天有搜到他报类似的 bug
    jyf007
        30
    jyf007  
       2017-01-05 13:31:12 +08:00 via Android
    @zwpaper 不,我是说换成这种路由器用到的,再装个 openssh-sftp-server 就行了
    ikw
        31
    ikw  
    OP
       2017-01-21 21:04:34 +08:00 via iPhone
    @MartinWu 突然想起来,这个貌似有人去 centOS 报 bug 了,看看官方怎么回复吧
    MartinWu
        32
    MartinWu  
       2017-01-21 22:29:41 +08:00 via iPhone
    @zwpaper 啊咧?我去看看。
    ikw
        33
    ikw  
    OP
       2017-01-21 23:20:08 +08:00
    MartinWu
        34
    MartinWu  
       2017-02-04 19:50:31 +08:00
    @zwpaper 我的是 centos6 诶,貌似不是 systemd 导致的,而且 centos6 还是用 initd 的。。
    ikw
        35
    ikw  
    OP
       2017-02-05 00:17:02 +08:00
    @MartinWu #34 这就奇怪了,我倒确实是 7 的,所以这个 systemd 的问题感觉还挺像的
    okudayukiko0
        36
    okudayukiko0  
       2017-02-16 04:18:02 +08:00 via iPhone
    不用 SSH ,改用串口 /VirtIO Console 或远程卡试试,不排除病毒
    ikw
        37
    ikw  
    OP
       2017-02-16 09:49:22 +08:00 via iPhone
    @okudayukiko0 机器在机房,而且也已经重启了,病毒的话,也没有查到一些相关的说法……
    MartinWu
        38
    MartinWu  
       2017-06-06 10:08:33 +08:00
    我发现了一个点,可使用内存太少,导致 init 无法 fork 出线程来回收僵尸进程。
    ikw
        39
    ikw  
    OP
       2017-06-07 00:02:21 +08:00
    @MartinWu #38 可惜没有环境了啊。。。。
    MartinWu
        40
    MartinWu  
       2017-06-07 17:10:07 +08:00
    @zwpaper 哈哈哈,等下次吧。
    ikw
        41
    ikw  
    OP
       2017-06-07 18:28:02 +08:00
    @MartinWu #40 这个是最尴尬的
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1119 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 29ms UTC 17:48 PVG 01:48 LAX 10:48 JFK 13:48
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86