1. 程式人生 > >記錄一次zabbix監控常見系統層面問題排查方法

記錄一次zabbix監控常見系統層面問題排查方法

uptime gre util pri 問題 ble 等級 說明 是否

CPU觸發器:
1)Processor load is too high on {HOST.NAME} {HOST.NAME}上處理器負載太高
觸發器表達式:{Zabbix server:system.cpu.load[percpu,avg1].avg(5m)}>5
告警等級:警告
2)Disk I/O is overloaded on {HOST.NAME} 磁盤I/O在{HOST.NAME}上重載
觸發器表達式:{Zabbix server:system.cpu.util[,iowait].avg(1h)}>30
告警等級:警告
3){HOST.NAME} [CPU Idle]-[< 10%] CPU空閑小於百分之10
觸發器表達式:{Zabbix server:system.cpu.util[,idle].count(#5,10,"lt")}=5
告警等級:一般嚴重
General觸發器:
1)Hostname was changed on {HOST.NAME} 主機名被更改
觸發器表達式:{Zabbix server:system.hostname.diff(0)}>0
告警等級:信息
2)Host information was changed on {HOST.NAME} 主機信息給更改
觸發器表達式:{Zabbix server:system.uname.diff(0)}>0
告警等級:信息
3)HOST.NAME} has just been restarted 重新啟動主機
觸發器表達式:{Zabbix server:system.uptime.change(0)}<0
告警等級:信息
Keepalived觸發器
1){HOST.NAME}keepalived進程宕機,請運維人員確認
觸發器表達式:({TRIGGER.VALUE}=0 and {Zabbix server:proc.num[keepalived,,,keepalived].change(0)}<0 and {Zabbix server:proc.num[keepalived,,,keepalived].last(0)}=0) or ({TRIGGER.VALUE}=1 and {Zabbix server:proc.num[keepalived,,,keepalived].last(0)}<>3)
告警等級:嚴重
Memory觸發器
1)Lack of free swap space on {HOST.NAME} 主機上缺少自由交換空間
觸發器表達式:{Zabbix server:system.swap.size[,pfree].last(0)}<10
告警等級:警告
2)Lack of available memory on server {HOST.NAME} 主機服務器上缺少可用的內存
觸發器表達式:{Zabbix server:vm.memory.size[available].last(0)}<20M
告警等級:一般嚴重
Security觸發器
1)/etc/passwd has been changed on {HOST.NAME} 主機密碼文件被更改
觸發器表達式:{Zabbix server:vfs.file.cksum[/etc/passwd].diff(0)}>0
告警等級:警告
Processes觸發器
1)Too many processes running on {HOST.NAME} 在主機上運行的進程太多
觸發器表達式:{Zabbix server:proc.num[,,run].avg(5m)}>30
告警等級:警告
2)Too many processes on {HOST.NAME} 在主機上進程太多
觸發器表達式:{Zabbix server:proc.num[].avg(5m)}>1000
告警等級:警告
Performace觸發器
1)Processor load is too high on {HOST.NAME} 在主機上處理器負載過高(1分鐘)
觸發器表達式:{Zabbix server:system.cpu.load[percpu,avg1].avg(5m)}>5
告警等級:警告
OS觸發器
1)Configured max number of processes is too low on {HOST.NAME} 主機上配置的最大進程數太低
觸發器表達式:{Zabbix server:kernel.maxproc.last(0)}<256
告警等級:信息
2)Configured max number of opened files is too low on {HOST.NAME} 在主機上配置的最大打開文件數太低
觸發器表達式:{Zabbix server:kernel.maxfiles.last(0)}<1024
告警等級:信息

