Tip: 订阅AnySQL | AUL许可证 | 软件下载 | DBA Tools | Oracle SOS

Perl监控AIX的网卡流量

    活运活用, 用Perl写了一个看AIX主机网卡流量的脚本, 差不多和"Hello, World"一样简单了.

#!/home/oracle/dbaperl/bin/perl -w
#
use AIX::Perfstat;

my $nettotal = AIX::Perfstat::netinterface_total();

my $preipkt = $nettotal->{ipackets};
my $preopkt = $nettotal->{opackets};
my $preibyt = $nettotal->{ibytes};
my $preobyt = $nettotal->{obytes};

while(1)
{
  sleep(10);
  $nettotal = AIX::Perfstat::netinterface_total();
  print($nettotal->{ipackets} - $preipkt,",");
  print($nettotal->{ibytes} - $preibyt, ",");
  print($nettotal->{opackets} - $preopkt,",");
  print($nettotal->{obytes} - $preobyt, "\n");
  $preipkt = $nettotal->{ipackets};
  $preopkt = $nettotal->{opackets};
  $preibyt = $nettotal->{ibytes};
  $preobyt = $nettotal->{obytes};
}

    输出的样本数据, 前面加个时间就更好了.

209293,25449294,179547,45651583
217798,26535501,188151,47684198
204486,25331561,175493,45920902
204652,25110514,175301,45952904
205024,25172192,176165,46227715
202194,24638398,172954,45765479

    只能一步一步来了. 好象需要加上Int64位运算支持, 才能准确显示数据.

Perl AIX-Perfstat-0.03编程

    AIX Perfstat提供了一个访问主机性能数据的接口, 可以参考libperfstat.hAPI接口文档来了解. 在AIX-Perfstat接口中, 每一个API调用都返回一个hash. 先是了解一下, 这个接口提供了那些数据.

    cpu_total

processorHZ  lwrite  sysexec  phwrite  phread    idle
lread    ncpus_cfg  bwrite  sysread  writech  syswrite 
user  runque devintrs  pswitch sysfork  swpque  sys     
softintrs  syscall  readch  bread  ncpus  description
loadavg wait lbolt

    memory_total

numperm    real_free  pgsp_rsvd  pgexct  real_inuse
pgsp_free  real_pinned pgspins    pgouts  pgspouts
pgsp_total real_total  cycles      scans    pgins
pgsteals  pgbad      virt_total

    disk_total

free  number  time  wblks  rblks  xrate  xfers  size

    netinterface_total

oerrors  number  collisions  opackets  ibytes  obytes
ipackets ierrors

    在AIX 5.3上面, 用C的接口的话可以看到更多的数据, 说明这个接口有些偏老了, 有空时改改.

安装Perl AIX-Perfstat-0.03

    昨天在AIX上安装AIX::Perfstat包时, 遇到了一点小问题, 下载并运行如下命令后, 报了一点错.

perl Makefile.PL
make

    报的错误是找不到cpu.o, memory.o等目标文件, 所以不能link成可执行文件, 这时可以修改Makefile.PL或生成好的Makefile.

Makefile.PL:
  OBJECT            => '$(O_FILES) cpu.o disk.o netinterface.o memory.o'
Makefile:
  OBJECT = $(O_FILES) cpu$(OBJ_EXT) disk$(OBJ_EXT) netinterface$(OBJ_EXT) memory$(OBJ_EXT)

    这样改了后, 编译是通过了, 但跑如下测试代码时, 却报错了.

#!/home/oracle/dbaperl/bin/perl -w
#
use AIX::Perfstat;

my $cpu=AIX::Perfstat::cpu_total();

print($cpu->{'processorHZ'},"\n");

    错误信息如下.

Can't find 'boot_AIX__Perfstat' symbol in ..../Perfstat.so
at .../Perfstat.pm line 38
Compilation failed in require at ./test.pl line 3.
BEGIN failed--compilation aborted at ./test.pl line 3.

    最后原因是编译时, 默认用了/usr/local/lib目录下的库文件, 用/usr/lib目录下的就行了, 再改一次Makefile就可以了.

LDDLFLAGS =  ... -L/usr/lib

    改完了之后, 就可以跑测试代码了, 可以得到CPU的频率了.

[oracle@test:/home/oracle] ./test.pl
1656376000

    接下来就是要研究如何使用这个包, 来编写监控系统性能的脚本了.

