Chuyển tới nội dung chính

Checklist Bảo Trì Linux Server

Giới Thiệu

Việc bảo trì định kỳ Linux server là một yếu tố then chốt để đảm bảo hệ thống của bạn luôn hoạt động ổn định, an toàn và đạt hiệu suất tối ưu. Giống như một chiếc xe cần được bảo dưỡng thường xuyên, server Linux cũng cần được kiểm tra, cập nhật và dọn dẹp để tránh các sự cố khưng mong muốn như giảm hiệu suất, lỗi hệ thống, hoặc thậm chí là các lỗ hổng bảo mật bị khai thác. Một checklist bảo trì rõ ràng sẽ giúp bạn hệ thống hóa quy trình, không bỏ sót các bước quan trọng và tiết kiệm thời gian đáng kể khi xử lý sự cố.

Bài viết này sẽ cung cấp một checklist toàn diện, dễ thực hiện, giúp bạn duy trì "sức khỏe" cho các máy chủ Linux của mình.

📋 Thời gian: 30-60 phút (tùy thuộc vào quy mô server) | Độ khó: Trung bình

Yêu Cầu

Để thực hiện checklist này, bạn cần có:

  • Quyền truy cập SSH vào Linux server.
  • Quyền sudo hoặc root trên server.
  • Hiểu biết cơ bản về các lệnh Linux và quản trị hệ thống.
  • Một thiết bị đầu cuối (terminal) để kết nối SSH.

Các Bước Thực Hiện

Bước 1: Cập Nhật Hệ Thống (System Updates)

Đây là bước quan trọng nhất để vá các lỗ hổng bảo mật, sửa lỗi và nhận các cải tiến hiệu suất mới nhất.

  • Mục đích: Đảm bảo hệ điều hành và các gói phần mềm luôn được cập nhật.
  • Cách thực hiện:
    • Đối với Debian/Ubuntu:
      sudo apt update          # Cập nhật danh sách các gói có sẵn
      sudo apt upgrade -y # Nâng cấp các gói đã cài đặt lên phiên bản mới nhất
      sudo apt autoremove -y # Xóa các gói không còn cần thiết
    • Đối với CentOS/RHEL/Fedora:
      sudo yum update -y       # Cập nhật tất cả các gói đã cài đặt
      # Hoặc dùng dnf cho các phiên bản mới hơn
      # sudo dnf update -y
    ⚠️ Lưu ý: Nếu có kernel mới được cài đặt, bạn cần khởi động lại server để áp dụng các thay đổi. Hãy lên kế hoạch khởi động lại vào thời điểm ít ảnh hưởng đến dịch vụ nhất.

Bước 2: Kiểm Tra Dung Lượng Đĩa (Disk Space Check)

