电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

用Perl写一套系统监控程序

用Perl写一套系统监控程序_第1页
用Perl写一套系统监控程序_第2页
用Perl写一套系统监控程序_第3页
1 目 录 1 概述...........................................................................................................................................1 2 监控Server................................................................................................................................1 3 监控Client...............................................................................................................................10 4 运行方法及配置文件.............................................................................................................20 1 概述 本监控程序用来监控RedHat Linux主机的系统状况,包括CPU 负载、内存使用、网络状况、服务端口、磁盘空间等。本程序基于 C/S 结构,全部用Perl 实现。基本原理是,Client运行在各个需要监控的主机上,并起一个 Socket 端口。Server 定期轮询各个 Client,根据配置文件里的选项发送扫描命令,取得客户端的状态,若有异常则发送邮件报警。 这个程序属于偶的业余作品,只花了 1 天半的时间写成。Perl 的优点就是快速开发,且自身有强大的类库,可实现很复杂的功能。这个程序除了 Net::SMTP 模块外,没有使用任何外部类库。 代码仅做参考,可以修改它们作为己用。程序运行稳定,目前已监控了偶们广州公司的上百台 Linux服务器。但代码至少有如下不足: 1. 没写任何安全控制的代码,包括进程ID 切换,chroot,Socket 会话加密及认证等。所以客户端默认只在内网 IP 上监听,且不要以 root 运行。 2. 客户端检查系统状态主要使用了外部系统调用,其实大部分系统状态,都可从 POSIX函数或 Linux自身的状态表里获取(如/proc 下的文件)。偶不想花时间去研究那些,直接 system call 了。 2 监控Server #!/usr/bin/perl use strict; use IO::Socket; use POSIX qw(:signal_h WNOHANG setsid); use Net::SMTP; use Fcntl qw(:DEFAULT :flock); # 电子邮件地址,用来接受报警 my @emails = ( sa@sample-inc.com, 2dba@sample-inc.com, # 其他email 地址 ); # 程序运行的主目录,这里是写死的,需要修改成自己的目录,或写成配置文件 my $rundir = '/home/afoo/monsvr'; # 程序运行的PID 文件 my $pid_file = $rundir . "/monsvr.pid"; # ...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

小辰2+ 关注
实名认证
内容提供者

出售各种资料和文档

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部