Peter's Portfolio

[敲敲敲~IT 挨踢做什麼] 雜記篇-不斷自動執行關機的伺服器

今天的經驗想法談要跟大家分享 IT 做什麼之最近久覺的一個案例,有時後 IT System 就像是靈魂出竅敲敲敲就好了,莫名其妙故障就消失了,有時候就像靈異事件一樣壞的不留痕跡

這並不是靈異事件~ 不過在今年年底時,重新安裝了 Proxmox,當時也將機殼移除清理了一邊灰塵,在此之後,常常發現系統會不定時關機

一開始判斷是硬體造成的問題

▲ 我開始查 IPMI,發現了有一些關於風扇的問題,於是我更換了風扇及插孔不過問題依然未改善

▲ 在查詢了 IPMI 後,無意間發現記憶體電壓不太正常,一開始也以為是記憶體出錯,不過做了交叉測試換了整批記憶體問題稍稍改善,不過好景不長,又在1 月底時時再度發生問題。

懷疑是 Cron 排呈任務造成的問題

這個問題不段發生,紀錄過都是不定期的自動關機,有時候五點,有時候凌晨一兩點,甚至開機後馬上的發生問題,使用 CRON 查詢也發現不出問題,也排除是 CRON 設定的問題。

▲用了 /etc/cron 查看了排呈設置,當中並沒有異常,也不可能有工程人員惡意寫了 Shutdown 指令在裡面!

▲在系統開始出現 “KILL” 和 “STOP” 指令前,一片風平浪靜,也沒有 CRON 執行結果,備份仍然正在進行。 00:39:01 秒時 Proxmox 仍然正常執行 | 00:39:35 秒出現 STOP 指令,同時更開始 KILL 正在運行的程序。

▲我也查了問題發生前(Feb  7 00:39:35)前每小時CRON 的執行結果,一樣安全過關!(每小時 17 分時執行 CRON HOURLY)

開始從 SYSLOG 查詢問題並比對 Kernel 紀錄

以前的不正常關機通常是發生在公司的老舊伺服器設備上,最後我決定完完整整的查一遍 Proxmox 的 Syslog (其實一直都有在 Syslog 上尋找答案,不過得到的結果如下,完全查不到關機被執行的紀錄)。

我倒著查詢 SYSLOG 從關機開始到執行關機

nano /var/log/syslog

▲突然關機在 Feb  7 00:43:28,之前執行了一堆 STOP 指令,直到 Feb  7 00:59:00 我巡視機房時發現,才開始手動重啟。

▲在早一些Feb  7 00:39:41 ,發現了 Proxmox 將 VM Guest 自動關機,不斷網上查,都發現系統都會先發送指令請 Proxmox VM 關機。

於是檢查了監視器,發現螢幕在一一關閉所有服務,也都看到螢幕出現 “ShutDown”的指令列,這代表了並不是不正常關機或是突然性關機。

▲ 昨天看到這行 “got shutdown request with shutdown policy ‘conditional’ shutdown LRM, stop all services server stopped”,讓我靈機一動,會不會是「Physical Power Button」造成的問題,於是我開始搜尋起跟「機器上的開關」有關的問題。

 

READING TIPS: 
Think about what will you do next?

物理性的開關問題(實體開關損壞)

P.S. 其實我都叫他 Physical Power Button 及 IPMI 的虛擬開關。

不過奇怪的事怎麼在 SYSLOG 上沒有紀錄,我納悶查了 message 和 kernel 發現,根本就是把 SYSLOG 上的內容分類過去而已嘛!

nano /var/log/message

▲ 從這張 SYSLOG Message 也沒有任何 System shutdown 的紀錄和錯誤

nano /var/log/kern.log

▲ Kernel 出現的也比較偏向系統和 Linux BIN 自帶的程序紀錄,很驚喜的我原本預期在這裡能找到些線索,不過仍然失敗了。

在無意間,我不斷嘗試了 /var/log 裡面的不同系統記錄,終於找到了一個比較有可能的檔案

nano /var/log/auth.log

在 Google 查詢了 Proxmox 的 Debian 系統的 nano /var/log/auth.log 存放的是登入訊息記錄,因此當初也沒有多想去查這個 Log,這個檔案記錄了所有的 CRON 排程運行訊息以及系統登入狀態

