如何透過電子郵件警報監控Ubuntu上的SMART硬碟健康狀況

Ubuntu 26.04 LTS 目前在其軟體包倉庫中提供 smartmontools 7.5-2。該軟體包包含smartctl用於讀取硬碟健康資料的 smartmontools 和smartd用於監控選定變更並可發送電子郵件的後台服務 smartmontools。 SMART 代表自我監控、分析和報告技術。在設定電子郵件警報之前,請先確認 Ubuntu 可以讀取每個硬碟的 SMART 資料;系統無法監控的裝置將無法傳送訊息。

本指南在一台 Ubuntu 桌面電腦上設定監控器,並在依賴警報之前發送測試郵件。它假設電腦已連接到 SMTP 中繼伺服器(負責接收和投遞郵件的服務)。桌面郵件應用程式本身並不提供此服務。

SMART警報可以告訴你什麼?

SMART 是硬碟報告的健康和錯誤訊息。它可以揭示一些警告情況,例如健康檢查失敗、錯誤數量增加或某些自我檢查結果異常。它是一種早期預警系統,並非保證硬碟能夠預測所有故障。硬碟可能在沒有任何有效警告的情況下停止工作,而「通過」結果並不意味著所有檔案都可讀。請務必單獨備份重要資料。

這些數值也取決於磁碟機類型和韌體。 SATA 硬碟和固態硬碟通常會顯示屬性表;NVMe 硬碟則以不同的格式報告健康資訊。請勿直接比較不同製造商的原始屬性值,也不要將某個通用閾值視為普遍適用。

安裝前需要準備什麼?

  • 具有管理員權限的Ubuntu帳戶。
  • 已啟用軟體包儲存庫,並需要網路連線進行安裝。
  • 接收警報的地址。
  • 您有權使用的 SMTP 中繼伺服器(例如提供者或組織的已驗證郵件伺服器)及其主機、連接埠、TLS 要求和憑證。
  • 在執行驅動器診斷程式或進行儲存變更之前,請務必備份目前資料。

某些 USB 硬碟盒、硬體 RAID 控制器、虛擬機器和網路儲存層不會將 SMART 資料傳遞到 Ubuntu 主機。因此,在直接連接的磁碟上可以正常運行的命令,在透過硬碟盒連接時可能無法執行。在更改設備選項之前,請先確認您的連線類型。

1. 尋找磁碟機名稱並檢查 SMART 存取權限

列出儲存設備,並詢問 smartmontools 可以打開哪些設備:

lsblk -o NAME,TYPE,TRAN,MODEL,SIZE
sudo smartctl --scan-open

裝置路徑通常類似於/dev/sdaSATA 磁碟或/dev/nvme0NVMe 控制器的路徑,但請使用電腦上報告的路徑。使用唯讀健康查詢測試每個目標:

sudo smartctl -a /dev/sda

替換/dev/sda為您識別的裝置。對於 NVMe 驅動器,請替換為其報告的控制器路徑。閱讀命令輸出:它應該包含驅動器標識和健康訊息,而不是“SMART 不受支援”或“設備無法打開”之類的消息。如果掃描結果列出了具有所需設備類型的設備,請按照 smartmontools 手冊中針對該控制器或橋接器的具體說明進行操作,而不是複製其他系統的-d選項。

安裝監控軟體包及配套工具:

sudo apt update
sudo apt install smartmontools mailutils

mailutils它提供 smartd 預設郵件路徑使用的命令列mail程式。它本身並非外發郵件中繼。如果 Ubuntu 尚未設定郵件傳輸代理,請先進行設定再繼續。

2. 在更改 smartd 之前設定外發電子郵件

Ubuntu 的 Postfix 軟體包可以透過 SMTP 提供者轉送外寄郵件。請將其配置為郵件用戶端,並使用提供者提供的轉送主機、驗證、寄件者位址、連接埠和 TLS 設定;請勿將桌面配置為開放式轉送。 Ubuntu 的伺服器指南中詳細介紹了 Postfix 和轉送的設定。具體的憑證和設定因郵件提供者而異,因此請使用該提供者的最新說明。保護好您儲存的任何敏感訊息,防止其他本地用戶獲取。

在呼叫 smartd 之前,先從命令列傳送一條測試訊息:

printf 'This is an Ubuntu SMART email test.\n' | mail -s 'SMART alert test' you@example.com

