用MRTG监测Linux系统网络、CPU、内存和硬盘情况
本文讲述的是:用MRTG监测Linux系统网络、CPU、内存和硬盘情况:
2)、获得内存的使用率和总量
为了获得内存的使用量和总量我使用free -m 这个命令:
- [root@intel etc]# free -m
- total used free shared buffers cached
- Mem: 501 454 47 0 71 234
- -/+ buffers/cache: 148 353
- Swap: 1019 8 1010
free 命令执行后生成如上图所示的数据。我们需要的是两个带下划线的数据。其中:
Memory 的使用情况为:454 M
Memory 的总量为:501 M
下面我们通过一个perl 脚本(mem.pl)来获得并输出这两个数据,脚本如下:
- [root@intel bin]# vi mem.pl
- #!/usr/bin/perl
- system ("/usr/bin/free -m | grep Mem >mem_info_file");
- open (MEMINFO,"mem_info_file");
- @meminfo=;
- close (MEMINFO);
- foreach $line(@meminfo) {
- @memstatus=split(/ +/,$line);
- }
- $memused=$memstatus[2];
- $memtotal=$memstatus[1];
- print "$memused\n";
- print "$memtotal\n";
- system ("uptime");
- system ("uname -n");
########## By Vitter vitter@safechina.net ##################
我同样把mem.pl 这个脚本放在/usr/local/mrtg/bin/下,这个脚本由mrtg 来调用,现在我们来完成相应的配置文件(mem.cfg),我把mem.cfg 放在/usr/local/mrtg/etc 目录下,内容如下:
- [root@intel etc]# vi mem.cfg
- WorkDir:/usr/local/apache_1.3.31/htdocs/mrtg/mem/
- Target[localhost]: `/usr/local/mrtg/bin/mem.pl`
- Xsize[localhost]:300
- Ysize[localhost]:100
- Ytics[localhost]:10
- MaxBytes[localhost]: 1006
- Title[localhost]:Memory State of Vitter-test Server
- PageTop[localhost]:Memory State of Vitter-test Server
- ShortLegend[localhost]: B
- kmg[localhost]: M
- YLegend[localhost]: Memory Usage
- Legend1[localhost]: Used
- Legend2[localhost]: Total
- LegendI[localhost]: Used
- LegendO[localhost]: Total
- Options[localhost]: growright,gauge,nopercent
下面我们可以执行mrtg 了:
- [root@intel etc]# /usr/local/mrtg/bin/mrtg /usr/local/mrtg/etc/mem.cfg
当第一次执行时会有报警,执行三次,就没有报警了。
【编辑推荐】