作運維,不怕出問題,怕的是出了問題,抓不到現場,兩眼摸黑。因此,依靠強大的監控系統,收集儘量多的指標,意義重大。但哪些指標纔是有意義的呢,本着從實踐中來的思想,各位工程師在長期摸爬滾打中總結出來的經驗最有價值。java
在各位運維工程師長期的工做實踐中,咱們總結了在系統運維過程當中,常常會參考的一些指標,主要包括如下幾個類別:node
每一個類別,具體的詳細指標以下,這些指標,都是open-falcon的agent組件直接支持的。falcon-agent每隔必定時間間隔(目前是60秒)會採集一次相關的指標,並彙報給server端。linux
計算方法:經過採集/proc/stat來獲得,你們能夠參考sar命令的統計輸出來理解。ios
計算方法:先讀取/proc/mounts拿到全部掛載點,而後經過syscall.Statfs_t拿到blocks和inode的使用狀況。每一個metric都會附加一組tag描述,相似mount=$mount,fstype=$fstype,其中$mount是掛載點,好比/home,$fstype是文件系統,好比ext4。緩存
使用 megacli 工具讀取 RAID 相關信息,每一個metric都會附件一組tag描述,用來標明所屬PD或者 VD,PD格式爲PD=Enclosure_ID:SLOT_ID,好比PD=32:0代表第一塊磁盤 ,VD=0 代表第一個邏輯磁盤。服務器
使用 smartctl 工具讀取磁盤 SMART 信息,目前全部指標僅做爲數據收集,不必定意味磁盤損壞(只是表示機率變大),每一個metric都會有一組tag描述,代表盤符,例如device=/dev/sda。網絡
測試全部已掛載分區是否可讀寫,每一個metric都會有一組tag描述,表示掛載點,好比mount=/homeapp
計算方法:每秒採集一次/proc/diskstats,計算差值,都是計數器類型的。每一個metric都會有一組tag描述,形如device=$device,用來表示具體的設備,好比sda一、sdb。用戶能夠參考iostat的幫助文檔來理解具體的metric含義。運維
計算方法:讀取/proc/loadavg,都是原始值類型的:ssh
計算方法:讀取/proc/meminfo 中的內容,其中的mem.memfree是free+buffers+cached,mem.memused=mem.memtotal-mem.memfree。用戶具體能夠參考free命令的輸出和幫助文檔來理解每一個metric的含義。
計算方法:讀取/proc/net/dev的內容,每一個metric都附加有一組tag,形如iface=$iface,標明具體那個interface,好比eth0。metric中帶有in的表示流入狀況,out表示流出狀況,total是總量in+out,支持的metric以下:
計算方法,經過ss -ln,來判斷指定的端口是否處於listen狀態。原始值類型,值要麼是1:表明在監聽,要麼是0,表明沒有在監聽。每一個metric都附件一組tag,形如port=$port,$port就是具體的端口。
使用 ntpq -pn 獲取本機時間相對於 ntp 服務器的 offset。