將範例收件人地址替換為您自己的地址。確認郵件是否送達,包括垃圾郵件或廣告郵件資料夾。若未送達,請先排查郵件中繼問題。使用 `postfix list` 指令檢查郵件佇列mailq,並使用 `postfix log` 指令查看 Postfix 日誌journalctl -u postfix。本地命令成功可能只表示郵件已排隊;只有遠端郵箱收到郵件才是真正的檢驗標準。

3. 新增 SMART 警報目標

以管理員身份開啟 smartd 設定:

sudoedit /etc/smartd.conf

對於預設裝置掃描能夠找到磁碟機的計算機,請使用一筆有效的裝置掃描記錄,並取代範例位址。如果文件中已存在有效DEVICESCAN記錄,請編輯該記錄,而不是新增重複項:

DEVICESCAN -a -m you@example.com -M test

DEVICESCAN請求 smartd 偵測支援的設備。-a啟用常用的運作狀況檢查、錯誤日誌檢查、自我檢測檢查和屬性檢查。-m設定電子郵件收件者。-M test在守護程式啟動時請​​求發送一封測試電子郵件。 smartd 設定手冊指出,此條目會接管掃描配置,因此請勿在其後新增針對每個磁碟的行。如果自動偵測遺漏了某個磁碟,請根據輸出和手冊DEVICESCAN使用顯式裝置條目。smartctl --scan-open

儲存並關閉編輯器。如果設定檔包含私密訊息,請將其設定為僅管理員可讀。收件者並非密碼,但絕對不能將 SMTP 中繼憑證放在此文件中。

4. 開始監控並確認測試警報

在 Ubuntu 系統中,打包單元名稱為smartmontools.service。啟用並啟動它,然後檢查其狀態:

sudo systemctl enable --now smartmontools.service
systemctl status smartmontools.service

Ubuntu 的軟體包也用於/etc/default/smartmontools控制受支援軟體包配置中的守護程序啟動。如果安裝後服務未激活,請檢查該檔案中的start_smartd=yes設置,然後重新啟動服務。如果啟動失敗,請在修改單元檔案之前閱讀日誌:

sudo journalctl -u smartmontools.service -b

由於配置中包含相關設置-M test,重啟服務後應該會觸發一封測試郵件。請確認收到郵件。此測試證明 smartd 可以呼叫郵件路徑,且郵件可以到達收件匣;但它並不會模擬磁碟機故障,也不保證郵件將來能夠送達。測試成功後,請編輯/etc/smartd.conf並刪除-M test相關設置,以避免正常重新啟動時發送額外的測試郵件。然後再次重啟服務:

sudo systemctl restart smartmontools.service

5. 確認每個驅動器都已被監控

檢查服務日誌和手動運行狀況輸出:

sudo journalctl -u smartmontools.service -b
sudo smartctl -a /dev/sda

將路徑替換為發現過程中報告的每個磁碟機的路徑。守護程式日誌應顯示它已開啟受支援的裝置和計畫檢查,且未出現重複的裝置存取錯誤。此時的正常報告可提供有用的基線信息,但並不能保證不會發生突發故障。

為了在不發生故障的情況下檢查設備行為,請在設備支援的情況下執行硬碟自我檢測。通常,短時自檢比長時間自檢對系統幹擾更小,但請務必查閱硬碟手冊,並避免在不穩定的系統或儲存了不可替代資料且沒有備份的硬碟上啟動診斷程序。測試指令可以類似於 `<command>` sudo smartctl -t short /dev/sda;硬碟會報告測試預計完成的時間。使用 `<command>` 查看結果sudo smartctl -l selftest /dev/sda。電子郵件測試和硬碟自檢是兩個獨立的檢查:一個用於驗證郵件送達情況,另一個用於讓設備進行自我檢查。

常見問題及檢查內容

服務正在運行,但沒有收到電子郵件。

首先使用該mail命令發送另一封郵件。如果失敗,請檢查 SMTP 中繼、驗證、TLS 設定、寄件者政策、DNS、佇列和垃圾郵件資料夾。如果命令列郵件發送正常但 smartd 測試失敗,請確認收件者出現在活動DEVICESCAN行中,mail可執行檔已安裝,並且 smartd 可以找到它。檢查守護程式日誌,查看郵件程式的錯誤輸出。

掃描中缺少一個磁碟機。

再次運行sudo smartctl --scan-open並檢查設備特定的指令。 USB 轉 SATA 橋接器可能需要特定的直通模式,而某些 RAID 控制器則需要控制器特定的裝置語法。切勿猜測:錯誤的設備類型會導致 smartmontools 查詢錯誤的設備或無法報告任何有用的信息。

