Một số công cụ để monitor server Linux

I. Giới thiệu:

Mọi hệ thống server đều cần một hoặc nhiều giải pháp giám sát và quản lý phù hợp. Theo dõi cách server của bạn đang hoạt động sẽ giúp bạn phát hiện ra các vấn đề và giải quyết chúng một cách nhanh chóng.

Có rất nhiều công cụ monitor được tạo ra cho mục đích này. Hướng dẫn này sẽ giới thiệu cho bạn một số ứng dụng hữu ích cho việc quản lý và theo dõi server Linux.

II. Giám xác các tiến trình đang chạy trong Linux:

Công cụ “top” và “htop”:  Đây là 2 công cụ giúp bạn xem được tổng quan thông tin hệ thống, chẳng hạn như thông số CPU / bộ nhớ và tác vụ đang chạy, đồng thời bạn cũng có thể thể xem tất cả các process (tiến trình) đang chạy trên máy chủ của chính mình.

  1. Lệnh “top”
    Để hiển thị các thông tin của hệ thống, chỉ cần gõ lệnh sau vào cửa sổ dòng lệnh:
    # top
    • Ngoài ra còn một số lệnh tham số kết hợp cho lệnh top:
        • -h – Hiển thị phiên bản hiện tại.
        • -c – Tham số này chuyển đổi trạng thái cột hiển thị từ hiển thị lệnh chạy service sang hiển thị tên service và ngược lại.
        • -d – Chỉ định thời gian trễ khi refresh màn hình.
        • -o – Sắp xếp theo trường được đặt tên
        • -p – Chỉ hiển thị các tiến trình với ID được chỉ định.
        • -u – Chỉ hiển thị những tiến trình của người dùng được chỉ định.
        • -i – Không hiển thị các idle task.

    Có rất nhiều thông tin sẽ hiển thị trong lệnh top, bao gồm:

    • Dòng 1:
      • Thời gian hiện tại của hệ thống.
      • Thời gian uptime.
      • Số lượng người dùng.
      • Load average hiển thị thời gian load hệ thống trong 1 phút, 5 phút và 15 phút cuối
        Lưu ý: Load average sẽ khác nhau tùy theo server và thời điểm. Nếu Server/VPS của bạn có 2 CPU(s) thì trung bình tải chỉ nên là dưới 2. Nếu con số này cao hơn số CPU của bạn thì hệ thống đang quá tải, số lượng công việc xử lý vượt qua mức CPU có thể xử lý hiện tại.
    • Dòng 2:
      • Tasks: Tổng số tác vụ có trên máy chủ
      • running: Số lượng tác vụ đang chạy
      • sleeping: Số lượng tác vụ trong trạng thái “sleep”, bạn có thể hiểu tác vụ đang tạm dừng
      • stopped: Số lượng tác vụ đã dừng
      • Số lượng tác vụ zombie (tiến trình không tồn tại hoặc bị hỏng)
    • Dòng 3:

      • %us (user cpu time): phần trăm do tiến trình của người dùng (non root) sử dụng.
      • %sy (system cpu time): phần trăm do tiến trình của hệ thống (root) sử dụng.
      • %ni (user nice cpu time): phần trăm do các tiến trình có mức độ ưu tiên thấp sử dụng.
      • %id (idle cpu time): phần trăm CPU đang rảnh.
      • %wa (io wait cpu time): phần trăm CPU để đợi trong khi các tiến trình I/O đang xử lý.
      • %hi (hardware irq): phần trăm để xử lý gián đoạn phần cứng.
      • %si (software irq): phần trăm để xử lý gián đoạn phần mềm.
      • %st (steal time): phần trăm do máy ảo sử dụng.
    • Dòng 4:

      • Tổng bộ nhớ hệ thống(đơn vị Kib).
      • Bộ nhớ trống.
      • Bộ nhớ đã sử dụng.
      • Bộ nhớ đệm buffer cache.
    • Dòng 5:

      • Tổng swap có sẵn(đơn vị Kib).
      • Tổng swap còn trống.
      • Tổng swap đã sử dụng.
      • Bộ nhớ khả dụng.
        Swap là RAM ảo, được sử dụng khi bộ nhớ vật lý (RAM) bị đầy. Luôn luôn bật Swap để khi hệ thống đầy ram vật lý sẽ không bị treo.
    • Bảng chính:

      • ID tiến trình.
      • Người dùng(Mình có ẩn bớt một số user chứ mặc định không có trống).
      • Mức độ ưu tiên.
      • Mức độ nice (gọi một tập lệnh shell với mức độ ưu tiên cụ thể).
      • Bộ nhớ ảo được sử dụng bởi tiến trình.
      • Bộ nhớ “thường trú” mà một tiến trình sử dụng (tức là tiến trình luôn ở trong bộ nhớ và không thể chuyển ra thiết bị lưu trữ khác)
      • Bộ nhớ có thể chia sẻ
      • CPU được sử dụng bởi tiến trình theo tỷ lệ phần trăm của 1 cpu.
      • Bộ nhớ được sử dụng bởi tiến trình theo tỷ lệ phần trăm
      • Thời gian tiến trình đã được chạy
      • Lệnh chạy.
          •  
  2. Lệnh “htop”:
    • Cách đọc lệnh htop cũng tương tự như top, ngoài ra chúng ta cũng có thêm một số chức năng mới. Để cài đặt htop chúng ta sử dụng lệnh sau:
      # yum install epel-release -y                                                       

      # yum install htop -y                                                              
    • Để sử dụng htop ta sử dụng lệnh
      # htop
    • Phím tắt và phím chức năng Htop

