Trang chủ » làm thế nào để » Tập lệnh giám sát ổ cứng cho máy chủ Linux không đầu

    Tập lệnh giám sát ổ cứng cho máy chủ Linux không đầu

    Các ổ cứng hiện đại có một cơ chế bên trong gọi là S.M.A.R.T. thông qua đó có thể biết khi nào một đĩa cứng sắp hỏng. Sẽ không tốt khi máy chủ gửi email cho bạn trước khi thất bại như vậy?

    Tổng quan

    Các chương trình như trên mạng mdadm (để quản lý RAID phần mềm) và Tiện ích đĩa Palimpsest (được sử dụng trên Ubuntu LiveCD), sử dụng thông tin S.M.A.R.T để thông báo cho bạn khi đĩa sắp hoặc bị hỏng. Tuy nhiên, trên một máy chủ không đầu (không có GUI), không có dịch vụ nào sẽ thông báo cho bạn về số phận đang chờ xử lý trước khi quá muộn. Hơn nữa, làm thế nào bạn biết về nó mà không cần đăng nhập thủ công vào máy chủ?

    Tập lệnh này, khi được chạy một lần một ngày với cron, sẽ cảnh báo nếu bất kỳ số lượng ổ cứng cứng nào của hệ thống đã đạt đến giới hạn được cố tình hạ xuống thì đĩa đĩa bị ngưỡng ngưỡng xấu và gửi email cảnh báo cho quản trị viên của máy.

    Điều kiện tiên quyết và giả định

    • Bạn đã thiết lập hỗ trợ Email cho máy chủ bằng cách sử dụng Hướng dẫn cài đặt cảnh báo email trên Linux Hướng dẫn Linux.
    • Bạn đang sử dụng hệ thống dựa trên Debian.
    • Bạn không sử dụng bộ điều khiển RAID phần cứng *.
    • Bạn sẽ thấy tôi sử dụng VIM làm chương trình soạn thảo, điều này là do tôi đã quen với nó, bạn có thể sử dụng bất kỳ trình soạn thảo nào khác mà bạn muốn.

    * Vì rất có thể bộ điều khiển RAID phần cứng chặn quyền truy cập của hệ thống vào thông tin này.

    Thiết lập

    Cài đặt gói phần mềm smartmontools của Nhật Bản đọc thông tin S.M.A.R.T từ bộ điều khiển ổ cứng và trình bày cho chúng tôi.

    sudo aptitude cài đặt smartmontools

    Tạo tập lệnh màn hình:

    sudo vim /root/smart-monitor.sh

    Làm cho nó là nội dung:

    #! / bin / bash
    ######## Chức năng email #########
    email_admin_func ()

    tiếng vang "Tới: [email protected]"> $ temp_email_file
    tiếng vang "Từ: [email protected]" >> $ temp_email_file
    echo "Chủ đề: S.M.A.R.T màn hình Ngưỡng vi phạm" >> $ temp_email_file
    tiếng vang "" >> $ temp_email_file
    echo -e $ 1 >> $ temp_email_file
    / usr / sbin / ssmtp -t < $temp_email_file
    echo "Đã gửi email cho quản trị viên"

    smartc_func ()

    / usr / sbin / smartctl -A / dev / $ 1 | grep Reallocated_Sector_Ct | tr -s "| cut -d" -f11

    ######## Kết thúc chức năng #########

    ######## Đặt tham số làm việc #########
    temp_email_file = / tmp / smart_monitor.txt
    allow_thr Ngưỡng = 5 # đặt số lượng thành phần xấu mà bạn sẵn sàng sống cùng, được đề xuất 5.

    ########Động cơ########
    cho tôi trong sda sdb; làm # Thêm hoặc trừ tên đĩa từ danh sách này nếu phù hợp với thiết lập của bạn.
    if [["'smartc_func $ i'" -ge $ allow_thr Ngưỡng]]; sau đó
    echo Gửi email cho Quản trị viên
    email_admin_func "Một trong những HD trên" 'tên máy chủ' ", đã đạt đến giới hạn ngưỡng trên !!! n Ngưỡng này được đặt thành: $ allow_thr Ngưỡng và trạng thái đĩa $ i là:" 'smartc_func $ i' ""
    fi
    làm xong

    Những điểm chính cần lưu ý là:

    • Chức năng email - Đặt thông tin phù hợp như tên máy và email quản trị viên.
    • Ngưỡng cho phép - Đặt tham số này thành những gì bạn cảm thấy phù hợp, tôi đã sử dụng 5 vì giới hạn được đặt cho các ổ đĩa cứng loại máy chủ cấp độ mà tôi đã sử dụng là 10. (tôi đã tìm thấy ngưỡng cho các ổ đĩa Cấp độ người tiêu dùng cao tới 140).
    • Đặt các thiết bị mà bạn muốn theo dõi bằng cách điều chỉnh cách liệt kê tên đĩa trong vòng lặp cho trò chơi. Hiện tại có hai đĩa (sda & sdb), vì vậy hãy điều chỉnh để thiết lập. Bạn có thể bao gồm tất cả các đĩa của bạn hoặc chỉ một số, nếu bạn cần * loại trừ một đĩa vì một số lý do.

    * trong thiết lập ban đầu của tôi, đĩa đầu tiên là ổ đĩa flash nên việc đọc thông tin của nó nếu có thể không được sử dụng nhiều.

    Làm cho tập lệnh thực thi:

    sudo chmod + x /root/smart-monitor.sh

    Quá trình thiết lập đã xong.

    Lịch trình để kịch bản được chạy tự động

    Chúng tôi muốn làm cho tập lệnh chạy tự động vì vậy chúng tôi sẽ tạo một công việc Cron mới cho nó.
    Như đã nêu trong phần Cách thức cài đặt cảnh báo email trên Linux, hướng dẫn cách xử lý nhanh, đó là nếu chính tập lệnh gặp lỗi, cron sẽ tự động thông báo cho chúng tôi qua email ngay khi nó xảy ra.

    Mở lịch trình công việc cron:

    sudo crontab -e

    Thêm phần này vào nội dung của nó:

    0 7 * * * /root/smart-monitor.sh> /tmp/last_smart_monitor_run.log

    Điều này sẽ đặt tập lệnh được chạy mỗi sáng lúc 7 giờ sáng.


    Tất cả các lĩnh vực của bạn thuộc về chúng tôi :)