監控io效能、free、ps、檢視網路狀態和linux抓包工具
一、監控io效能
1、iostat -x 磁碟使用
關注最後一列的數值,數值大說明磁碟有異常
2、iotop 磁碟使用
安裝:yum install -y iotop
二、free命令
檢視記憶體使用多少,剩餘多少請看第二行的資料。另外我們還可以加-m或-h 或者-g選項分別以M或G為單位列印記憶體使用狀況:
常用: free -h
三、ps命令
ps檢視系統程序
用法:ps aux 或 ps -elf
PID :程序的id,想終止某一個程序,則用 ‘kill 程序的pid 有時並不能殺掉,則需要加一個-9選項了 kill -9 程序pid
STAT :表示程序的狀態
D:不能中斷的程序(通常為IO)
R: 正在執行中的程序
S: 已經中斷的程序,通常情況下,系統中大部分程序都是這個狀態
T: 已經暫停的程序,如果我們正在執行一個命令,比如說 sleep 10 如果我們按一下ctrl -z 讓他暫停,那麼我們用ps檢視就會顯示T這個狀態
Z: 殭屍程序,殺不掉,打不死的垃圾程序,佔系統一小點資源,不過沒有關係。如果太多,就有問題了。一般不會出現。
<: 高優先順序程序
N: 低優先順序程序
L: 在記憶體中被鎖了記憶體分頁
s: 主程序
l: 多執行緒程序
+: 代表在前臺執行的程序
ps命令經常會連同管道符一起使用,用來檢視某個程序或者它的數量
四、netstat 檢視網路狀況
netstat命令用來列印網路連線狀況、系統所開放埠、路由表等資訊
常用的關於netstat的命令就是這個 netstat -lnp (列印當前系統啟動哪些埠)以及 netstat -an (列印網路連線狀況)
1、netstat -lnp 列印當前系統啟動哪些埠
2、netstat -an 列印網路連線狀況
如果你所管理的伺服器是一臺提供web服務(80埠)的伺服器,那麼你就可以使用 netstat -an |grep 80 檢視當前連線web服務的有哪些IP了。
分享一個小技巧:可以檢視所有狀態的數字
netstat -an | awk ‘/^tcp/ {++sta[$NF]} END {for(key in sta) print key,”\t”,sta[key]}’
關注:ESTABLISHED, 網站併發連線數,表示同一時刻有多少個客戶端連線到服務端進行通訊(1000以內可以接受)
五、linux抓包工具tcpdump
有時候想看一下某個網絡卡上都有哪些資料包,尤其是當你初步判定你的伺服器上有流量攻擊。這時,使用抓包工具來抓一下資料包,就可以知道有哪些IP在攻擊你了
沒有tcpdump 這個命令,需要用 yum install -y tcpdump 命令去安裝一下
tcpdump -nn -i eno16777736
需要關注:
第三列和第四列顯示的資訊為哪一個IP+port在連線哪一個IP+port。-i 選項後面跟裝置名稱,如果你想抓eth1網絡卡的包,後面則要跟eth1.至於-nn選項的作用是讓第三列和第四列顯示成IP+埠號的形式,如果不加-nn則顯示的是主機名+服務名稱。
另外介紹一個實用的工具tshark和命令:
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”
指定網絡卡,80埠的web訪問情況
類似web的訪問日誌
安裝命令:yum install -y wireshark