需要什么样的监控?

    一提到系统监控就会联想到Cacti这个优秀的开源软件, 或用Nagios. 不管什么样的监控软件平台, 监控可做的事大约有四个方面.

    一定的报警机制. 对于特定的事件, 需要用特定的方式(手机, 邮件, 淘宝旺旺等)通知相关人员, 通知的事件大小由监制的机制来决定, 如果是7x24的, 那一般只有交易量下降多少比例时才会报警, 如果不是7x24的, 那么有任何错误发生时都需要报警.

    一定的图表显示. 图表是最好的表现数据趋势的方式, 对于交易量或主机负荷之类的少数重要数据, 用图的方式显示. 缺点是一个屏幕内能提供的信息量比较少, 对于详细诊断问题所在起不了多少帮助.

    很多的详细信息. 用网页方式显示某些方面详细的数据, 如将所有的消息滞留的情况记录下来, 用来查找发生的问题. 更多的如应用中关键的API调用次数, 显示一个当前值和历史平均值, 也可以确定某个点是不是有问题. 非常适合于详细问题的快速确定.

    一定的自动响应机制. 管理出身的会很关注这一点, 是很好的设想, 但不容易实现, 最简单地说表空问不足这个问题吧, 让程序自动加文件? 还是做一个空间预测, 提前加好空间, 个人偏向于后者.

    现在监时做的一些监控就是建立在自已开发的WebChart基础上的, 表格和图形并存的方式. 更适合于白天工作时段的监控, 好好保存一定历史信息, 还可用于事后问题查找.

最近收到的评注:

  • overmars 的留言 : UPDATE A ...
  • 小荷留言 : 呵呵,之前听说过有人搞到全国机动车车主信息的数据。
  • heh 的留言 : 真是什么人都有啊
  • 呵呵 的留言 : 女有。。。 男有。。。 ...
  • linker留言 : 公事公办,不要被高低给暂时高潮了,注意不要被动!
  • Ken 留言 : 还是人家ABC有经验,这事要是报上去,谁负责?搞技术的单纯许多,悲乎!
  • anysql留言 : 24岁就读博二,好历害啊。
  • 路人 的留言 : 我也是一位女博士生,还有2年毕业,我承认学业的压力比较大,平时也没有太多的时间像同龄人那样去打扮自己,科研能力的培养使我失去了性格中原有的感性,多了更多的理性,性格变得更坚强。但是这些并不是缺点,为什么要用那么歧视的语言形容我们呢?我周围的女博士个个都很漂亮,都有自己的气质,其中,一个学经济的女孩,甚至是业余的平面模特,具有出众的美貌。我很奇怪,为什么一提到女博士就把我们和野兽联系起来。作为80后的一代,我们上学都比较早,期间不乏跳级者,硕博连读者,今年24岁的我已经是博士2年级了,我觉得年龄根本不是限制我们结婚嫁人的决定性因素,而是长时间在高校,在科研机构,我们没有什么机会接触社会的原因
  • gfw 的留言 : 作者也是性情中人呀!不过这样是不太安全的!这样的事情在中国不算什么,不过做一些东西出来卖,如何都是要承担一些风险的!
  • abc 的留言 : 数据损坏这种事情过后当事人是不敢向上汇报申请经费的,他也怕追究责任,他又不可能自己掏腰包给你。上次一个县级法院的Oracle数据库损坏,去看了一下,不给钱坚决不给恢复,就说可以恢复,但要时间。
  • oasoo留言 : 支持楼主!
  • dlcyj 的留言 : 公安就可以不给钱了,那是不是城管可以白住楼呀.以后,遇到这样系统的,给多少钱都不给做.
  • anysql留言 : 改成某地后,表面上看起来要好一些,以妨被和谐掉。
  • eygle留言 : 仍然可以访问!
  • 木匠留言 : 已经是21世纪了, 中国男子足球马上就要解散了.
  • David.Guo留言 : 1:你居然敢诬蔑伟大的公共安全的官员,呵呵,惨了 2:人家还没告你进入国家机密数据库列 ...
 

分类 | Categories

订阅本站更新:

RSS 2.0
从FeedSky订阅
从FeedBurner订阅
添加到 Google Reader
添加到 Bloglines
添加到 抓虾
添加到 鲜果
添加到 News Gator
添加到 Windows Live
添加到 Rojo
添加到 Zaptxt

友情站点连接:

本站基于MT-3.36免费版, 和Fenng设计的模板
(©)版权所有, 2004 - 2008, www.AnySQL.net, 保留所有权利. 本Blog内容仅代表个人观点, 与其他任何组织或公司无关.
MSN: loufangxin(a)msn.com, Mail: anysql(at)126.com/support(at)iamdba.com, Skype ID:anysql