我们的问题的要点是,我们失去了SSH访问我们的VPS和我们的日志文件混杂起来。 通过我们的托pipe服务提供商的Web控制台进行硬重启似乎可以解决问题,但问题仍然存在。
这似乎是随机发生的,大约每两个星期一次。 我们通常首先注意到的症状是我们无法通过sshlogin; 奇怪的是,服务器仍然提示我们input密码,但从来没有让我们login.Apache继续卡车运行,但其他系统服务也停止。
在发生“错误事件”时,我们在所有的日志文件(/ var / log中的所有内容以及Apache的虚拟主机日志和其他文件)中都会看到大量的随机垃圾。 垃圾包含大量的空字节,一些unicode二进制查找的东西,随机的ASCII大块,其他日志文件的一部分,和CSS / JavaScript(见下面的例子)。 这似乎是写缓冲区caching到当前打开的文件,但我不知道为什么,甚至会发生这种情况。 Fedora使用syslogd进行日志logging,但是我无法find任何明显的问题。
我们的服务器是运行Fedora 12的VPS。它的主要职责是运行Apache,Postfix和ssh。 Apache服务的站点使用PHP / MySQL(最后一次发生这种情况时,我安装了Suhosin补丁,以防止这是一个奇怪的缓冲区溢出攻击或其他)。
我们为我们的ssh / htpasswd用户提供了安全的密码,并且日志(我们可以读取的部分)并不表示我们的服务器已经从“内部”泄露了。
这是我们的cron日志的一个片段。 这一个有一堆空字节和其他二进制数据,但如上所述,其他一些文件包含ASCII和/或其他文件块:
Sep 23 03:05:01 HostName CROND[3208]: (munin) CMD (test -x /usr/bin/munin-cron && /usr/bin/munin-cron) Sep 23 03:05:01 HostName CROND[3209]: (user1) CMD (/path/to/development.domain.com/public/protected/yiic serverState) Sep 23 03:10:01 HostName CROND[3792]: (root) CMD (/usr/lib64/sa/sa1 -S DISK 1 1) Sep 23 03:10:01 HostName CROND[3795]: (user1) CMD (/path/to/development.domain.com/public/protected/yiic serverState) Sep 23 03:10:01 HostName CROND[3793]: (munin) CMD (test -x /usr/bin/munin-cron && /usr/bin/munin-cron) Sep 23 03:15:01 HostName CROND[4414]: (munin) CMD (test -x /usr/bin/munin-cron && /usr/bin/munin-cron) Sep 23 03:15:01 HostName CROND[4415]: (user1) CMD (/path/to/development.domain.com/public/protected/yiic serverState) Sep 23 03:20:01 HostName CROND[5000]: (root) CMD (/usr/lib64/sa/sa1 -S DISK 1 1) Sep 23 03:20:01 HostName CROND[5001]: (munin) CMD (test -x /usr/bin/munin-cron && /usr/bin/munin-cron) Sep 23 03:20:01 HostName CROND[5003]: (user1) CMD (/path/to/development.domain.com/public/protected/yiic serverState) Sep 23 03:25:01 HostName CROND[5590]: (munin) CMD (test -x /usr/bin/munin-cron && /usr/bin/munin-cron) Sep 23 03:25:01 HostName CROND[5591]: (user1) CMD (/path/to/development.domain.com/public/protected/yiic serverState) Sep 23 03:30:01 HostName CROND[6175]: (munin) CMD (test -x /usr/bin/munin-cron && /usr/bin/munin-cron) Sep 23 03:30:01 HostName CROND[6174]: (root) CMD (/usr/lib64/sa/sa1 -S DISK 1 1) Sep 23 03:30:01 HostName CROND[6176]: (user1) CMD (/path/to/development.domain.com/public/protected/yiic serverState) Sep 23 03:35:01 HostName CROND[6763]: (munin) CMD (test -x /usr/bin/munin-cron && /usr/bin/munin-cron) Sep 23 03:35:01 HostName CROND[6764]: (user1) CMD (/path/to/development.domain.com/public/protected/yiic serverState) Sep 23 03:40:01 HostName CROND[7347]: (root) CMD (/usr/lib64/sa/sa1 -S DISK 1 1) Sep 23 03:40:01 HostName CROND[7349]: (munin) CMD (test -x /usr/bin/munin-cron && /usr/bin/munin-cron) Sep 23 03:40:01 HostName CROND[7350]: (user1) CMD (/path/to/development.domain.com/public/protected/yiic serverState) ^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^$ .] ^[ Z H*[ݬ^T ՜^F Ük֜ ՜0 | Ԝ0 5 ֜+ ^\J̜aMݺu3^] 'M I & [ n^Vdz &""^RȳZ uݳݳʳ ۳g:h ; 5^U;k j C Rj C ^Zv Ρġ^\֡T]] 2^@@aa! Q^^nq ]v֛7oƚ5k`4^Z1^? |^D^E^E!22^R P TX n aޚwbgM$ ^KQ l4U ; e v 7u֯7oޯDVV^V j5 ^O Vk 5^Q^QI% ͱ α ƍ^[ ^Oz=BBB ^L^@HIIAHH ŁZ^ 9䁏^[/ 9䁏 ၏ ^y灏Pb^Nk2^X^Lȁ́́DJJ RRR ^E `q ]v֛7oƇ^_~^H ш ^{^MAAA 7o^^T*^U v Zx vψ ; &"" 9k777t ވ^]^@p E ` ƈوug ψ ѣ8v ^X""" ={ `ǎ^]ؽ{ Ž^C5 νZν^Z o ^Z搷 ^] s(1 5ՐԐԐ ېې^[NNNprr Oː묛 5^Q^QIŬ笛Y7^Sv֬ լ0$ ֭ ٭zv֭DD$^U g-PFF Wdd$ !&&^F^Q^Q^QHMMEDD^D -ֳ 9 ^[/ 9 aG* ^\J̳aM eݭ[7 s yDGGc۶m ѣ^GN < ^]; ^P У tf أY^S^Q T f-Rtt4ޣ~ m888@ ףãݣݣ^]^@ V Q\\|ף " $$ ң% ^B ^Z Fԣx^@$ N^G N 0 ,,^Lyyy^V Y W ^\ R ^\ ְ# w^N%氦 gX߰ ^V <밦尦˗×h4bɒ%HJJBZZ^Z*++1~ x̚5^K HII M ,ֳ &"") 9볦ʳʳJ^\<x^P P T8q⳦^D^^~ zc춳 쫯 ϫ^B^@ ~ i 髯O^?Bjj*«ëë^A^@ Hk૯_K쫯 嫯 a^N ƫK a$ 6m^Z n݊ { "11ъl= Y^S^Q T 7 @ W Ɗܹs1nܹ8DFFb CRR^R L ^[7"66 b= YˈWÈ^\ RÈ^\ Z s(1 -و]g݈T쬉 H*v֬̈́ |5̄!߄x)5̄!o^M;Ry焉Pb^N[bgMDD$^P;넉f^Ä΄Z ^Z愉 o ^Z搷 ^] s(1 - &""^R ̪ Ӫ骷p e^@@nn $ 6m d 5^Q^QI κW ^X z5 ^P^U^U ^@ ={^Vyyy6;P^C / C ^N ǰað ӰO?!55^U ^@ p 5 %vְ հ0 | 0 5 H C 9l 7 988 ٰg ŢE b ͢0^Z ͵6 ˵/#//^O f͵µ ^N^@P յ(.. ^H% p6^XP ^@ ^Z^O^@]~;^M/t<jkE . `^N Ď/MM Kp0s؎q^NCa!J^R^RP f 4 _~ ? pvvƎ ի1a«^D ^_;v ^[o ^A__ f_ ***Э[78;;#++^Kj ^ZEEE V 5[^S^U^U x sh4^ZѭYŭ֔ %8X֔9 9䘣 䘣 R#e^N Y CY9^@ؘ옣4 $ ֭ ٭:v֭DD$^U;k^Q r J ^A^@bbb^P^Q^Q TDDD ::ڭb-;k j C Rj Cޭ^Zv Ρġ^\ dw ` 9s t R^L^\8^P%%% ¡ɓ'ѱcG^T^V^V±߱߱^_: αl=;k"" @˖-CDD^D|||Lۖ z=ܖݖݖ^A^@j ^ZŖŖŖwՖՖ^T^U $!^A . zظF ^Q и ܸm۸D $ ^@ ^Z^O^@]~;^M/t<jkE . `^N Ď/MM Kp0s؎q^NCa!J^R^RP fw 븺 d///deeA V ^H иj f뢢 ^P^_^_/x^^ F^C___Qk^S[S ^F `Y碢`^N梢 c CJ 9Ģfa^Ne墢^@` Ӣ -⢢`=s梢L cڴiغu+ ċċD u fMDD$ ^K^K o 9.\ ` Mk j Y7 M 6pr e˖!""^B>>> Y ^D r8;; _F^^^^f͚ ۚhu^Ù˙q ^Ù^E| ə' ^SF ^\ +W ةhu^Ù˙Q'::^Zo ^OԀ ^\+W Āرc1nܱ8 8C^@ ϱ2p @| ٱg DZ^_^? ^[7nرhu±^M^[6^L>>>8~ 8 y ^Yıűű5x ( 2 $ Sep 23 20:11:21 HostName crond[1077]: (CRON) INFO (running with inotify support) Sep 23 20:15:01 HostName CROND[1578]: (user1) CMD (/path/to/development.domain.com/public/protected/yiic serverState) Sep 23 20:15:01 HostName CROND[1579]: (munin) CMD (test -x /usr/bin/munin-cron && /usr/bin/munin-cron) Sep 23 20:20:01 HostName CROND[2192]: (root) CMD (/usr/lib64/sa/sa1 -S DISK 1 1) Sep 23 20:20:01 HostName CROND[2193]: (munin) CMD (test -x /usr/bin/munin-cron && /usr/bin/munin-cron) Sep 23 20:20:01 HostName CROND[2194]: (user1) CMD (/path/to/development.domain.com/public/protected/yiic serverState) Sep 23 20:25:01 HostName CROND[2841]: (user1) CMD (/path/to/development.domain.com/public/protected/yiic serverState) Sep 23 20:25:01 HostName CROND[2843]: (munin) CMD (test -x /usr/bin/munin-cron && /usr/bin/munin-cron) Sep 23 20:30:01 HostName CROND[3432]: (user1) CMD (/path/to/development.domain.com/public/protected/yiic serverState) Sep 23 20:30:01 HostName CROND[3433]: (munin) CMD (test -x /usr/bin/munin-cron && /usr/bin/munin-cron) Sep 23 20:30:01 HostName CROND[3436]: (root) CMD (/usr/lib64/sa/sa1 -S DISK 1 1) Sep 23 20:35:01 HostName CROND[4022]: (munin) CMD (test -x /usr/bin/munin-cron && /usr/bin/munin-cron) Sep 23 20:35:01 HostName CROND[4023]: (user1) CMD (/path/to/development.domain.com/public/protected/yiic serverState) Sep 23 20:40:01 HostName CROND[4671]: (munin) CMD (test -x /usr/bin/munin-cron && /usr/bin/munin-cron) Sep 23 20:40:01 HostName CROND[4672]: (user1) CMD (/path/to/development.domain.com/public/protected/yiic serverState) Sep 23 20:40:01 HostName CROND[4675]: (root) CMD (/usr/lib64/sa/sa1 -S DISK 1 1) Sep 23 20:45:01 HostName CROND[5288]: (munin) CMD (test -x /usr/bin/munin-cron && /usr/bin/munin-cron) Sep 23 20:45:01 HostName CROND[5289]: (user1) CMD (/path/to/development.domain.com/public/protected/yiic serverState) Sep 23 20:50:01 HostName CROND[5929]: (munin) CMD (test -x /usr/bin/munin-cron && /usr/bin/munin-cron) Sep 23 20:50:01 HostName CROND[5930]: (user1) CMD (/path/to/development.domain.com/public/protected/yiic serverState) Sep 23 20:50:01 HostName CROND[5928]: (root) CMD (/usr/lib64/sa/sa1 -S DISK 1 1)
这里是我们网站的application.log片段 (我们使用Yii Framework,这是应用程序级logging发生的地方)。 这其中包括其他文件(日志文件,svn元数据等),二进制数据,ASCII等块
有没有人见过这样的事情?
这里有很多未知的东西,但我在考虑文件系统的失败。
正在运行的守护进程可能有足够的内容以ramcaching来接受连接,但不能完成完整的身份validation。
混合文件是文件系统(或其恢复)变坏的有力指标。 这可能是由软件(实验内核/文件系统/ …)或硬件造成的。 我倾向于与后者。 在磁盘上运行适当的文件系统检查和硬件testing(坏块,如果可以的话,运行memtest86)。
另外,您必须考虑到这些文件可能不限于日志文件。 它也可以在代码或数据库中。 我build议你validation数据是否有效…
直到文件系统怪异的部分,你的症状看起来就像RAM耗尽。 由于SSH已经在运行,所以SSH会提示你,但是find内存来产生一个新进程是很慢的。 系统服务因为被OOM杀手摧毁而死亡。 在日志中是否有任何引用?
你有没有关于内存使用量或系统负载的指标,最好logging在有问题的机器外部?
远程login也是非常有帮助的 – 然后你可以看到是否有重要的线索被文件损坏覆盖。 Fedora使用rsyslogd ,而rsyslogd站点有安全设置的指示 。