摘要:昨天遇到了一個(gè)端口轉(zhuǎn)發(fā)導(dǎo)致失效的問(wèn)題,今天記錄下當(dāng)時(shí)的排查思路。問(wèn)題原因是刪除容器后沒(méi)有把轉(zhuǎn)發(fā)規(guī)則刪除。這次排查,用到了幾個(gè)工具,都是之前的積累,所以排查顯得順暢多了。
昨天遇到了一個(gè)端口轉(zhuǎn)發(fā)導(dǎo)致VIP失效的問(wèn)題,今天記錄下當(dāng)時(shí)的排查思路。
因?yàn)橐錾?jí),所以我刪除了dokcer老容器,并啟動(dòng)新容器。之后訪問(wèn)VIP, 也就是LVS中的VIP,發(fā)現(xiàn)原先可以訪問(wèn)的站點(diǎn)不能訪問(wèn)了。
以上是故障表現(xiàn),下面是具體排查過(guò)程
docker logs containerId 檢查docker 中的應(yīng)用是成功啟動(dòng)的,排除應(yīng)用無(wú)法啟動(dòng)的問(wèn)題
curl localhost:80 因?yàn)槿萜魇且?b>-p 80:80的方式啟動(dòng)的,所以接下來(lái)我嘗試在物理機(jī)上訪問(wèn)自己的80端口,發(fā)現(xiàn)可以成功訪問(wèn)應(yīng)用,排除了forward沒(méi)設(shè)置的問(wèn)題
接下來(lái),我祭出了瑞士軍刀nc -l 80, 然后在外部以VIP的方式訪問(wèn),發(fā)現(xiàn)無(wú)法訪問(wèn)。 這時(shí)候懷疑是 iptables 的問(wèn)題
先做下備份,service iptables save, 然后關(guān)掉service iptables stop
再起nc -l 80, 發(fā)現(xiàn)很快nc進(jìn)程就結(jié)束了,trace nc -l 80 找出來(lái)源包IP,發(fā)現(xiàn)是LVS的心跳包。至此VIP恢復(fù)訪問(wèn)
接下來(lái)就是要找iptables里誰(shuí)在搞鬼了。iptables -L, 因?yàn)閼岩墒莇ocker在搞鬼,所以把展示出和docker有關(guān)的都刪了,但是問(wèn)題沒(méi)有解決
上面我犯了一個(gè)錯(cuò)誤,那就是以為iptables -L展示的是所有的規(guī)則,但其實(shí)只展示了filter, 和轉(zhuǎn)發(fā)有關(guān)的nat需要iptables -t nat -L來(lái)展示
把iptables -t nat -L中和docker有關(guān)的刪掉。問(wèn)題解決。問(wèn)題原因是docker刪除容器后沒(méi)有把轉(zhuǎn)發(fā)規(guī)則刪除。
又重現(xiàn)了下這個(gè)問(wèn)題,應(yīng)該是docker的問(wèn)題,刪除實(shí)例沒(méi)有把轉(zhuǎn)發(fā)規(guī)則和proxy干掉。
這次排查,用到了幾個(gè)工具,都是之前的積累,所以排查顯得順暢多了。主要時(shí)間花在了對(duì)iptables的不熟悉。
更多文章 http://kamushin.github.io/
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/26658.html
摘要:當(dāng)然,如果你的核心數(shù)夠多,到個(gè)線程的并行度不滿足的話,也可以自定義一個(gè)線程池來(lái)執(zhí)行,不過(guò)這樣的話,要注意自己維護(hù)這個(gè)線程池的初始化,釋放等等操作了。 事情起源于一個(gè)bug排查,一個(gè)AsyncTask的子類,執(zhí)行的時(shí)候發(fā)現(xiàn)onPreExecute方法執(zhí)行了,doInBackground卻遲遲沒(méi)有被調(diào)用。懂AsyncTask一些表面原理的都知道,onPreExecute方法是在主線程執(zhí)行,...
摘要:此時(shí)我想到了福爾摩斯說(shuō)過(guò)的一句話當(dāng)你排除掉各種不可能出現(xiàn)的情況之后,剩下的情況無(wú)論多么難以置信,都是真相。福爾摩斯冷靜下來(lái)想一想,這個(gè)線程,有可能靜悄悄地退出了嗎,沒(méi)留下半點(diǎn)異常日志從理論上來(lái)說(shuō),不可能。配置建議最后,附上一份配置建議。 1、事發(fā) 我們有個(gè)視頻處理程序,基于 SpringBoot,會(huì)啟動(dòng)幾個(gè)線程來(lái)跑。要退出程序時(shí),會(huì)發(fā)送一個(gè)信號(hào)給程序,每個(gè)線程收到信號(hào)后會(huì)平滑退出,等全...
閱讀 1329·2021-11-16 11:44
閱讀 3793·2021-10-09 10:01
閱讀 1789·2021-09-24 10:31
閱讀 3903·2021-09-04 16:41
閱讀 2545·2021-08-09 13:45
閱讀 1244·2019-08-30 14:08
閱讀 1820·2019-08-29 18:32
閱讀 1667·2019-08-26 12:12