今天的經驗想法談要跟大家分享 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 changeHandlePowerKey
toignore
(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
看到這篇
有一些圖丟失了
不過,不失去其精彩度
這個找問題的思維,讓我有了一些些收獲
tks
我用的是云伺服器 近期每隔几天就会自动关机,我查了/var/log/message 提示systemd-logind: Power key pressed.
我不敢确定是服务器机房人员按下了我的关机键还是我中了木马
雲服務不太可能出現錯誤按下關機鍵
可以從寄個角度判斷問題
1. 是不是有設置 cron
2. 是不是記憶體或效能不足
如果使用像 GCP 這類的服務器,可以使用詳細的 monitor 功能查看關機的時間點,在時間點查詢 OS 的 syslog。整體問題分析的難度會比我們這種自薦服務器來的簡單。