▲ CRON 運行訊息

▲ SSH 登入結果

幸運的事情就在後頭,往下查詢,找到關鍵字了

Feb  7 00:39:35 pvelab1 systemd-logind[1080]: Power key pressed.
Feb  7 00:39:35 pvelab1 systemd-logind[1080]: Powering Off...
Feb  7 00:39:35 pvelab1 systemd-logind[1080]: System is powering down.

▲ 是關機按鈕被點擊了,初步排除是 IPMI 的操作(因為操作權限都在我手中),調了監視器也發現並不是誤觸,依我的經驗很有可能是主機開機鍵與主機板連結上出了問題,但我還是好奇的 Google 了一下。

stackexchange中的 Unexpected shutdown with a “Power key pressed.” log 文章寫道

  • CPU usage was about 50% in the few hours before the incident. CPU 沒有滿載
  • This issue had happened a few time in the past few weeks, all were when the was a similar load on the system. 問題頻繁的發生,且附載也不高
  • There is no entry of high temperature (or anything else) in the BIOS event log. 沒有高溫警示
  • There is no event registered in the IPMI log IPMI 中沒有特別的錯誤 LOG

往下看看 System Log 也跟我的案例相似

09:04:30 hostname ***some event***
09:30:52 hostname systemd-logind: Power key pressed.
09:30:52 hostname systemd-logind: Power key pressed.
09:30:52 hostname systemd-logind: Powering Off...
09:30:52 hostname systemd-logind: System is powering down.
09:30:52 hostname systemd-logind: Powering Off...
09:30:52 hostname systemd-logind: System is powering down.
09:30:52 hostname systemd: Stopping Authorization Manager...
09:30:52 hostname systemd: Stopping Authorization Manager...

屬名 derobert 的使用者也給出了解答

  • The most obvious answer is, of course, that someone pushed the power button. Possibly accidentally — e.g., if the power button is unfortunately sensitive and someone bumped it slightly while walking by. 有人誤觸按鈕(排除,因為監視器在中斷前並沒有人經過或在機房中)

     

  • Electrical noise making the system think the power button has been pressed. 電子干擾讓系統誤認點擊了關機按鈕(這部分我不敢肯定,不過沒有動過機房的設備配置,而且這台 Server 來機房也有一段時間,比較不可能突然發生這種狀況)

目前解決方案

先依照經驗中的『開機按鈕連接問題』將開機按鈕連接線拆下主機板,很懶得買新開機按鈕的我打算將 Reset 按鈕當作開機來使用。先觀察一陣子,建立觀察期三個月,確認電腦不會再出現莫名關機的現象。

在 derobert  的回答中也提到:

If nothing else works, you can edit /etc/systemd/logind.conf and  change HandlePowerKey to ignore (then restart systemd-logind).  (the hold-for-4-seconds unclean shutdown, if any, can’t be disabled via systemd as it’s done by the system firmware).

利用  /etc/systemd/logind.conf 讓 Shutdown 開關需要按住四秒才能作用,避免誤觸等問題

 

挨踢挨踢現暫時結案!觀察三個月後結果揭曉
希望大家喜歡今天的 IT 挨踢做什麼~

挨踢還是當個 Man in Sleep 好了
See Ya

 

REF: https://unix.stackexchange.com/questions/454329/unexpected-shutdown-with-a-power-key-pressed-log

3 則留言

  1. 看到這篇

    有一些圖丟失了
    不過,不失去其精彩度

    這個找問題的思維,讓我有了一些些收獲
    tks

  2. 我用的是云伺服器 近期每隔几天就会自动关机,我查了/var/log/message 提示systemd-logind: Power key pressed.
    我不敢确定是服务器机房人员按下了我的关机键还是我中了木马

    1. 雲服務不太可能出現錯誤按下關機鍵
      可以從寄個角度判斷問題
      1. 是不是有設置 cron
      2. 是不是記憶體或效能不足

      如果使用像 GCP 這類的服務器,可以使用詳細的 monitor 功能查看關機的時間點,在時間點查詢 OS 的 syslog。整體問題分析的難度會比我們這種自薦服務器來的簡單。

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料