CPU 監(jiān)控命令: w、 top、 htop、 glances
%Cpu(s): 0.3 us, 0.3 sy, 0.0 ni, 99.3 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
us 用戶態(tài): 跟用戶的操作有關(guān) 35%
sy 系統(tǒng)態(tài): 跟內(nèi)核的處理有關(guān) 60%
id CPU 空閑:
內(nèi)存監(jiān)控命令: free
[root@m01 ~]# free -h
total used free shared buff/cache available
Mem: 977M 105M 724M 6.6M 148M 729M
Swap: 1.0G 0B 1.0G
磁盤監(jiān)控命令: df、 iotop
Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn
sda 0.80 25.32 33.36 221034 291193
設(shè)備名 每秒傳輸次數(shù) 每秒讀大小 每秒寫大小 讀的總大小 寫的總大小
網(wǎng)絡(luò)監(jiān)控命令: ifconfig、 route、 glances、 iftop、 nethogs、 netstat
單位換算
Mbps 100Mbps/8
MB 12MB
iftop 中間的<= =>這兩個(gè)左右箭頭,表示的是流量的方向。
TX:發(fā)送流量、 RX:接收流量、 TOTAL:總流量
#查看 TCP11 中狀態(tài)
netstat -an|grep ESTABLISHED
netstat -rn # 查看路由信息
netstat -lntup
2.隨著時(shí)間的推移,用戶不斷的增多,服務(wù)隨時(shí)可能扛不住會(huì)被 oom(out of memory),當(dāng)系統(tǒng)內(nèi)存不足的時(shí)候,會(huì)
觸發(fā) oom
1.當(dāng)系統(tǒng)內(nèi)存不足的時(shí)候就會(huì)大量使用 swap
2.當(dāng)系統(tǒng)大量使用 swap 的時(shí)候,系統(tǒng)會(huì)特別卡
注意: 有時(shí)可能內(nèi)存還有剩余 300Mb-500Mb,但會(huì)發(fā)現(xiàn) swap 依然被使用
[root@ZabbixServer ~]# dd if=/dev/zero of=/dev/null bs=800M
[root@ZabbixServer ~]# tail -f /var/log/messages
Out of memory: Kill process 2227 (dd) score 778 or sacrifice child
Killed process 2227 (dd) total-vm:906724kB, anon-rss:798820kB, file-rss:0kB
3.那單機(jī)時(shí)代,如何使用 shell 腳本來實(shí)現(xiàn)服務(wù)器的監(jiān)控
需求: 每隔 1 分鐘監(jiān)控一次內(nèi)存,當(dāng)你的可用內(nèi)存低于 100m,發(fā)郵件報(bào)警,要求顯示剩余內(nèi)存
1.怎么獲取內(nèi)存可用的值 free -m|awk '/^Mem/{print $NF}'
2.獲取到內(nèi)存可用的值如何和設(shè)定的閾值進(jìn)行比較
3.比較如果大于 100m 則不處理,如果小于 100 則報(bào)警
4.如何每隔 1 分鐘執(zhí)行一次
[root@ZabbixServer ~]# cat free.sh
#!/usr/bin/bash
HostName=$(hostname)_$(hostname -i)
Date=$(date +%F)
while true;do
Free=$(free -m|awk '/^Mem/{print $NF}')
if [ $Free -le 100 ];then
echo "$Date: $HostName Mem Is < ${Free}MB"
fi
sleep 5
done