作运维,不怕出问题,怕的是出了问题,抓不到现场,两眼摸黑。因此,依靠强大的监控系统,收集尽量多的指标,意义重大。但哪些指标才是有意义的呢,本着从实践中来的思想,各位工程师在长期摸爬滚打中总结出来的经验最有价值。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。