• 28
  • Dec

Ramhost已经买了整整七天了,也就是说,刚过“现金返还”的日期。当然我也不打算退了,虽然还没真正上线运营来看实际效果,但是用着尚可,也不想换来换去折腾了。

刚刚给VPS用MRTG搞定了CPU和内存的监视,因而记之。

MRTG是用来监视网络信息的,但是设计的比较灵活,因此可以很方便地转而监视其他信息,如CPU,内存等。

这里不得不说到Ramhost的简陋,因为它的后台只提供了网络的图表信息,其他什么都没有。我记得Linode是有的,我也奇怪我居然能忍受着用Ramhost。

第一次用OpenVZ技术的VPS,刚开始光是搞性能优化就花了很久。因为OpenVZ的特殊性,虚拟内存的占用也算在VPS内存里,结果导致1GB的内存,开个Apache,开个Mysql,没其他东西,就占了80%左右。

后来我调节了ulimit,设置了虚拟内存的stack size(调成了256K),把内存占用减少至了18%左右。

每次登录去看内存是件麻烦的事情,于是决定搭一个监控软件,请教了骨头,就自然地开始搭MRTG。

这里不再介绍来龙去眿,就记一下加入内存和CPU监视是如何实现的,其他可看骨头写的:ubuntu下,给现有网站加个简单的流量监控的方法

MRTG要求一个脚本,能输出四行信息: in, out, uptime, hostname,然后就能作为MRTG的一个图表项了。

于是我安装了sysstat,并写了两个脚本,分别用来监视当前CPU和内存的情况:

这个监视内存

#!/bin/bash 
function echo_mem {
	echo $1
	echo $2
}
meminfo=`/usr/bin/free |grep Mem |awk '{print $2, $3}'`
upinfo=`uptime | cut -d \, -f 1`
echo_mem $meminfo
echo $upinfo
hostname

这个监视CPU

#!/bin/bash 
function echo_cpu {
	echo $1
	echo $2
}
cpuinfo=`/usr/bin/sar -u 1 3 | grep Average | awk '{print $3, $5}'` 
upinfo=`/usr/bin/uptime | cut -d \, -f 1` 
echo_cpu $cpuinfo
echo $upinfo
hostname

把这两个脚本存到“/opt/mrtg/”下,然后用下面的配置文件:

Target[cpu]: `/opt/mrtg/mrtg-cpu` 

MaxBytes[cpu]: 100 

Options[cpu]: gauge, nopercent, growright 

YLegend[cpu]: CPU Loading (%) 

ShortLegend[cpu]: % 

LegendO[cpu]: CPU user:

LegendI[cpu]: CPU sys:

Title[cpu]: CPU Loading 

PageTop[cpu]: <H1>CPU Loading</H1> 

 

Target[ram]: `/opt/mrtg/mrtg-mem` 

MaxBytes[ram]: 2048000 

Title[ram]:Memory 

kmg[ram]:kB,MB 

kilo[ram]:1024 

ShortLegend[ram]: 

YLegend[ram]: Memory Cost

LegendI[ram]:

LegendO[ram]: Used Memory:

Options[ram]: growright,gauge

PageTop[ram]: <H1>Memory</H1>

最后就按骨头文章里的方式重新产生一遍index.html,就能看来漂亮的服务器信息的图表了。

看看效果图:当前服务器几乎没有负载,等正式上线时看看会如何。 MRTG Monitor CPU and Memroy

有经验的朋友们有什么更棒的解决方案吗?很想知道大家是怎么监视的。

关于mrtg.cfg里面的详细语法和控制选项,可以参考这篇文档:

http://oss.oetiker.ch/mrtg/doc/mrtg-reference.en.html

Tags: MRTG, Ramhost, vps.

» You can leave a comment.

1 Pingbacks

14 Comments

  1. 哈哈,又沙发喽。

  2. caoshijun

    既然已经找到mrtg的老家去了,那就顺便看看http://oss.oetiker.ch/rrdtool/ 吧

  3. 试试这样管用不?
    Target[cpu]: `sar -u 1 3 | awk '/Average/{print $3;print $5}';uptime | cut -d \, -f 1;hostname`

  4. 干嘛不用cacti呢?MRTG和cacti,不论从功能上还是扩展性上,都没有可比性。

  5. ddd

    这点内存就别上apache了,上个轻量点的httpserver

  6. wangjl

    我是自己写的snmpwalk,超了50%报警

  7. 推荐你试试 munin
    http://munin.projects.linpro.no/

    支持自定义脚本来监视,可以监视 nginx 执行、mysql、IO、CPU...
    同样是生成图表的

    插件:
    http://goo.gl/ghCW

  8. 感謝大家的推荐,原来还有这么多选择。有空我就一样一样试过来,找一样最合适的。

  9. Cacti

    http://www.flickr.com/photos/latteye/4224370014/

  10. 我比較喜歡WRG54GL上ddwrt的哪一個

  11. gza633

    MRTG 我们一直用来监控节点的流量信息 cacti足够你使了

  12. 呃。。。我只想监控本机的网络流量,有推荐么...

  13. 脚本好强大。。。

Leave a Comment