HƯỚNG DẪN 20 công cụ giám sát hệ thống Linux

Thảo luận trong 'KIẾN THỨC VPS/SERVER' bắt đầu bởi quyet1990, 14/12/16.

  1. quyet1990

    quyet1990 New Member

    Tham gia ngày:
    22/10/16
    Bài viết:
    220
    Đã được thích:
    0
    Cần theo dõi hiệu suất máy chủ Linux? Hãy thử những câu lệnh và một vài công cụ add-on sau. Hầu hết các bản phân phối Linux được trang bị công cụ giám sát. Những công cụ này cung cấp các số liệu mà có thể được sử dụng để có được thông tin về hoạt động của hệ thống.

    Bạn có thể sử dụng những công cụ này để tìm ra nguyên nhân có thể là một vấn đề hiệu suất. Các lệnh thảo luận dưới đây là một số lệnh cơ bản nhất khi nói đến phân tích hệ thống và máy chủ nhằm sửa chữa các vấn đề như:
    • Tắt nghẽn hệ thống
    • Tắt nghẽn ổ đĩa
    • Tắt nghẽn cpu và memory
    • Tắt nghẽn mạng
    # 1: top – Lệnh hiển thị hoạt động các tiến trình
    Top cung cấp một cái nhìn thời gian thực năng động của một hệ thống đang chạy nghĩa là tiến trình hoạt động thực tế. Theo mặc định, nó sẽ hiển thị hầu hết các tiến trình chạy trên máy chủ và cập nhật danh sách mỗi năm giây.

    [​IMG]

    Sử dụng phím nóng
    Lệnh top cung cấp một số phím nóng hữu ích:
    • t Hiển thị thông tin tóm tắt off và on.
    • m Hiển thị thông tin bộ nhớ off và on.
    • A Sắp xếp hiển thị việc tiêu thụ tài nguyên hệ thống khác nhau.
    • f Truy cập vào một màn hình cấu hình tương tác cho top. Hữu ích cho việc thiết lập top cho một công việc cụ thể.
    • o Cho phép bạn tương tác lựa chọn các yêu cầu với top.
    • r Các vấn đề lệnh renice.
    • k Các vấn đề lệnh kill.
    • z Bật hoặc tắt color/mono
    # 2: vmstat - Hoạt động hệ thống, phần cứng và hệ thống thông tin
    Lệnh vmstat báo cáo thông tin về quy trình, bộ nhớ, paging, block IO, traps, và hoạt động CPU.
    Mã:
    vmstat 3
    Ví dụ kết quả đầu ra:
    Mã:
    procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu------
     r  b  swpd  free  buff  cache  si  so  bi  bo  in  cs us sy id wa st
     0  0  0 2540988 522188 5130400  0  0  2  32  4  2  4  1 96  0  0
     1  0   0 2540988 522188 5130400  0  0  0  720 1199  665  1  0 99  0  0
     0  0  0 2540956 522188 5130400  0  0  0  0 1151 1569  4  1 95  0  0
     0  0  0 2540956 522188 5130500  0  0  0  6 1117  439  1  0 99  0  0
     0  0  0 2540940 522188 5130512  0  0  0  536 1189  932  1  0 98  0  0
     0  0  0 2538444 522188 5130588  0  0  0  0 1187 1417  4  1 96  0  0
     0  0  0 2490060 522188 5130640  0  0  0  18 1253 1123  5  1 94  0  
    
    Hiển thị khai thác bộ nhớ:
    Mã:
    vmstat -m
    Nhận thông tin về Active/Inactive Memory Pages
    Mã:
    vmstat -a

    # 3: w - Tìm hiểu người nào đăng nhập vào và những gì họ đang làm gì

    w lệnh hiển thị thông tin về người sử dụng hiện nay trên máy tính, và các quá trình của họ.
    Mã:
    w username
    w vivek
    
    Ví dụ kết quả đầu ra:
    Mã:
    17:58:47 up 5 days, 20:28,  2 users,  load average: 0.36, 0.26, 0.24
    USER  TTY  FROM   LOGIN@  IDLE  JCPU  PCPU WHAT
    root  pts/0  10.1.3.145  14:55  5.00s  0.04s  0.02s vim /etc/resolv.conf
    root  pts/1  10.1.3.145  17:43  0.00s  0.03s  0.00s w
    
    # 4: uptime
    Lệnh uptime có thể được sử dụng để xem máy chủ đã được chạy bao lâu. Thời gian hiện tại, hệ thống đã được chạy bao lâu, có bao nhiêu người dùng đang đăng nhập, và trung bình hệ thống load cho 1, 5 và 15 phút vừa qua.
    Mã:
    uptime
    Ví dụ kết quả đầu ra::
    Mã:
     18:02:41 up 41 days, 23:42,  1 user,  load average: 0.00, 0.00, 0.00 
    1 có thể được coi là giá trị load tối ưu. Giá trị load có thể thay đổi từ hệ thống này với hệ thống khác. Đối với một hệ thống CPU đơn 1-3 và hệ thống SMP 6-10 là các giá trị load có thể chấp nhận được.

    # 5: ps
    Lệnh ps sẽ báo cáo một danh sách các quá trình hiện tại. Để chọn tất cả các quá trình sử dụng -A hoặc tùy chọn -e:
    Mã:
    ps -A
    Ví dụ kết quả đầu ra:
    Mã:
    [root@dev ~]# ps -A
      PID TTY  TIME CMD
      1 ?  00:00:26 init
      2 ?  00:00:00 kthreadd/241085
      3 ?  00:00:00 khelper/241085
      139 ?  00:00:00 udevd
      532 ?  00:03:15 rsyslogd
      569 ?  00:00:00 xinetd
      845 ?  00:00:00 saslauthd
      846 ?  00:00:00 saslauthd
      906 ?  00:00:09 crond
     1589 ?  00:01:00 miniserv.pl
     8527 ?  00:00:12 php-fpm
     8528 ?  00:00:00 php-fpm
     8529 ?  00:00:00 php-fpm
    14492 ?  00:00:00 sshd
    14496 pts/0  00:00:00 bash
    15390 ?  00:00:00 sshd
    15391 ?  00:00:00 sshd
    15392 pts/0  00:00:00 ps
    19387 ?  00:00:15 sshd
    29136 ?  00:00:00 nginx
    29137 ?  00:00:00 nginx
    
    Lệnh ps giống như lệnh top nhưng cung cấp nhiều thông tin hơn.
    Hiện kết quả đầu ra theo dạng dài:
    Mã:
    ps - Al
    Để bật chế độ đầy đủ bổ sung(nó sẽ hiển thị các tham số dòng lệnh thông qua xử lý):
    Mã:
     ps -AlF 
    Để xem các thread (LWP và NLWP)
    Mã:
     ps -AlFH 
    Để xem các thread sau quá trình
    Mã:
     ps -AlLm 
    Hiển thị tất cả các quá trình trên Server
    Mã:
    ps ax
    ps axu 
    Hiển thị A Tree Process
    Mã:
    ps -ejH
    ps axjf
    pstree 
    Hiển thị thông tin an ninh
    Mã:
    ps -eo euser,ruser,suser,fuser,f,comm,label
    ps axZ
    ps -eM 
    Xem tất cả quá trinhg chạy bởi user vivek
    Mã:
     ps -U vivek -u vivek u 
    Thiết lập đầu ra trong một dạng User-Defined
    Mã:
     ps -eo pid,tid,class,rtprio,ni,pri,psr,pcpu,stat,wchan:14,comm
    ps axo stat,euid,ruid,tty,tpgid,sess,pgrp,ppid,pid,pcpu,comm
    ps -eopid,tt,user,fname,tmout,f,wchan 
    Hiển thị chỉ Các ID Process của Lighttpd
    Mã:
     ps -C lighttpd -o pid= 
    Hiển thị tên của PID 55977
    Mã:
     ps -p 55977 -o comm= 
    Tìm ra Top 10 tiến trình tiêu thụ bộ nhớ
    Mã:
     ps -auxf | sort -nr -k 4 | head -10 
    Tìm ra Top 10 tiến trình tiêu thụ CPU
    Mã:
    ps -auxf | sort -nr -k 3 | head -10 
    # 6: free
    Lệnh free hiển thị tổng dung lượng bộ nhớ vật lý trống và được sử dụng trong hệ thống, cũng như các bộ đệm được sử dụng bởi các hạt nhân.
    Mã:
    free
    # 7: iostat
    Lệnh iostat báo cáo thống kê tình trạng CPU và tình trạng đầu vào/đầu ra cho các thiết bị, phân vùng và hệ thống tập tin mạng (NFS).
    Mã:
    iostat
    Ví dụ kết quả đầu ra:
    Mã:
    Linux 2.6.18-128.1.14.el5 (www03.nixcraft.in) 06/26/2009
    avg-cpu:  %user  %nice %system %iowait  %steal  %idle
      3.50  0.09  0.51  0.03  0.00  95.86
    Device:  tps  Blk_read/s  Blk_wrtn/s  Blk_read  Blk_wrtn
    sda  22.04  31.88  512.03  16193351  260102868
    sda1  0.00  0.00   0.00  2166  180
    sda2  22.04  31.87  512.03  16189010  260102688
    sda3  0.00  0.00  0.00  1615  0
    
    # 8: sar - Thu thập và báo cáo hoạt động hệ thống
    Lệnh sar được sử dụng để thu thập, báo cáo và lưu thông tin hoạt động của hệ thống. Để xem mạng truy cập, hãy nhập:
    Mã:
     sar -n DEV | more 
    Để hiển thị các network counter từ ngày 24:
    Mã:
     sar -n DEV -f /var/log/sa/sa24 | more 
    Bạn cũng có thể hiển thị sử dụng thời gian thực sử dụng sar:
    Mã:
     sar 4 5 
    Ví dụ kết quả đầu ra:
    Mã:
    Linux 2.6.18-128.1.14.el5 (www03.nixcraft.in)   06/26/2009
    06:45:12 PM  CPU  %user  %nice  %system  %iowait  %steal  %idle
    06:45:16 PM  all  2.00  0.00  0.22  0.00  0.00  97.78
    06:45:20 PM  all  2.07  0.00   0.38  0.03  0.00  97.52
    06:45:24 PM  all  0.94  0.00  0.28  0.00  0.00  98.78
    06:45:28 PM  all  1.56  0.00  0.22  0.00  0.00  98.22
    06:45:32 PM  all  3.53  0.00  0.25   0.03  0.00  96.19
    Average:  all  2.02  0.00  0.27  0.01  0.00  97.70
    
    # 9: mpstat - Multiprocessor Usage
    Lệnh mpstat hiển thị hoạt động cho mỗi bộ vi xử lý có sẵn, bộ xử lý 0 là đầu tiên. mpstat -P ALL để hiển thị sử dụng CPU trung bình mỗi bộ vi xử lý:
    Mã:
    mpstat –P ALL
    Ví dụ kết quả đầu ra:
    Mã:
    Linux 2.6.18-128.1.14.el5 (www03.nixcraft.in)    06/26/2009
    06:48:11 PM  CPU  %user  %nice  %sys %iowait  %irq  %soft  %steal  %idle  intr/s
    06:48:11 PM  all  3.50  0.09  0.34  0.03  0.01  0.17  0.00  95.86  1218.04
    06:48:11 PM  0  3.44  0.08  0.31  0.02  0.00  0.12  0.00  96.04  1000.31
    06:48:11 PM  1  3.10  0.08  0.32  0.09  0.02  0.11  0.00  96.28  34.93
    06:48:11 PM  2  4.16  0.11  0.36  0.02  0.00  0.11  0.00  95.25  0.00
    06:48:11 PM  3  3.77  0.11  0.38  0.03  0.01  0.24  0.00  95.46  44.80
    06:48:11 PM  4  2.96  0.07  0.29  0.04  0.02  0.10  0.00  96.52  25.91
    06:48:11 PM   5  3.26  0.08  0.28  0.03  0.01  0.10  0.00  96.23  14.98
    06:48:11 PM  6  4.00  0.10  0.34  0.01  0.00  0.13  0.00  95.42  3.75
    06:48:11 PM  7  3.30  0.11  0.39  0.03  0.01  0.46  0.00  95.69  76.89
    
    # 10: pmap - Quy trình sử dụng bộ nhớ
    Lệnh pmap báo cáo sử dụng memory của một quá trình. Sử dụng lệnh này để tìm hiểu nguyên nhân gây tắc nghẽn bộ nhớ.
    Mã:
     pmap -d PID 
    Để hiển thị thông tin bộ nhớ quá trình cho pid # 47394, hãy nhập:
    Mã:
     pmap -d 47394 
    Ví dụ kết quả đầu ra:
    Mã:
    47394:   /usr/bin/php-cgi
    Address  Kbytes Mode  Offset  Device  Mapping
    0000000000400000  2584 r-x-- 0000000000000000 008:00002 php-cgi
    0000000000886000  140 rw--- 0000000000286000 008:00002 php-cgi
    00000000008a9000  52 rw--- 00000000008a9000 000:00000  [ anon ]
    0000000000aa8000  76 rw--- 00000000002a8000 008:00002 php-cgi
    000000000f678000  1980 rw--- 000000000f678000 000:00000  [ anon ]
    000000314a600000  112 r-x-- 0000000000000000 008:00002 ld-2.5.so
    000000314a81b000  4 r---- 000000000001b000 008:00002 ld-2.5.so
    000000314a81c000  4 rw--- 000000000001c000 008:00002 ld-2.5.so
    000000314aa00000  1328 r-x-- 0000000000000000 008:00002 libc-2.5.so
    000000314ab4c000  2048 ----- 000000000014c000 008:00002 libc-2.5.so
    ....
    ......
    ..
    00002af8d48fd000  4 rw--- 0000000000006000 008:00002 xsl.so
    00002af8d490c000  40 r-x-- 0000000000000000 008:00002 libnss_files-2.5.so
    ffffffffff600000  8192 ----- 0000000000000000 000:00000  [ anon ]
    mapped: 933712K  writeable/private: 4304K  shared: 768000K
    
    Dòng cuối cùng là rất quan trọng:
    mapped: 933712K à tổng số lượng bộ nhớ ánh xạ vào các tập tin
    writeable/private: 4304K à số lượng không gian địa chỉ riêng
    shared: 768000K à số lượng không gian địa chỉ mà tiến trình này chia sẻ với tiến trình khác.

    # 11 và # 12: netstat và ss - Thống kê mạng
    Lệnh netstat hiển thị kết nối mạng, bảng định tuyến, thống kê giao diện, giả mạo kết nối, và các thành viên multicast. Lệnh ss được sử dụng để dump thống kê socket. Nó cho phép hiển thị thông tin tương tự như netstat.

    # 13: Iptraf - Thống kê mạng thời gian thực
    Lệnh Iptraf có màn hình giao diện tương tác với màu sắc . Đó là một màn hình IP LAN tạo ra các thống kê mạng khác nhau bao gồm cả thông tin TCP, UDP, ICMP và OSPF, thông tin tload Ethernet, số liệu thống kê nút, lỗi checksum IP, và v.v…. Nó có thể cung cấp các thông tin sau đây:
    • thống kê lưu lượng mạng bằng kết nối TCP.
    • thống kê lưu lượng IP bằng interface network.
    • thống kê lưu lượng mạng bằng giao thức.
    • thống kê lưu lượng mạng bằng cổng TCP UDP và kích thước gói.
    • thống kê lưu lượng mạng bằng địa chỉ lớp 2.
    Ví dụ minh họa:

    [​IMG]

    [​IMG]

    # 14: tcpdump - Phân tích chi tiết lưu lượng mạng
    tcpdump là lệnh đơn giản để phân tích lưu lượng trên một mạng. Tuy nhiên, bạn cần phải hiểu biết tốt về giao thức TCP/IP để sử dụng công cụ này. Ví dụ để hiển thị thông tin giao thông về DNS, hãy nhập:
    Mã:
     tcpdump -i eth1 'udp port 53' 
    Để hiển thị tất cả các gói tin HTTP IPv4 đến và đi từ cổng 80, nghĩa là chỉ in các gói tin có chứa dữ liệu, ví dụ, SYN và FIN gói và các gói tin ACK-only, hãy nhập:
    Mã:
     tcpdump 'tcp port 80 and (((ip[2:2] - ((ip[0]&0xf)<<2)) - ((tcp[12]&0xf0)>>2)) != 0)' 
    Để hiển thị tất cả các phiên FTP đến 202.54.1.5, hãy nhập:
    Mã:
     tcpdump -i eth1 'dst 202.54.1.5 and (port 21 or 20' 
    Để hiển thị tất cả các phiên HTTP đến 192.168.1.5, hãy nhập:
    Mã:
     tcpdump -ni eth0 'dst 192.168.1.5 and tcp and port http' 
    Sử dụng wireshark để xem thông tin chi tiết về các tập tin, hãy nhập:
    Mã:
     tcpdump -n -i eth1 -s 0 -w output.txt src or dst port 80 
    # 15: strace – System Calls
    Theo dõi các cuộc gọi hệ thống và tín hiệu. Điều này rất hữu ích cho máy chủ web gỡ lỗi và các vấn đề máy chủ khác.

    # 16: hệ thống tập tin /proc

    / Hệ thống tập tin proc cung cấp thông tin chi tiết về các thiết bị phần cứng khác nhau và thông tin khác Linux kernel. Ví dụ thường gặp /proc:
    Mã:
    cat /proc/cpuinfo
    cat /proc/meminfo
    cat /proc/zoneinfo
    cat /proc/mounts 
    17 #: Nagios
    Nagios là một ứng dụng phần mền mã nguồn mở giúp giám sát mạng phổ biến. Bạn có thể dễ dàng theo dõi tất cả các máy chủ của bạn, thiết bị và các dịch vụ mạng. Nó có thể gửi cảnh báo khi có chuyện xảy ra.

    FAN là " Fully Automated Nagios ". mục tiêu FAN là để cung cấp một cài đặt Nagios bao gồm hầu hết các công cụ được cung cấp bởi cộng đồng Nagios. FAN cung cấp một CDRom image trong định dạng ISO chuẩn, làm cho nó dễ dàng để cài đặt một máy chủ Nagios. Thêm vào đó, một loạt các công cụ được bao gồm để phân phối, để cải thiện trải nghiệm người dùng xung quanh Nagios.

    18 #: Cacti - Công cụ giám sát dựa trên Web
    Cacti là một giải pháp mạng hoàn chỉnh đồ họa được thiết kế để khai thác sức mạnh của dữ liệu lưu trữ RRDTool và chức năng đồ họa. Cacti cung cấp một poller nhanh, đồ thị khuôn mẫu tiên tiến, nhiều phương pháp thu thập dữ liệu, quản lý và sử dụng các tính năng ra khỏi hộp.

    Tất cả điều này được bọc trong một giao diện trực quan, dễ sử dụng có ý nghĩa cho việc cài đặt mạng LAN phức tạp với hàng trăm thiết bị. Nó có thể cung cấp dữ liệu về mạng, CPU, bộ nhớ, người dùng đăng nhập, Apache, máy chủ DNS và nhiều hơn nữa.

    # 19: KDE System Guard - Hệ thống báo cáo và đồ thị thời gian thực
    KSysguard là một ứng dụng giám sát hệ thống cho KDE Desktop. Công cụ này có thể được chạy trên phiên ssh. Nó cung cấp nhiều tính năng như một cấu trúc client / server mà cho phép giám sát các máy chủ địa phương và từ xa.

    Giao diện đồ họa sử dụng cái gọi là cảm biến để lấy các thông tin nó sẽ hiển thị. Một cảm biến có thể trở về giá trị đơn giản hoặc các thông tin phức tạp hơn như bảng. Đối với mỗi loại thông tin, một hoặc nhiều màn hình được cung cấp. Hiển thị được tổ chức trong các bảng tính có thể được lưu và load độc lập với nhau. Vì vậy, KSysguard không chỉ là một công việc quản lý đơn giản mà còn là một công cụ rất mạnh để kiểm soát máy chủ lớn.

    # 20: Gnome System Monitor - Hệ thống báo cáo và đồ thị thời gian thực
    Ứng dụng System Monitor cho phép bạn hiển thị thông tin cơ bản hệ thống và hệ thống giám sát quá trình, sử dụng tài nguyên hệ thống, và các hệ thống tập tin. Bạn cũng có thể sử dụng System Monitor để sửa đổi hành vi của hệ thống của bạn. Mặc dù không mạnh như hệ thống KDE Guard, nó cung cấp các thông tin cơ bản mà có thể hữu ích cho người dùng mới:
    • Hiển thị thông tin cơ bản khác nhau về phần cứng và phần mềm của máy tính.
    • Phiên bản Linux Kernel
    • Phiên bản GNOME
    • Phần cứng
    • Bộ nhớ cài đặt
    • Bộ vi xử lý và tốc độ
    • Trạng thái hệ thống
    • Không gian đĩa hiện có sẵn
    • Processes
    • Bộ nhớ và swap space
    • Sử dụng mạng
    • Các hệ thống tập tin
    • Danh sách tất cả hệ thống gắn kết tập tin cùng với các thông tin cơ bản về từng hệ thống.
     
Tags:

Chia sẻ trang này

Đang tải...