磁碟檢測報告顯示“通過”,但有錯誤。

請仔細閱讀詳細屬性、錯誤日誌和自我檢測日誌,不要將整體摘要視為全部診斷結果。如果錯誤增加、設備變得不穩定或收到警報,請立即備份重要資料並規劃更換設備。即使檢查結果正常,也不能取代定期備份。

了解電子郵件監控的局限性

smartd 會定期輪詢支援的設備,並透過電子郵件發送選定的警告;但它無法監控所有可能的故障模式,離線桌面在斷電或斷開連接時無法報告故障。電子郵件也可能出現延遲、被拒收或被過濾的情況。請定期檢查服務運作狀況,並在變更 SMTP 憑證或提供者後重複郵件投遞測試。對於關鍵數據,請將 SMART 監控與獨立備份和復原計畫結合使用。

官方參考資料

留下評論

如何透過電子郵件警報監控Ubuntu上的SMART硬碟健康狀況

如何透過電子郵件警報監控Ubuntu上的SMART硬碟健康狀況

在 Ubuntu 系統上安裝 smartmontools,用於監控硬碟健康狀況並發送 SMART 郵件警報。檢查設備支援狀況、設定郵件發送、測試通知功能並檢查故障。

修正在 UEFI 系統上安裝 Debian 後出現的「找不到可啟動裝置」錯誤

修正在 UEFI 系統上安裝 Debian 後出現的「找不到可啟動裝置」錯誤

透過檢查安裝程式啟動模式、EFI 系統分割區、NVRAM 條目、GRUB EFI 檔案、安全啟動和韌體回退來修復 Debian UEFI 啟動失敗。

如何在 Ubuntu 桌面系統上設定 Btrfs 自動快照

如何在 Ubuntu 桌面系統上設定 Btrfs 自動快照

配置 Snapper 以在 Ubuntu 桌面上建立和清理定時產生的 Btrfs 快照。首先檢查子磁碟區佈局,啟用 systemd 定時器,並安全地驗證保留策略。

安全修復 SUSE Linux Enterprise LVM 精簡配置空間不足的問題

安全修復 SUSE Linux Enterprise LVM 精簡配置空間不足的問題

透過區分資料耗盡和元資料耗盡、擴展儲存、修復元資料和啟用自動擴展,診斷和恢復 SUSE Linux Enterprise 上的完整 LVM 精簡池。

Debian 12 CIS 加固指南:伺服器基線逐步指南

Debian 12 CIS 加固指南:伺服器基線逐步指南

使用安全的伺服器工作流程(包括更新、SSH、防火牆、AppArmor、稽核和驗證),對 Debian 12 Bookworm 進行強化,使其符合目前的 CIS 基準 v2.0.0 標準。

如何在 Gooroom OS 上安裝 Flatpak 和 Snap 應用

如何在 Gooroom OS 上安裝 Flatpak 和 Snap 應用

在 Gooroom OS 上安裝 Flatpak 和 Snap 應用,包括版本檢查、終端命令以及相容性、安全控制、更新和儲存的實際比較。

如何修正 GPG 錯誤:Ubuntu 中無法驗證以下簽名

如何修正 GPG 錯誤:Ubuntu 中無法驗證以下簽名

安全地修復 Ubuntu APT 簽章錯誤。無需停用軟體包驗證,即可識別 NO_​​PUBKEY、EXPKEYSIG、BADSIG、時脈和軟體來源設定問題。

如何在 SLES 15 上設定 DM-Multipath:實用指南

如何在 SLES 15 上設定 DM-Multipath:實用指南

在 SLES 15 上設定 DM-Multipath,實現安全發現、服務設定、最小 multipath.conf 變更、initramfs 更新和路徑健康檢查。

SLES Btrfs Snapper 更新失敗後回滾:安全復原指南

SLES Btrfs Snapper 更新失敗後回滾:安全復原指南

使用 Btrfs 和 Snapper 在更新失敗後恢復 SLES。比較回滾選項,安全地測試快照,恢復系統,並驗證儲存庫。

如何在 Pardus 用戶端部署自訂桌布和策略

如何在 Pardus 用戶端部署自訂桌布和策略

使用 Liderahenk 和 Ahenk 來設定自訂的 Pardus GNOME 桌布,使用 dconf 鎖定選定的設置,並透過經過測試的試點專案推出其他客戶端策略。