如果服務器幾個月不重啟,那一定會有安全問題。當然對于那些連補丁都不敢打的,從安全的視角來看,談論重啟沒有意義。
不可預期重啟的危害
你永遠不知道你的服務器會在何時重啟,有可能
你自己重啟
別人重啟
系統更新定期的重啟
虛擬化故障導致重啟
系統藍屏導致重啟
掉電重啟
你可以有些方法在操作系統層面阻止重啟,但是你不能阻止所有重啟。我遇到過太多因為重啟引起的問題了。
突然掉電的重啟是很可怕的,當然,如果只是用一些很標準的操作,還是可控的。操作系統和應用層面的容錯率越來越高了。
重啟后重要的配置沒有保存導致失效,比如防火墻用命令行手寫實時生效,但是沒有寫入持久化配置文件
重啟后服務沒有自動啟動,很多外包公司從來不是寫systemd的,啟動后需要人工干預。
重啟有自動啟動,依賴關系沒有處理好。比如NFS、數據庫需要比Web先起來,而且有些依賴又不會自動重試。
物理機器,重啟后掛了。很多機器,一直跑著,他可能就進入隨遇平衡態了,一旦有個干擾可能就不正常了。自行車,一停下來就要倒的。物理機器hard reboot要跑自檢,有啟動阻力,自檢會檢查一些你運行時不會檢查的東西。
哪天插著U盤拷貝東西,忘記拔了,重啟后從U盤啟動了。
重啟后文件沒有了。有些文件被刪除了,但是不影響系統運行,因為已經加載到內存了,或者句柄還在,但是一旦你重啟,這些都沒有了。
虛擬機要啟動發現啟動不起來,雖然看起來虛擬機注冊在平臺里,但是底層文件已經被刪除了。
病毒寫入啟動目錄,重啟后開始發作。
你應該在何時重啟
做了重要配置后,一定要全量重啟一下看看各類服務是否正常。不重啟,會讓你的變更導致的錯誤疊加,讓你越發在下次重啟需要解決更多的問題。
打了內核補丁,如果不重啟操作系統有些是不生效的。如果只是一些服務或者運行的進程,一般更新完補丁會自動重啟。Linux也有很多免重啟的內核熱補丁方案。
硬件需要更換
有一個跟重啟相關的是出了故障,很多時候重啟一下就好了,但是其實更推薦,如果對業務影響可控,應當在故障重現的時候找到問題,實在不行才考慮重啟的方案。
我的業務很重要,SLA要求高,不能重啟!!!???
SLA要求高跟服務器重啟沒有任何關系,不是不重啟的理由。如果你的業務確實SLA要求非常高,你應當是使用負載均衡、滾動重啟、減少服務預熱時間等多個其他措施來保障,單個服務器的重啟不應當影響高SLA要求。
不敢重啟,實際上是暴露了你SLA保障方面的弱點。
在預期時間重啟不應當被計入SLA,我以前玩魔獸世界,固定會在業界通用的周二補丁日(Patch Tuesday,MS是每個月第二周的周二)進行更新、維護。你如果算他的SLA是97%,跟體驗是不一致的。
很多公司是打包成容器,每秒重啟銷毀幾千個容器,卻是他SLA高的保證。
各類操作系統對非預期重啟的提醒
非預期重啟問題這么多,我們也會有多個層面來保障減少非預期重啟導致的問題,比如說數據庫會有WAL預寫日志來保護,電源方面有雙電源,UPS的保護,甚至于在地震中利用電磁波的傳播速度比橫波縱波快的原理來進行預警讓服務器安全關機。
各類操作系統也從各種方式進行預防和提醒。
Windows Server對于非預期重啟,在下次管理員登錄后會要求你記錄重啟的原因。
如果在服務器安裝了Zabbix客戶端,監控系統可以提醒你某臺服務器機器進行了重啟。
如何知道我的服務器是否需要重啟
如果沒有掌握正確的判斷是否需要重啟的方法,很多時候你打補丁等于白打。
Windows Server
Windows Server有GUI界面的,會在右下角提醒你更新需要重啟,并且讓你安排重啟時間段。
Windows Server Core等沒有GUI界面的,可以通過注冊表進行查詢是否需要重啟,這個查詢可以寫成PowerShell腳本重復檢查。
CentOS
相比Windows Server和Ubuntu,CentOS對于重啟的提醒不是太明顯,所以很多人會忽略了重啟。
Ubuntu
Ubuntu會在你遠程登錄后顯示
如何知道我的服務器在何時重啟過
Windows
在GUI下,在“任務管理器”的“性能”“CPU”左下角,有“正常運行時間”。
在GUI下,在“事件查看器”里,“Windows日志”“系統”,“篩選當前日志”,輸入“事件ID”為6005,可以看到各次重啟時間段。
CLI下,有多重方法可以看。
Linux
客戶端怎么重啟?
PC機、筆記本、手機、家里路由器,建議也經常性重啟下,讓操作系統甩掉包袱,跑得更快一點吧!
及時掌握網絡安全態勢 盡在傻蛋網絡安全監測系統
本文來源:互聯網
如涉及侵權,請及時與我們聯系,我們會在第一時間刪除或處理侵權內容。
電話:400-869-9193 負責人:張明