Day30 監控系統狀態(二)

監控io性能

  • 介紹: 以前介紹的許多關於CPU負載的命令,其實io(磁盤)對於咱們也很重要。
    下面要介紹的命令就是關於監控io性能的命令
  • 選項: iostat -x 1

表示逐秒顯示磁盤情況
%util爲磁盤使用佔用CPU的時間比。一個進程寫入磁盤時,cpu會等待寫入,此時所佔地用的時間就是%util 當%utl數字過大時,說明你的硬盤可能須要更換了html

  • 示例:

  • 命令iotop 磁盤使用

命令free

  • 介紹
    用於查看當前系統的總內存大小以及使用狀況。Centos7系統的比6的顯示要簡介,可是大致上內容一致
  • 選項
    free
    free -m或-g:表示指定數據的單位MB或GB free -h:會給數據加上單位符號,使其更加直觀
  • 示例
[root@centos001 ~]# free
              total        used        free      shared  buff/cache   available  //第一行
Mem:        1008152      113972      558772        6888      335408      709100
Swap:       2097148           0     2097148
[root@centos001 ~]# free -m
              total        used        free      shared  buff/cache   available
Mem:            984         111         545           6         327         692
Swap:          2047           0        2047
[root@centos001 ~]# free -h
              total        used        free      shared  buff/cache   available
Mem:           984M        111M        545M        6.7M        327M        692M
Swap:          2.0G          0B        2.0G
  • 解釋
    • 第一行:
      total:內存總大小
      used:真正使用的實際大小
      free:剩餘物理內存大小(沒有分配,純剩餘)
      shared:共享內存大小(不重要)
      buff/chach:分配給二者的總共內存有多大 available:系統可以使用的內存有多大,它包含了free。 linux系統爲了讓應用跑的更快,會預先分配一些內存給某些應用使用,雖然這部份內存並無真正的使用,但也已經分配出去了。然而,當另外的一個服務要使用更多內存時,是能夠把這部分拿出來使用的。因此沒有佔用的buffer/cache加上free就是availble
    • buffer/cache區別
      舉慄:數據通過CPU計算,即將寫入磁盤,這是用的內存叫buffer;
      CPU要計算是,須要把數據從磁盤中讀出來,臨時先放到內存中,這部分就是cache。
    • 公式:total=used+free+buff/cache
      通常來講內存總大小等於。使用內存與剩餘內存只和,可是這裏不同。

ps命令

  • 介紹
    系統管理員必定要知道你所管理的系統都有那些進程在運行,ps命令可以檢查某一個進程是否在運行 ​
  • 選項
    ps aux :列出全部進程,至關於windos裏的任務管理器
    ps -elf:基本等於aux
  • 主要用法 如:ps aux | grep nginx 加管道符後面跟進程的名字,意爲檢查某個進程是否在運行或它的數量
    在使用grep命令查詢命令數量時,其自己也算一個命令,因此要減一

-進程參數linux

  • 參數介紹
    pid:表示進程的id,在用kill命令殺死進程的時候能用到
    STAT:表示進程的狀態。(有如下幾種)
    • D 不能中斷的進程
      R run狀態的進程
      S sleep狀態的進程
      T 暫停的進程
      Z 殭屍進程
      < 高優先級進程,CPU會優先處理
      N 低優先級進程
      L 內存中被鎖了內存分頁。瞭解就ok
      s(小寫) 主進程
      l 多線程進程
      +前臺進程,好比在當前終端執行的ps aux 就是前臺進程
  • 線程和進程的區別
    1 進程裏包含了線程,線程是進程的子單元
    2 同一個進程下的線程所有共享相同的內存,而進程之間內存相互隔離。

用 netstat 命令查看網絡狀態

  • 介紹:該命令主要用於於打印網絡鏈接情況、系統所開放的端口、路由表等信息。
  • 主要用法:
    netstat -lnp 查看監聽端口
    netstat -an 查看系統的網絡鏈接情況
    netstat -lntp 只看出tcp的,不包含socket
    ss -an 和nestat殊途同歸,相似但不會顯示進程的名字
  • 示例
  • 擴展用法:能夠查看全部狀態的數字
    ESTABLISHED不大於1000時爲正常,大於1000說明系統很忙 有被攻擊的風險
netstat -an | awk '/^tcp/ {++sta[$NF]} END {for(key in sta) print key,"\t",sta[key]}'

抓包工具tcpdump

  • 介紹:
    有時想看某個網卡上有哪些數據包,尤爲是當發現服務器上有流量攻擊時,使用抓包工具抓取數據後就知道是哪些ip在攻擊了
    默認沒有安裝命令,要用yum安裝
  • 用法
    tcpdump -nn 表示讓示例中的34列顯示成(ip+端口號);不加-nn選項則顯示(主機名+服務名稱)
    tcpdump -nn -i ens33
    tcpdump -nn port 80 指定抓包端口
    tcpdump -nn –I eht0 not port 22 排除法
    tcpdump -nn not port 22 and host 192.168.0.100 增長條件 指定ip
    tcpdump -nn -c 100 -w 指定抓包的數量,並自動退出
    tcpdump -nn -c 100 -w 1.cap指定抓包的長度和個數並保存
  • 示例
  • 擴展 :
    查詢指定網卡80端口的一個web訪問狀況 。至關於一個訪客日誌,可以知道訪客的來源,訪問了什麼連接
    安裝命令 yum install -y wireshark
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

擴展

tcp三次握手四次揮手
http://www.doc88.com/p-9913773324388.html
tshark幾個用法:
http://www.aminglinux.com/bbs/thread-995-1-1.htmlios

相關文章
相關標籤/搜索