Một số phím tắt và phím chức năng mà chúng ta dùng để tương tác với htop.

Mô tả

Phím chức năng

Phím tắt
Help F1 h
Setup F2 s
Seach Process F3 /
Inver Sort Order F4 i
Tree F5 t
Sort by F6 >
Nice – (Change Priority) F7 [
Nice + (Change Priority) F8 ]
Kill F9 k
Quit F10 q

 

III. Cách giám sát băng thông mạng trên linux:

  1. Nethogs
    • Để biết được ứng dụng nào đang sử dụng nhiều băng thông, nethogs là một lựa chọn tốt để kiểm tra và thống kê real-time về trạng thái của băng thông của mỗi tiến trình sử dụng network trên server.
    • Trên Centos, bạn có thể cài đặt nethogs bằng lệnh sau:
      #yum install nethogs -y                                                                      
    • Sau đó, nethogs lệnh sẽ có sẵn:
      #nethogs    

      nethogs liên kết từng ứng dụng với lưu lượng mạng của nó.

    • Chỉ có một số lệnh mà bạn có thể sử dụng để điều khiển nethogs:
      • M : Thay đổi hiển thị giữa “kb / s”, “kb”, “b” và “mb”.
      • R : Sắp xếp theo lưu lượng nhận được.
      • S : Sắp xếp theo lưu lượng gửi.
      • Q : Thoát
    • Những options của NetHogs sử dụng kèm với lệnh nethogs:

      • -d : Delay thời gian cập nhật thông tin theo mong muốn.
      • -h : Danh sách các option có thể sử dụng.
      • -p : Sniff trong chế độ hỗn hợp (không khuyến khích sử dụng).
      • -t : Tracemode.
      • -V : Hiển thị thông tin phiên bản của phần mềm.
    •  
  1. Iptraf-ng
    • iptraf-ng là một cách khác để giám sát lưu lượng mạng.
    • Bạn có thể cài đặt iptraf-ng bằng lệnh sau:
      #yum install iptraf-ng -y 
    • Sau đó, nethogs lệnh sẽ có sẵn:
      #iptraf-ng              
    • Ở giao diện ứng dụng, bạn sẽ thấy một menu sử dụng khung giao diện dòng lệnh phổ biến được gọi là ncurses.
    • Bạn có thể xem những địa chỉ IP nào bạn đang kết nối trên tất cả các giao diện mạng của mình.
    • Nếu bạn muốn các địa chỉ IP đó được phân giải thành các miền, bạn có thể bật tra cứu DNS ngược bằng cách thoát khỏi màn hình lưu lượng, chọn Configure và sau đó bật Reverse DNS lookups.
    • Bạn cũng có thể cho phép TCP/UDP service names xem tên của các dịch vụ đang được chạy thay vì số cổng.
    • Với cả hai tùy chọn này được bật, màn hình có thể trông như thế này:
  2. Netstat
    • Lệnh netstat là một công cụ monitor khác để thu thập thông tin mạng.
    • netstat được cài đặt theo mặc định trên hầu hết các hệ thống hiện đại, nhưng bạn có thể tự cài đặt bằng cách tải xuống từ kho mặc định của hệ điều hành. Với hầu hết các hệ thống Linux, bao gồm cả Centos, gói chứa netstatlà net-tools:
      #yum install net-tools  
    • Sau đó, nethogs lệnh sẽ có sẵn:
      #netstat              
    • Bạn sẽ thấy một menu sử dụng khung giao diện dòng lệnh phổ biến được gọi là ncurses.
    • Nếu bạn thêm một -a tùy chọn, nó sẽ liệt kê tất cả các cổng, nghe và không nghe:
      #netstat -a         
    • Nếu bạn muốn lọc để chỉ xem các kết nối TCP hoặc UDP, hãy sử dụng các cờ -t hoặc -u cờ tương ứng:

IV. Cách giám sát việc sử dụng disk của bạn:

  1. Lệnh “df”
    • Để có cái nhìn tổng quan nhanh về dung lượng ổ đĩa còn lại trên các disk đính kèm của bạn, bạn có thể sử dụng lệnh df . Nếu chạy riêng lệnh df này sẽ xuất ra mức sử dụng disk theo byte, có thể hơi khó đọc. Để khắc phục sự cố này, bạn có thể chỉ định dung lượng đầu ra ở định dạng GB để có thể đọc được bằng lệnh:
      #df -h              
    • Nếu bạn muốn xem tổng dung lượng ổ đĩa có sẵn trên tất cả các hệ thống tệp, bạn có thể thêm tuy chọn --total . Điều này sẽ thêm một hàng ở dưới cùng với thông tin tóm tắt:
      #df -h --total
  2. Sử dụng lệnh “du”
    • Trong khi df có thể cung cấp một cái nhìn tổng quan hữu ích. Một lệnh khác, du cung cấp kết quả dung lượng theo thư mục.
    • du sẽ phân tích việc sử dụng cho thư mục hiện tại và bất kỳ thư mục con nào. Kết quả đầu ra mặc định của du việc chạy trong thư mục chính gần như trống rỗng, ngoài ra chúng ta có thể  chỉ định đầu ra kết quả hiển tị rõ đơn vị đo lường có thể đọc được bằng cách chuyển nó -h:
    • #du -h
    • Để xem kích thước tệp cũng như thư mục, hãy nhập thêm tiền tố -a như sau:
  3. Sử dụng lệnh “ncdu”
    • Ngoài ra còn có một ứng dụng sử dụng giao diện ncurses cho lệnh du, gọi là ncdu, mà bạn có thể cài đặt sử dụng:
      #yum install ncdu -y            
    • Lệnh ncdu sẽ hiển thị mức sử dụng disk trong thư mục của bạn bằng đồ thị:

V. Cách giám sát việc sử dụng RAM (bộ nhớ) của bạn:

  1. Sử dụng lệnh “free”
    • Bạn có thể kiểm tra mức sử dụng RAM hiện tại trên hệ thống của mình bằng cách sử dụng lênh free.
    • Khi được sử dụng mà không có tùy chọn, đầu ra sẽ như thế này:
      #free          
    • Để hiển thị ở định dạng dễ đọc hơn, bạn có thể chuyển -h tùy chọn hiển thị đầu ra theo Gigabyte:
      #free -h

      Dòng Mem này bao gồm bộ nhớ được sử dụng để đệm và bộ nhớ đệm, được giải phóng ngay khi cần cho các mục đích khác. Swap là bộ nhớ đã được ghi swapfile vào đĩa để bảo tồn bộ nhớ hoạt động.
  2. Sử dụng lệnh “vmstat”
    • Cuối cùng, vmstat lệnh có thể xuất ra nhiều thông tin khác nhau về hệ thống của bạn, bao gồm thông tin RAM, swap, tốc độ của disk và cpu.
    • Bạn có thể sử dụng lệnh để có một cái nhìn khác về việc sử dụng bộ nhớ:
      #vmstat
    • Bạn có thể thấy điều này bằng megabyte bằng cách chỉ định các đơn vị có -S M  :
      #vmstat -S M
    • Để nhận một số thống kê chung về việc sử dụng bộ nhớ, hãy nhập:
      #vmstat -s -S M
    • Để nhận thông tin về việc sử dụng bộ nhớ cache của các quy trình hệ thống riêng lẻ, hãy nhập:
      #vmstat -m -S M
    • Điều này sẽ cung cấp cho bạn chi tiết về loại thông tin được lưu trữ trong bộ nhớ cache.

Như vậy, Long Vân đã hoàn thành hướng dẫn các công cụ phổ biến để monitor server Linux, chúc Quý khách quản lý server hiệu quả!