Một ổ đĩa đầy có thể gây ra nhiều vấn đề nghiêm trọng, từ việc không thể ghi log, lưu dữ liệu mới, đến việc các ứng dụng ngừng hoạt động.

  • Mục đích: Đảm bảo đủ không gian trống trên đĩa.
  • Cách thực hiện:
    df -h                     # Hiển thị dung lượng đĩa đã sử dụng và còn trống
    Kiểm tra các phân vùng quan trọng như /, /var, /home. Nếu có phân vùng nào gần đầy (ví dụ > 80-90%), bạn cần điều tra thêm.
    du -sh /*                 # Tìm các thư mục lớn nhất trong thư mục gốc
    du -sh /var/* # Ví dụ để kiểm tra các thư mục con trong /var
    💡 Mẹo: Thư mục /var/log thường chứa các file log lớn. Hãy xem xét cấu hình logrotate hoặc xóa các log cũ không cần thiết (sau khi đã sao lưu nếu cần).

Bước 3: Kiểm Tra Log Hệ Thống (System Logs Review)

Các file log là "nhật ký" của server, chứa thông tin quan trọng về các sự kiện, lỗi và cảnh báo.

  • Mục đích: Phát hiện sớm các lỗi hệ thống, cảnh báo bảo mật hoặc các vấn đề tiềm ẩn.
  • Cách thực hiện:
    sudo journalctl -p err -b    # Hiển thị các lỗi từ lần khởi động gần nhất (systemd)
    sudo journalctl -p warning -b # Hiển thị các cảnh báo từ lần khởi động gần nhất
    tail -f /var/log/syslog # Xem các sự kiện mới nhất trong syslog (Debian/Ubuntu)
    tail -f /var/log/messages # Xem các sự kiện mới nhất (CentOS/RHEL)
    dmesg | less # Xem thông báo từ kernel
    Tìm kiếm các thông báo lỗi (error), cảnh báo (warning), hoặc các hoạt động đáng ngờ.

Bước 4: Kiểm Tra Tình Trạng Dịch Vụ (Service Status Check)

Đảm bảo các dịch vụ quan trọng như web server (Apache/Nginx), cơ sở dữ liệu (MySQL/PostgreSQL), SSH, v.v., đang hoạt động bình thường.

  • Mục đích: Xác nhận các ứng dụng và dịch vụ chủ chốt đang chạy.
  • Cách thực hiện:
    systemctl list-units --type=service --state=running # Liệt kê tất cả các dịch vụ đang chạy
    systemctl status apache2 # Kiểm tra trạng thái của một dịch vụ cụ thể (ví dụ Apache)
    systemctl status mysql # Kiểm tra trạng thái của MySQL
    Nếu một dịch vụ quan trọng không chạy, hãy xem log của dịch vụ đó để tìm nguyên nhân.

Bước 5: Xác Minh Sao Lưu Dữ Liệu (Data Backup Verification)

Việc sao lưu dữ liệu là vô cùng quan trọng, nhưng việc xác minh các bản sao lưu đó còn quan trọng hơn.

  • Mục đích: Đảm bảo các bản sao lưu đang được tạo ra một cách thành công và có thể khôi phục được.
  • Cách thực hiện:
    • Kiểm tra các báo cáo (logs) của công cụ sao lưu để xác nhận không có lỗi.
    • Đảm bảo các bản sao lđu mới nhất đã được tạo.
    • ⚠️ Định kỳ, hãy thực hiện một bài kiểm tra khôi phục nhỏ trên một môi trường thử nghiệm để chắc chắn rằng dữ liệu có thể được khôi phục thành công.

Bước 6: Kiểm Tra Hiệu Suất Hệ Thống (System Performance Check)

Đôi khi server có thể hoạt động nhưng hiệu suất lại giảm sút đáng kể.

  • Mục đích: Phát hiện các tắc nghẽn về CPU, RAM, I/O.
  • Cách thực hiện:
    top                               # Hiển thị các tiến trình đang chạy, CPU, RAM sử dụng
    htop # Phiên bản tương tác và thân thiện hơn của top
    free -h # Kiểm tra bộ nhớ RAM đã sử dụng và còn trống
    vmstat 1 5 # Thống kê bộ nhớ ảo, I/O, CPU (1s/lần, 5 lần)
    iostat -x 1 # Hiển thị thống kê I/O chi tiết (cần cài đặt `sysstat`)
    Tìm kiếm các tiến trình sử dụng nhiều CPU hoặc RAM bất thường, hoặc các chỉ số I/O quá cao.

Bước 7: Kiểm Tra Bảo Mật Cơ Bản (Basic Security Check)

Một số kiểm tra nhanh có thể giúp phát hiện các vấn đề bảo mật cơ bản.

  • Mục đích: Xác định các lỗ hổng hoặc hoạt động đáng ngờ.
  • Cách thực hiện:
    netstat -tuln                     # Liệt kê các cổng đang mở và lắng nghe kết nối
    # Hoặc dùng ss (thay thế netstat hiện đại hơn)
    # ss -tuln
    last # Xem lịch sử đăng nhập gần đây
    who # Xem ai đang đăng nhập vào server
    • Đảm bảo không có cổng nào không cần thiết đang mở.
    • Kiểm tra các tài khoản đăng nhập lạ hoặc các phiên đăng nhập bất thường.
    • Xem xét lại các quy tắc firewall (sudo ufw status hoặc sudo firewall-cmd --list-all).

Bước 8: Dọn Dẹp File Tạm và Cũ (Clean Up Temporary and Old Files)

Giải phóng không gian đĩa bằng cách xóa các file tạm và các gói không cần thiết.

  • Mục đích: Giải phóng dung lượng đĩa và cải thiện hiệu suất.
  • Cách thực hiện:
    sudo apt clean                    # Xóa các file gói đã tải về từ apt cache (Debian/Ubuntu)
    sudo yum clean all # Xóa các file gói đã tải về từ yum cache (CentOS/RHEL)
    sudo find /tmp -type f -atime +7 -delete # Xóa các file trong /tmp đã không được truy cập trong 7 ngày
    ⚠️ Cẩn trọng: Khi xóa file, đặc biệt là các file hệ thống, hãy đảm bảo bạn biết mình đang xóa gì để tránh làm hỏng hệ thống.

Troubleshooting

  • Server không khởi động sau khi cập nhật kernel:

    • Giải pháp: Khi khởi động, chọn kernel phiên bản cũ hơn từ menu GRUB. Sau đó, điều tra nguyên nhân lỗi của kernel mới (thường liên quan đến driver hoặc cấu hình).
  • Dung lượng đĩa đầy và không thể ghi file:

    • Giải pháp: Sử dụng du -sh /* để xác định thư mục nào chiếm nhiều dung lượng nhất. Tập trung vào /var/log (log files), /tmp (temporary files), hoặc các thư mục dữ liệu của ứng dụng. Xóa các file không cần thiết hoặc nén các file log cũ.
  • Dịch vụ quan trọng không chạy (ví dụ Apache/MySQL):

    • Giải pháp: Kiểm tra trạng thái dịch vụ bằng systemctl status <service_name>. Xem log của dịch vụ đó (ví dụ journalctl -u apache2) để tìm thông báo lỗi cụ thể. Thử khởi động lại dịch vụ bằng systemctl restart <service_name>.
  • Hiệu suất server chậm bất thường:

    • Giải pháp: Dùng top hoặc htop để xác định tiến trình nào đang tiêu thụ nhiều CPU/RAM nhất. Kiểm tra free -h để xem có thiếu RAM không. Dùng iostat để kiểm tra hoạt động I/O của đĩa. Tối ưu hóa ứng dụng hoặc tăng cường tài nguyên server nếu cần.

Kết Luận

Việc thực hiện checklist bảo trì Linux server một cách định kỳ không chỉ giúp đảm bảo hệ thống của bạn luôn ổn định, an toàn và hoạt động hiệu quả mà còn giúp bạn proactive hơn trong việc phát hiện và giải quyết các vấn đề trước khi chúng trở nên nghiêm trọng.

Best Practices:

  • Lên lịch bảo trì: Thiết lập một lịch trình rõ ràng (hàng tuần, hàng tháng) cho các tác vụ bảo trì.
  • Tự động hóa: Cân nhắc tự động hóa một số tác vụ đơn giản như cập nhật hệ thống hoặc dọn dẹp file với cron jobs, nhưng luôn giám sát kết quả.
  • Ghi lại thay đổi: Luôn ghi lại các thay đổi bạn thực hiện trên server để dễ dàng theo dõi và khắc phục sự cố.
  • Kiểm tra sao lưu: Đừng bao giờ bỏ qua bước xác minh khả năng khôi phục của các bản sao lưu.
  • Sử dụng công cụ giám sát: Triển khai các công cụ giám sát (như Zabbix, Prometheus, Grafana) để theo dõi hiệu suất và cảnh báo sớm các vấn đề.

Bằng cách tuân thủ checklist này, bạn sẽ xây dựng được một môi trường server Linux mạnh mẽ và đáng tin cậy. ✅