出現報警首先看
內存瓶頸 free 查看內存使用情況
vmstat 10(間隔時間)100(監控次數) 查看swap in/out 詳細定位是否存在性能瓶頸
sar -r 3 查看內存使用情況不包括swap情況
CPU瓶頸 top -H 按照CPU消耗高低排序
ps -Lp 進程號CU 查看某個進程的CPU消耗排序
cat /proc/cpuinfo|grep ‘processor‘|wc -l 查看cpu核數
top 查看cpu總體消耗,包括分項消耗如user,system,idle,nice等消耗
sar -u 3(間隔時間) 查看cpu總體消耗占比
top -b -n 1 | awk ‘{if (NR<=7)print;else if($8==”D”){print;count++}}END{print “Total status D:”count}’ 計算在cpu load裏面的uninterruptedsleep的任務數量

網絡瓶頸 cat /var/log/messages 查看內核日誌,查看是否丟包
watch more /proc/net/dev 用於定位丟包,錯包情況,以便看網絡瓶頸
netstat -na|grep ESTABLISHED|wc -l 查看tcp連接成功狀態的數量
netstat -na|awk’{print $6}’|sort |uniq -c |sort -nr 看tcp各個狀態數量
netstat -i 查看網絡錯誤
ss state ESTABLISHED| wc -l 更高效地統計tcp連接狀態為ESTABLISHED的數量
cat /proc/net/snmp 查看和分析240秒內網絡包量,流量,錯包,丟包 用於計算重傳率tcpetr=RetransSegs/OutSegs
ping ip 測試網絡性能
traceroute ip 查看路由經過的地址 常用於定位網絡在各個路由區段的耗時
dig 域名 查看域名解析地址
dmesg 查看系統內核日誌

磁盤瓶頸 iostat -x -k -d 1 詳細列出磁盤的讀寫情況 當看到I/O等待時間所占CPU時間的比重很高的時候,首先要檢查的就是機器是否正在大量使用交換空間,同時關註iowait占比cpu的消耗是否很大,如果大說明磁盤存在大的瓶頸,同時關註await,表示磁盤的響應時間以便小於5ms

                  iotop                                       查看哪個進程在大量讀取IO 一般先通過iostat查看是否存在io瓶頸,再定位哪個進程在大量讀取IO    
                  df -hl                                       查看磁盤剩余空間
                  du -sh                                       查看磁盤使用了多少空間

應用瓶頸 ps -ef | grep java 查看某個進程的id號
ps -ef | grep httpd| wc -l 查看特定進程的數量
cat .log | grep Exception | wc -l 統計日誌文件中包含特定異常數量
jstack -l pid 用於查看線程是否存在死鎖
awk’{print $8}’ 2017-05-22-access_log|egrep ’301|302′| wc -l 統計log中301、302狀態碼的行數,$8表示第八列是狀態碼,可以根據實際情況更改 常用於應用故障定位
grep ‘wholesaleProductDetailNew’ cookie_log | awk ‘{if($10==”200″)}’print}’ | awk ‘print $12′ | more 打印包含特定數據的12列數據
grep “2017:05:22″ cookielog | awk ‘($12>0.3){print $12 “–” $8}’ | sort > 目錄地址 對apache或者nginx訪問log進行響應時間排序,$12表示cookie log中的12列表示響應時間
grep -v ‘HTTP/1.1″ 200′ 取出非200響應碼的URL
pgm -A -f 應用集群名稱 “grep “’301 ‘ log文件地址 | wc -l 查看整個集群的log中301狀態碼的數量
ps -efL | grep [PID] | wc -l 查看某個進程創建的線程數
find / -type f -name “*.log” | xargs grep “ERROR” 統計所有的log文件中,包含Error字符的行 這個在排查問題過程中比較有用
-XX:HeapDumpPath=/home/logs -Xloggc:/home/log/gc.log -XX:+PrintGCDetails -XX:+PrintGCDateStamps 在Java啟動參數中加入,打印gc日誌
-server -Xms4000m -Xmx4000m -Xmn1500m -Xss256k -XX:PermSize=340m -XX:MaxPermSize=340m -XX:+UseConcMarkSweepGC 調整JVM堆大小 xss是棧大小

記錄一次zabbix監控常見系統層面問題排查方法