又見日誌 從日誌中的思考

2021-09-04 04:17:02 字數 1819 閱讀 2106

煮酒品茶:文章寫的比較爛,如果有更好的方案或者有啥錯誤的話請指出來,品茶在此謝過了。

前記:換新工作後,這邊有另乙個部門的同事打**過來要協助。說作業系統啟動不了。報錯duplicate or bad block in use!

詢問過程:

1、穩定對方,問題發生了咱們不急慢慢解決,別腦袋短了思路。

2、詢問對方是否有備份

答:是臺svn的機器,都有備份,是以前的老機器,重啟後就一直進不去。

3、詢問對方現象是怎樣

答:一直進不去單使用者模式,卡死在百分之60之後,作業系統是centos 5 x86機器,出問題前一直很少關注此機器,所以無法回答之前有哪些操作

4、詢問此機器服務的重要級別

答:重要級別在他們中排的比較低,所以有大把時間找事情。

處理過程:

1、首先讓發圖到群裡

:根據分析,是mount /dev/sys後觸發/etc/fstab 中選項掃瞄機器,最後檢測到有壞塊。初步分析可能是檔案系統壞掉或者磁碟某些磁軌壞了。

2、制定方案

:因為級別不重要並且有備份,所以很好處理。先讓他進單使用者模式,在ro 後面加single,多等會兒,讓機器掃瞄完或者別的。進系統後fsck -a /dev/$(sda),如果實在進不去,最好用同發行版的光碟進入恢復模式,掛載硬碟之後再確認是否有重要資料,再次備份出來。在詢問中得之他的硬碟使用年限為2年,一般5年就老出問題了。如果是5年了就直接換塊新硬碟裝系統恢復繼續跑。如果硬碟還年輕就讓他裝完系統恢復跑著。把監控做好。

3、反饋

3.1 告之我已經進入系統(中午吃飯讓他一直跑),然後正在fsck修復。然後1個小時後修復成功。

3.2 告之我發現是硬碟使用量達到100%,出問題也有一部原因吧,心裡在想難道沒有做監控?最後通過du發現是tomcat 日誌380g,nginx日誌40g,單硬碟500g。瞧了一眼就發現很多問題。

3.3 讓他備份日誌,他說日誌都不需要備份,最後給他講了日誌的重要性後,他還是決定刪除,我就讓他先刪除2023年再冊2023年的,發現基本沒釋放多少。最後他決定全刪除,我也沒反對。最後清空得到400g左右的空閒空間

3.4 讓他再次重啟確定進入系統是沒有問題的。

3.5 讓他做好監控

4、事後反饋

4.1 本以為事情到這裡已經有段結尾了,對方又聯絡說要支援。一番詢問下來得知tomcat日誌又把磁碟寫滿了,我心在想有這麼大的量嗎?才一天。他告訴我是內網訪問大造成的。最後告訴他這是tomcat的日誌分割的作用,切分後不會把以前的內容刪掉,所以是疊加。當然一想也不行,這麼大的日誌過來,誰也受不了。

4.2 他詢問我有沒有辦法不要日誌,我當然又是一通講解,日誌的作用。最後他還是堅持不要。哈哈,內網的也無所謂了,重要級別又不高。

4.3 最後把tomcat的日誌名建了乙個/dev/null的鏈結。寫日誌都寫到空裝置上面去。

4.4 這下事情應該有乙個小段落了

5、反思

5.1 備份機制一定要做好,可以做做恢復訓練。

5.2 如果是我要搞這個事我會怎麼做?監控沒做好,一切問題都發現不了。

5.3 日誌問題一定要解決,可以傳到內網備份伺服器上面。

5.4 如果重要級別高的話可以做個小raid,壞塊盤也沒事。但前提也是要做好監控。

5.5 另外硬碟的年限就那麼久,跑了5年了就讓他去死吧。上了5年問題就會慢慢積多。

5.6 機器啟動不了是為啥?linux操作很多都不需要重啟的,如果你改了某些配置,但沒讓他生效,等你下次重啟時生效結果發現機器啟動不了了,就跟服務一樣,你改了配置檔案,過幾天你要改個配置,結果發現啟動不了,你檢查你今天改的配置你找的出問題?幸好有錯誤提示。

5.7 是否有個流程指導我們怎麼操作這些事兒?

附圖:

從日誌中恢復

上週有同事對資料庫進行了誤操作,問我可不可以回到前一天的狀態。恢復資料庫的問題以前學的時候遇到過,那時我想sqlserver中應該也會有方法把資料庫恢復到前一天的。我的機器上erp的資料庫日誌從800m增張到了2g,log增長得這麼快,想必是把所有的操作都記錄上了。網上找了幾天的資料,sqlserv...

將Error異常日誌從普通日誌中剝離

開發過程中經常需要除錯和線上環境檢視異常日誌的需求,但普通資訊與異常訊息混在一起實在是非常難得找,上則nm的文件夠你頭痛,所以就將error級別的日誌抽離出來。本示例採用log4net來配置 1 先配置web.config,新增 configsections section name log4net...

關於記錄日誌的思考

在開發的過程中,我們會記錄日誌。這樣可以方便關於觀察程式的執 況,和問題的所在。在看日誌就可以知道,當前的程式是在執行什麼操作,操作的結果是什麼?個人認為這樣的日誌才是有效的日誌。記錄執行的方法名或者類名等 記錄方法名或者類名,這樣我們可以準確的定位到當前執行的是什麼服務。記錄服務的輸入與輸出 輸入...