Ubuntu 26.04 LTS ในปัจจุบันมี smartmontools 7.5-2 อยู่ในคลังแพ็กเกจ แพ็กเกจนี้ประกอบด้วย smartmontools smartctlซึ่งอ่านข้อมูลสุขภาพของไดรฟ์ และsmartdsmartmontools ซึ่งเป็นบริการพื้นหลังที่คอยตรวจสอบการเปลี่ยนแปลงที่เลือกไว้และสามารถส่งอีเมลได้ SMART ย่อมาจาก Self-Monitoring, Analysis and Reporting Technology (เทคโนโลยีการตรวจสอบ การวิเคราะห์ และการรายงานด้วยตนเอง) ก่อนที่จะกำหนดค่าการแจ้งเตือนทางอีเมล โปรดยืนยันก่อนว่า Ubuntu สามารถอ่านข้อมูล SMART จากแต่ละไดรฟ์ได้หรือไม่ จะไม่สามารถส่งข้อความได้สำหรับอุปกรณ์ที่ระบบไม่สามารถตรวจสอบได้
คู่มือนี้จะตั้งค่ามอนิเตอร์บนเดสก์ท็อป Ubuntu เครื่องเดียว และส่งอีเมลทดสอบก่อนที่จะใช้งานระบบแจ้งเตือน โดยสมมติว่าคอมพิวเตอร์มีเส้นทางที่ใช้งานได้ไปยัง SMTP relay ซึ่งเป็นบริการที่รับอีเมลขาออกเพื่อการจัดส่ง แอปอีเมลบนเดสก์ท็อปเพียงอย่างเดียวไม่สามารถให้บริการนั้นได้
ระบบแจ้งเตือนอัจฉริยะ (SMART alert) สามารถบอกอะไรคุณได้บ้าง?
SMART คือระบบรายงานข้อมูลสุขภาพและข้อผิดพลาดของฮาร์ดไดรฟ์ มันสามารถแสดงสภาวะเตือนภัยต่างๆ เช่น การตรวจสอบสุขภาพล้มเหลว ข้อผิดพลาดที่เพิ่มขึ้น หรือผลการทดสอบตัวเองบางอย่าง มันเป็นระบบเตือนภัยล่วงหน้า ไม่ใช่การรับประกันว่าฮาร์ดไดรฟ์จะคาดการณ์ความล้มเหลวได้ทุกครั้ง ฮาร์ดไดรฟ์อาจหยุดทำงานโดยไม่มีการเตือนที่เป็นประโยชน์ และผลลัพธ์ "ผ่าน" ไม่ได้หมายความว่าไฟล์ทุกไฟล์สามารถอ่านได้ ควรสำรองข้อมูลสำคัญแยกต่างหาก
ค่าต่างๆ ยังขึ้นอยู่กับประเภทของไดรฟ์และเฟิร์มแวร์ด้วย ฮาร์ดไดรฟ์ SATA และ SSD มักแสดงตารางคุณลักษณะ ในขณะที่ไดรฟ์ NVMe รายงานข้อมูลสถานะในรูปแบบที่แตกต่างกัน อย่าเปรียบเทียบตัวเลขคุณลักษณะดิบๆ ระหว่างผู้ผลิต หรือใช้เกณฑ์ทั่วไปเกณฑ์เดียวเป็นเกณฑ์สากล
คุณควรเตรียมอะไรบ้างก่อนการติดตั้ง?
- บัญชี Ubuntu ที่มีสิทธิ์ผู้ดูแลระบบ
- ต้องเปิดใช้งานที่เก็บแพ็กเกจและต้องมีการเชื่อมต่ออินเทอร์เน็ตสำหรับการติดตั้ง
- ที่อยู่ที่จะได้รับการแจ้งเตือน
- เซิร์ฟเวอร์ส่งต่อ SMTP ที่คุณได้รับอนุญาตให้ใช้งาน เช่น เซิร์ฟเวอร์อีเมลที่ได้รับการตรวจสอบสิทธิ์ของผู้ให้บริการหรือองค์กร พร้อมด้วยโฮสต์ พอร์ต ข้อกำหนด TLS และข้อมูลประจำตัว
- ควรสำรองข้อมูลล่าสุดก่อนทำการตรวจสอบไดรฟ์หรือเปลี่ยนแปลงข้อมูลการจัดเก็บข้อมูล
อุปกรณ์จัดเก็บข้อมูล USB บางชนิด, ตัวควบคุม RAID แบบฮาร์ดแวร์, เครื่องเสมือน และเลเยอร์จัดเก็บข้อมูลเครือข่ายบางประเภท ไม่ส่งข้อมูล SMART ไปยังโฮสต์ Ubuntu ดังนั้น คำสั่งที่ใช้งานได้กับดิสก์ที่เชื่อมต่อโดยตรง อาจใช้งานไม่ได้เมื่อเชื่อมต่อผ่านอุปกรณ์จัดเก็บข้อมูล โปรดตรวจสอบประเภทการเชื่อมต่อของคุณก่อนที่จะเปลี่ยนตัวเลือกอุปกรณ์
1. ค้นหาชื่อไดรฟ์และตรวจสอบการเข้าถึงแบบ SMART
แสดงรายการอุปกรณ์จัดเก็บข้อมูลและสอบถาม smartmontools ว่าสามารถเปิดอุปกรณ์ใดได้บ้าง:
lsblk -o NAME,TYPE,TRAN,MODEL,SIZE
sudo smartctl --scan-open
เส้นทางของอุปกรณ์มักจะมีลักษณะเช่นนี้/dev/sdaสำหรับดิสก์ SATA หรือ/dev/nvme0สำหรับคอนโทรลเลอร์ NVMe แต่ให้ใช้เส้นทางที่แสดงบนคอมพิวเตอร์ของคุณ ทดสอบแต่ละเป้าหมายด้วยการสอบถามสถานะแบบอ่านอย่างเดียว:
sudo smartctl -a /dev/sda
แทนที่/dev/sdaด้วยอุปกรณ์ที่คุณระบุ สำหรับไดรฟ์ NVMe ให้แทนที่ด้วยเส้นทางคอนโทรลเลอร์ที่รายงาน อ่านผลลัพธ์ของคำสั่ง: ควรมีข้อมูลประจำตัวไดรฟ์และข้อมูลสถานะการทำงาน แทนที่จะเป็นข้อความที่ระบุว่า SMART ไม่รองรับหรืออุปกรณ์ไม่สามารถเปิดได้ หากการสแกนแสดงรายการอุปกรณ์ที่มีประเภทอุปกรณ์ที่กำหนด ให้ปฏิบัติตามคู่มือ smartmontools สำหรับคอนโทรลเลอร์หรือบริดจ์นั้นๆ แทนที่จะคัดลอก-dตัวเลือก ของระบบอื่น
ติดตั้งแพ็คเกจการตรวจสอบและเครื่องมือสนับสนุน:
sudo apt update
sudo apt install smartmontools mailutils
mailutilsโปรแกรม นี้เป็นตัวกลางในการส่งอีเมลmailที่ใช้โดย smartd ในเส้นทางอีเมลเริ่มต้น โปรแกรมนี้ไม่ใช่ตัวกลางส่งต่ออีเมลโดยตรง หาก Ubuntu ยังไม่ได้ตั้งค่าตัวแทนถ่ายโอนอีเมล โปรดตั้งค่าก่อนดำเนินการต่อ
2. ตั้งค่าอีเมลขาออกก่อนเปลี่ยนการตั้งค่า smartd
แพ็กเกจ Postfix ของ Ubuntu สามารถส่งต่ออีเมลขาออกผ่านผู้ให้บริการ SMTP ได้ ตั้งค่าให้เป็นไคลเอ็นต์อีเมลโดยใช้โฮสต์รีเลย์ การตรวจสอบสิทธิ์ ที่อยู่ผู้ส่ง พอร์ต และการตั้งค่า TLS ที่ผู้ให้บริการของคุณกำหนด อย่าตั้งค่าเดสก์ท็อปเป็นรีเลย์แบบเปิด เอกสารของ Ubuntu เกี่ยวกับการตั้งค่า Postfix และรีเลย์อยู่ในคู่มือเซิร์ฟเวอร์ ข้อมูลประจำตัวและการตั้งค่าที่แน่นอนจะแตกต่างกันไปตามผู้ให้บริการอีเมล ดังนั้นโปรดใช้คำแนะนำล่าสุดของผู้ให้บริการนั้นๆ ปกป้องข้อมูลลับที่จัดเก็บไว้จากผู้ใช้ภายในเครื่องรายอื่น
ส่งข้อความทดสอบจากบรรทัดคำสั่งก่อนที่จะใช้งาน smartd:
printf 'This is an Ubuntu SMART email test.\n' | mail -s 'SMART alert test' you@example.com
แทนที่ผู้รับตัวอย่างด้วยที่อยู่ของคุณเอง ตรวจสอบว่าข้อความมาถึงหรือไม่ รวมถึงในโฟลเดอร์สแปมหรือจดหมายขยะ หากไม่มาถึง ให้ตรวจสอบการส่งต่ออีเมลก่อน ตรวจสอบคิวอีเมลด้วยคำสั่ง `mail queue` mailqและตรวจสอบบันทึกของ Postfix ด้วยคำสั่ง `postfix log` journalctl -u postfixคำสั่ง `postfix queue` ที่สำเร็จในเครื่องหมายความว่าข้อความถูกจัดคิวไว้แล้วเท่านั้น การส่งไปยังกล่องจดหมายระยะไกลคือการทดสอบที่แท้จริง
3. เพิ่มปลายทางการแจ้งเตือนแบบ SMART
เปิดการตั้งค่า smartd ในฐานะผู้ดูแลระบบ:
sudoedit /etc/smartd.conf
สำหรับคอมพิวเตอร์ที่การสแกนอุปกรณ์เริ่มต้นพบไดรฟ์ ให้ใช้บรรทัดการสแกนอุปกรณ์ที่ใช้งานอยู่เพียงบรรทัดเดียว โดยแทนที่ที่อยู่ตัวอย่าง หากไฟล์มีDEVICESCANรายการที่ใช้งานอยู่แล้ว ให้แก้ไขบรรทัดนั้นแทนที่จะเพิ่มรายการซ้ำ:
DEVICESCAN -a -m you@example.com -M test
DEVICESCANสั่งให้ smartd ตรวจสอบอุปกรณ์ที่รองรับ-aเปิดใช้งานชุดตรวจสอบสถานะทั่วไป เช่น สถานะสุขภาพ บันทึกข้อผิดพลาด การทดสอบตัวเอง และคุณลักษณะ-mตั้งค่าผู้รับอีเมล-M testขออีเมลทดสอบหนึ่งฉบับเมื่อ daemon เริ่มทำงาน คู่มือการกำหนดค่า smartd ระบุว่าDEVICESCANรายการนี้จะใช้การกำหนดค่าการสแกน ดังนั้นอย่าเพิ่มบรรทัดต่อดิสก์หลังจากนั้น หากการตรวจจับอัตโนมัติไม่พบดิสก์ ให้ใช้รายการอุปกรณ์ที่ระบุอย่างชัดเจนโดยอิงจากsmartctl --scan-openผลลัพธ์และคู่มือ
บันทึกและปิดโปรแกรมแก้ไข เก็บไฟล์การกำหนดค่าไว้ในที่ที่ผู้ดูแลระบบเท่านั้นอ่านได้ หากไฟล์นั้นมีข้อมูลส่วนตัว ผู้รับไม่ใช่รหัสผ่าน แต่ห้ามใส่ข้อมูลประจำตัวของ SMTP relay ไว้ในไฟล์นี้เด็ดขาด
4. เริ่มการตรวจสอบและยืนยันการแจ้งเตือนการทดสอบ
ใน Ubuntu หน่วยที่บรรจุไว้จะมีชื่อว่าsmartmontools.serviceเปิดใช้งานและเริ่มต้นใช้งาน จากนั้นตรวจสอบสถานะของมัน:
sudo systemctl enable --now smartmontools.service
systemctl status smartmontools.service
แพ็กเกจของ Ubuntu ยังใช้/etc/default/smartmontoolsเพื่อควบคุมการเริ่มต้นของ daemon ในการกำหนดค่าแพ็กเกจที่รองรับ หากบริการไม่ทำงานหลังจากติดตั้ง ให้ตรวจสอบไฟล์นั้นเพื่อ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
แทนที่เส้นทางด้วยไดรฟ์แต่ละตัวที่รายงานระหว่างการค้นหา บันทึกของเดมอนควรแสดงให้เห็นว่าได้เปิดอุปกรณ์ที่รองรับและตรวจสอบตามกำหนดเวลาโดยไม่เกิดข้อผิดพลาดในการเข้าถึงอุปกรณ์ซ้ำ รายงานที่แสดงว่าทุกอย่างปกติในขณะนี้เป็นข้อมูลพื้นฐานที่มีประโยชน์ แต่ไม่ใช่การรับประกันว่าจะไม่เกิดความล้มเหลวกะทันหัน
เพื่อตรวจสอบพฤติกรรมโดยไม่ต้องรอให้เกิดความล้มเหลว ให้ทำการทดสอบตัวเองของไดรฟ์เมื่ออุปกรณ์รองรับ การทดสอบแบบสั้นโดยทั่วไปจะรบกวนน้อยกว่าการทดสอบแบบยาว แต่ควรตรวจสอบคู่มือของไดรฟ์และหลีกเลี่ยงการเริ่มการวินิจฉัยบนระบบที่ไม่เสถียรหรือไดรฟ์ที่มีข้อมูลที่ไม่สามารถกู้คืนได้และไม่มีการสำรองข้อมูล คำสั่งทดสอบอาจมีลักษณะดังนี้sudo smartctl -t short /dev/sda; ไดรฟ์จะแจ้งให้ทราบเมื่อคาดว่าการทดสอบจะเสร็จสิ้น ตรวจสอบผลลัพธ์ด้วยsudo smartctl -l selftest /dev/sda; การทดสอบอีเมลและการทดสอบตัวเองของไดรฟ์เป็นการตรวจสอบแยกกัน: การทดสอบหนึ่งตรวจสอบการส่ง ในขณะที่อีกการทดสอบหนึ่งขอให้อุปกรณ์ตรวจสอบตัวเอง
ปัญหาที่พบได้บ่อยและสิ่งที่ควรตรวจสอบ
บริการทำงานอยู่ แต่ไม่มีอีเมล
ขั้นแรกให้ส่งข้อความอีกครั้งโดยใช้mailคำสั่งนั้น หากยังไม่สำเร็จ ให้ตรวจสอบการส่งต่อ SMTP, การตรวจสอบสิทธิ์, การตั้งค่า TLS, นโยบายผู้ส่ง, DNS, คิว และโฟลเดอร์สแปม หากการส่งอีเมลผ่านบรรทัดคำสั่งทำงานได้ แต่การทดสอบ smartd ล้มเหลว ให้ตรวจสอบว่าผู้รับปรากฏอยู่ในDEVICESCANบรรทัดmailที่ใช้งานอยู่ ติดตั้งไฟล์ปฏิบัติการแล้ว และ smartd สามารถค้นหาไฟล์นั้นได้ ตรวจสอบบันทึกของ daemon เพื่อดูข้อผิดพลาดของโปรแกรมส่งอีเมล
มีไดรฟ์หายไปจากการสแกน
ลองรันsudo smartctl --scan-openอีกครั้งและตรวจสอบคำแนะนำเฉพาะอุปกรณ์ ตัวแปลง USB เป็น SATA อาจต้องการโหมด pass-through เฉพาะ ในขณะที่ตัวควบคุม RAID บางตัวต้องการไวยากรณ์อุปกรณ์เฉพาะตัวควบคุม อย่าเดา: ประเภทอุปกรณ์ที่ไม่ถูกต้องอาจทำให้ smartmontools สอบถามเป้าหมายที่ไม่ถูกต้องหรือล้มเหลวในการรายงานข้อมูลที่เป็นประโยชน์ใดๆ
ดิสก์แจ้งว่า "ผ่าน" แต่มีข้อผิดพลาดอยู่
อ่านรายละเอียดคุณสมบัติ บันทึกข้อผิดพลาด และบันทึกการทดสอบตัวเองอย่างละเอียด แทนที่จะถือว่าสรุปโดยรวมเป็นข้อมูลการวินิจฉัยทั้งหมด หากพบข้อผิดพลาดเพิ่มขึ้น อุปกรณ์ทำงานไม่น่าเชื่อถือ หรือมีการแจ้งเตือน ให้สำรองข้อมูลสำคัญโดยทันทีและวางแผนเปลี่ยนอุปกรณ์ใหม่ ผลลัพธ์ที่ดูเรียบร้อยไม่สามารถทดแทนการสำรองข้อมูลเป็นประจำได้
ทำความเข้าใจข้อจำกัดของการตรวจสอบอีเมล
smartd จะตรวจสอบอุปกรณ์ที่รองรับเป็นระยะ และส่งอีเมลแจ้งเตือนที่เลือกไว้ แต่จะไม่ตรวจสอบทุกโหมดความล้มเหลวที่เป็นไปได้ และเดสก์ท็อปแบบออฟไลน์จะไม่สามารถรายงานได้ในขณะที่ปิดเครื่องหรือตัดการเชื่อมต่อ อีเมลอาจล่าช้า ถูกปฏิเสธ หรือถูกกรองได้เช่นกัน ตรวจสอบสถานะการทำงานของบริการเป็นครั้งคราว และทำการทดสอบการส่งอีเมลซ้ำอีกครั้งหลังจากเปลี่ยนข้อมูลประจำตัว SMTP หรือผู้ให้บริการ สำหรับข้อมูลที่สำคัญ ควรใช้การตรวจสอบ SMART ร่วมกับการสำรองข้อมูลอิสระและแผนการกู้คืนข้อมูล
เอกสารอ้างอิงอย่างเป็นทางการ