系统终于上线了,需要对服务器状态进行监控,没有经费没有人开发对应的监控系统,想用现成开源产品,考虑到服务器可怜的配置,只好使用Shell命令抓取主机内存,CPU,磁盘等信息,进行日常巡检。
内存使用量监控
Linux系统提供了top ,free 等命令可以随时查看内存的使用情况。考虑到要定时多次收集内存使用情况,采用了从/proc/meminfo 文件中定时多次抓取系统内存具体信息,根据自己的需要进行业务加工处理。主要使用 cat,grep ,awk,let,tee,wc,echo , | 等shell命令。
MEMFREE=`cat /proc/meminfo | grep MemFree | awk '{ print $2}'`
MEMTOTAL=`cat /proc/meminfo | grep MemTotal | awk '{ print $2}'`
MEMAVAILABLE=`cat /proc/meminfo | grep MemAvailable | awk '{ print $2}'`
MEMFREE=`cat /proc/meminfo | grep MemFree | awk '{ print $2}'`
CACHED=`cat /proc/meminfo | grep ^Cached | awk '{ print $2}'`
let "MEMUSERATE=($MEMTOTAL-$MEMAVAILABLE)*100/$MEMTOTAL"
echo "Memory Total : $MEMTOTAL KB" | tee -a /opt/logs/check-system.log
echo "Memory Free : $MEMFREE KB" | tee -a /opt/logs/check-system.log
echo "Memory Available : $MEMAVAILABLE KB" | tee -a /opt/logs/check-system.log
echo "Memory Cached : $CACHED KB" | tee -a /opt/logs/check-system.log
echo "Memory use rate : $MEMUSERATE%" | tee -a /opt/logs/check-system.log
CPU使用量监控
从/proc/stat文件中获取CPU的各种信息,进行计算。方法与内存使用量监控方法大体相同,这里就不再举例。可以在网上查到stat具体数据描述。
磁盘使用量监控
从/proc/diskstats文件中获取磁盘的各种信息,进行计算。方法与内存使用量监控方法大体相同,这里就不再举例。可以在网上查到diskstats具体数据描述。