我想知道為什麼我的 Amazon Elastic Compute Cloud (Amazon EC2) Linux 執行個體會非預期地重新開機或重新啟動。
簡短說明
由於下列原因,您的執行個體可能意外重新開機或重新啟動:
- 執行個體的狀態檢查失敗。
- 託管執行個體的基礎硬體出現問題,Amazon EC2 重新啟動執行個體以將其移至運作狀態良好的硬體。
- 執行個體的排程維護會啟動重新開機。
- 使用者或伺服器內的應用程式已重新啟動執行個體。
- 有核心錯誤。
- 您在建立 Amazon Machine Image (AMI) 期間啟動了重新開機執行個體。
- AWS Systems Manager 已重新啟動受管理的執行個體。
解決方法
**注意:**如果您在執行 AWS Command Line Interface (AWS CLI) 命令時收到錯誤訊息,請參閱對 AWS CLI 錯誤進行疑難排解。此外,請確定您使用的是最新的 AWS CLI 版本。
檢查您的查看 Health 儀表板
檢查 AWS Health 儀表板以了解執行個體重新開機事件,例如簡化的自動復原、排程維護和淘汰。若要根據運作狀態通知採取行動,請重新排程已排程的事件,或手動停止並啟動執行個體。
檢視狀態檢查
使用 Amazon EC2 主控台或 AWS CLI 檢視執行個體的狀態檢查。如果執行個體狀態檢查失敗,請參考如何對 EC2 Linux 執行個體的狀態檢查失敗問題進行疑難排解?
檢視系統日誌
如果執行個體狀態檢查未失敗,則執行個體可能會因作業系統 (OS) 問題而重新啟動。若要對作業系統層級的問題進行疑難排解,請檢查 /var/log/messages 和 /var/log/syslog 系統日誌。如果執行個體狀態檢查失敗,請重新啟動執行個體以擷取系統日誌。
接著,針對系統日誌中所列出的錯誤進行疑難排解。
檢視重新開機歷史記錄
若要檢查伺服器內的使用者或應用程式是否啟動重新開機,請執行下列命令:
grep reboot /home/*/.bash_history
grep reboot /root/.bash_history
history | grep -i reboot
history | grep -i init
last reboot
檢查 CloudTrail 事件歷史記錄
您在 Amazon EC2 主控台或 AWS CLI 上啟動的執行個體重新開機會顯示在 AWS CloudTrail 事件歷史記錄中。檢查您的 CloudTrail 事件歷史記錄中是否有 RebootInstances 事件。
注意:當您建立 AMI 時,Amazon EC2 預設會啟動重新開機執行個體,並在建立 AMI 之前重新開機執行個體。這次重新開機會出現在 CreateImage 事件中,而非 RebootInstances 事件中。
如果您建立了 AMI 生命週期政策,請在 Instance reboot (執行個體重新開機) 下檢查是否將 Reboot instance at policy run (執行政策時重新開機執行個體) 設為是。如果是,則執行個體會在 AMI 建立期間重新開機。
若要自動復原因硬體問題而重新開機的執行個體,請設定基於 Amazon CloudWatch 的動作復原。
更新您的核心
**注意:**最佳做法是在更新執行個體的套件之前建立執行個體的 AMI 備份。此組態可讓您根據需要還原變更。
若要更新核心,請完成下列步驟:
-
若要檢查執行個體使用的核心版本,請執行下列命令:
sudo uname -r
-
若要更新核心,請根據您的 Linux 作業系統執行下列其中一個命令。
Red Hat Enterprise Linux (RHEL) 或Amazon Linux:
sudo yum update kernel
SUSE Linux Enterprise Server (SLES):
sudo zypper up kernel-default
Ubuntu:
sudo apt upgrade linux-image-aws
-
若要將執行個體重新開機並使用新的核心,請執行下列命令:
sudo reboot
查看「執行命令歷史記錄」,以確認 Systems Manager 是否已重新啟動該執行個體
如果您在執行個體上設定修補作業,並將 RebootOption 設為 RebootIfNeeded,則 Systems Manager 會在修補期間重新啟動該執行個體。
若要檢查 Systems Manager 是否執行了 Run Command (執行命令),請完成以下步驟:
- 開啟 Systems Manager console (Systems Manager 主控台)。
- 在導覽窗格中,選擇 Run Command (執行命令)。
- 選擇 Command history (命令歷史記錄) 索引標籤
- 在搜尋方塊中輸入您的執行個體 ID,以查看 Systems Manager 對該執行個體執行的所有命令。
相關資訊
故障狀態檢查失敗的 Amazon EC2 Linux 執行個體疑難排解
狀態檢查的類型
管理 AWS 使用者通知中的 AWS Health 通知
在更新阻止 EC2 執行個體重新開機後,如何還原至已知的穩定核心?