1. 程式人生 > >監控io,網絡,端口,抓包

監控io,網絡,端口,抓包

監控 抓包

監控io性能
  • iostat和sar使用同一個包sysstat

[root@aminglinux-02 ~]# iostat -x
Linux 3.10.0-514.el7.x86_64 (aminglinux-02)     2017年07月23日     _x86_64_    (1 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           1.75    0.00    2.49    4.83    0.00   90.93

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
sda               0.00     0.07   11.48    1.98   355.95    17.50    55.48     0.22   16.20   18.62    2.21   6.38   8.59
sdb               0.00     0.00    0.88    0.00     5.56     0.00    12.64     0.00    3.23    3.23    0.00   2.30   0.20
dm-0              0.00     0.00    0.18    0.00     1.37     0.00    15.20     0.00   13.22   13.22    0.00   9.70   0.17
  • 主要關註%util,cpu等待磁盤讀寫的百分比,這個數值隨著硬盤的讀寫增大而增大,如果不成正比或特別高就是磁盤有問題了
  • iotop命令,yum install -y iotop安裝,查看進程的磁盤io使用情況

Total DISK READ :   0.00 B/s | Total DISK WRITE :       0.00 B/s
Actual DISK READ:   0.00 B/s | Actual DISK WRITE:       0.00 B/s
  TID  PRIO  USER     DISK READ  DISK WRITE  SWAPIN     IO>    COMMAND                                                                                         
    1 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % systemd --switched-root --system --deserialize 21
    2 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [kthreadd]
    3 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [ksoftirqd/0]
    4 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [kworker/0:0]
    6 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [kworker/u128:0]
    7 rt/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [migration/0]
    8 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [rcu_bh]
    9 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [rcu_sched]
   10 rt/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [watchdog/0]
  523 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % systemd-logind
   12 be/0 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [khelper]
   13 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [kdevtmpfs]
   14 be/0 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [netns]
   15 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [khungtaskd]
   16 be/0 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [writeback]
   17 be/0 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [kintegrityd]
   18 be/0 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [bioset]

free命令

  • free -h查看內存使用情況
[root@aminglinux-02 ~]# free -h
              total        used        free      shared  buff/cache   available
Mem:           984M        114M        614M        6.7M        256M        698M
Swap:          2.0G          0B        2.0G
  • buff/cache緩沖和緩存,cpu到磁盤需要的內存叫buff,反過來的內存叫cache。
  • total=userd+free+buff/cache。shared共享的
  • avaliable包含free和buff/cache剩余部分。

ps查看系統進程

  • 用法:ps aux 所有的進程都列出來或者ps -elf
    [root@aminglinux-02 ~]# ps aux
    USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
    root         1  0.0  0.2  41128  2512 ?        Ss   Apr19   0:10 /usr/lib/systemd/systemd --switched-root --
    root         2  0.0  0.0      0     0 ?        S    Apr19   0:00 [kthreadd]
    root         3  0.0  0.0      0     0 ?        S    Apr19   0:03 [ksoftirqd/0]
    root         5  0.0  0.0      0     0 ?        S<   Apr19   0:00 [kworker/0:0H]
  • PID進程的ID需要殺死進程時使用,也可以使用ls -l /proc/505查看進程的目錄排除可疑進程
  • VSZ虛擬內存
  • RSS物理內存
  • STAT部分狀態說明
    • D不能中斷的進程,負載高但cpu使用百分比小
    • R run狀態的進程
    • S sleep狀態的進程,等待運行
    • T 暫停的進程,這種不會耗費cpu多少資源
    • Z 僵屍進程
    • < 高優先級進程
    • N 低優先級進程
    • L內存中被鎖了內存分頁
    • s 主進程,也是父進程
    • l多線程進程,一個進程裏面有多個線程
    • +前臺進程

      查看網絡狀態

  • netstat -lnp查看監聽的端口,用法:netstat -lnp |grep nginx,
  • netstat -an 查看系統的網絡連接狀況,主要是tcp的連接狀態,三次握手
  • netstat -lntp只看tcp的,不包含socket(進程之間通信)
  • ss -an和netstat異曲同工
  • netstat -an |awk ‘/^tcp/{++sta[$NF]} END {for(key in sta)print key,"\t",sta[key]}‘查看tcp的所有狀態數量,高並發的依據,主要查看ESTABLISHED狀態的數量,正在連接的客戶端
[root@aminglinux-02 ~]# netstat -an |awk ‘/^tcp/{++sta[$NF]} END {for(key in sta)print key,"\t",sta[key]}‘
LISTEN   4
ESTABLISHED      1

Linux下抓包

  • yum install -y tcpdump安裝抓包工具
  • tcpdump -nn -i ens33,nn顯示ip地址和端口,不加顯示主機名
  • 一般都是tcp的包,DDoS--udpflood,udp的洪水攻擊,只能接入專業的設備和服務
  • tcpdump -nn port 80 查看80端口的包
  • tcpdump -nn not port 22 and host 192.168.0.100 查看這個host不包含22端口的所有包
  • tcpdump -nn -c 100 -w /tmp/1.cap 抓取100個包保存到/tmp/1.cap
  • tcpdump -r /tmp/1.cap 查看抓包文件
  • tshark -n -t a -R http.request -T fields -e "frame.time" -e "ip.src" -e "http.host" -e "http.request.method" -e "http.request.uri" 抓包查看那個ip訪問網站的那個鏈接。
  • yum install -y wireshark安裝tshark。

擴展

  • tcp三次握手四次揮手
  • " rel="nofollow">tshark幾個用法

監控io,網絡,端口,抓包