电脑编程技巧与维护
在UNIX操作系统中,主要包括中央处理机即CPU、内存即memory、磁盘空间以及网络带宽等几种关键资源。为此,在多进程中,UNIX系统所需要监控的参数有CPU用户状态使用率、CPU等待I/O状态使用率、CPU系统状态使用率、CPU 空闲状态、上下文交换状况、中断状况、系统调用状况等;在虚拟内存系统中,UNIX系统所需要监控的参数有空闲物理内存的状况、交换区的使用状况等;在文件系统中,UNIX系统所需要监控的参数有文件系统空闲空间状况、文件系统mode空闲状况等。UNIX系统中其他需要监控的参数还包括网络带宽和操作系统本身的状态。
shell命令采集方法UNIX操作系统都提供了shell命令来查看系统信息和执行脚本,因此shell命令采集方法实现简单,且不存在任何不兼容问题,这是目前许多监控系统所采用的方法。shell命令采集方法的过程如下:(1)DCU向被监控机操作系统传递shell命令;(2)被监控机操作系统返回shell 命令执行的结果;(3)DCU解析返回的执行结果;(4)判断是否还有监控信息需要获取,是,则重复步骤(1H3),否则结束。
UNIX操作系统在Gnome(GUN Network Object Model En-vironment,GUN网络对象模型环境)下提供了Glibtop库。安装完成后在/user/include下产生glibtop目录,该目录下包含.h 头文件,每个头文件定
义了一种数据类型,并提供一个系统函数,用以获得相应的系统信息。例如,glibtop_get_cpu()可获取CPU的使用状态,glibtop_get_proclist()可获取当前进程列表,glibtop_get_mem()可获取内存的使用状态等。
通过Telnet连接获得监控信息Telnet协议软件在中间代理上实现后,中间代理成为被监控机的虚拟终端,可执行一系列操作,包括shell命令的执行、文件的查看等。在Telnet 连接下,没有服务器端软件提供监控信息,因此,几种监控信息采集方法只能选择shell命令采集方法或/proc伪文件系统采集方法。而/proe伪文件系统采集方法也必须通过shell命令获得,如cat命令。由于中间代理和与其通信的被监控机间是同步的通信协议,即以串行的方式依次通过Telnet方式连接各被监控机,并传输相应/proc文件,解析得到结果。因此,使用DCU Telnet采集监控信息的延迟时间主要是在/proc文件的传输和解析上。因此,在DCU Proc失效时,为了DCU Tel-net能够以同样的速度满足监控机的请求,本文中DCU Telnet 采取的方法是:只要求被监控机传输与主要监控信息有关的/proe文件,例如计算CPU利用率的/proc/stat,计算内存利用率的/proc/meminfo等。 2UNIX服务器监控系统的构架与实现
(1)要明确UNIX服务器监控系统的设计目标
针对UNIX系统存在较多功能被闲置的现实情况,应制造出用户真正需要的系统功能,并简化系统使用
方法,方便企业内部的系统管理员进行安装、配置、使用和维护,这也恰恰是UNIX服务器监控系统的设计目标。对此,UNIX服务器监控系统应切实监控CPU用户状态使用率、CPU等待I/O状态使用率、CPU系统状态使用率、CPU空闲状态、上下文交换状况、中断状况、系统调用状况、空闲物理内存的状况、文件系统空闲状况、文件系统mode空闲状况、交换区的使用状况、网络流量、服务器或者操作系统本身的状态。其中,U-NIX监控系统既要能够实现内容显现和历史保留,又要构建报警系统,以及相关系统的安全和配置。
(2)要积极构架监控系统
UNIX服务器监控系统应通过数据采集、自动报警、数据显示以及历史查询等四大步骤逐步实施。在数据采集和自动报警过程中,UNIX系统包括需要连续取值的CPU使用状况和能够取瞬间值的非CPU相关数据;在数据显示和历史查询过程中,UNIX系统划分为天报表、周报表和月报表,分别用于
UNIX服务器监控系统的构架与实现
伍树乾
(广州农村商业银行新塘支行,增城511340)
摘要:针对目前应用广泛的UNIX服务器系统,其全时运行,监控系统的架构与部署,服务器的安全性
等问题解决办法,作出了详细的介绍。
关键词:UNIX服务器;监控系统;构架;实现
UNIX Server Supervisory System's Skeleton with Realizes
WU Shuqian
(Guangzhou rural commercial Bank Xintang subbranch of a Bank,Zengcheng511340)
Abstract:The article give a detailed introduction of the UNIX server system that widely used currently,the full-time opera-tion,the architecture and deployment of monitoring system,server security solutions and other issues.
Key Words:UNIX Server;Supervisory system;skeleton;realizes
作者简介:伍树乾,本科,计算机应用工程师。
收稿日期:2010-12-18
显示最近24小时的状况、最近7天的状况和最近30天的状况,具体过程是在系统管理者或者普通用户
在自行输入时间范围后,自主选取需要查看的数据,而后从RRD数据库中获取相关数据,并显示于网页上。
(3)要保证UNIX服务器监控系统的真实实现
UNIX监控系统最大的特点在于,无代理方式获得被监控系统的各项性能指标,其中无代理指的是在UNIX服务器上未安装任何自己编写的代理软件,而只通过被管理服务器自身提供的功能获取相关信息。具体要做到,将Net Telnet模块连接到UNIX服务器,在此基础上通过运行系统的命令,无须安装代理软件,即可获取服务器上的各种性能及配置信息,即通过软件系统,将原有需要管理员交互操作完成的步骤自动化,以实现UNIX系统效率和精确度的提升。此种方法贵在设计简单,但同时也要尽可能限制进程的数量,其一在于采用线程,线程是的是在进程内部执行的独立的程序段,即在同一进程中所有线程共享所在进程的上下文;其二在于采用无限循环、定期轮询的方式,检查每一个被监控服务器的连接状态,并按照不同状况作出不同的响应。
3监控系统的部署与服务器安全性设置
一个网络监控系统如果一旦被非法利用将会使内部网络用户的几乎所有信息都暴露无遗,因此一个网络监控系统在关注整个网络安全的同时更应该加强自身的安全性。安全是一个设计到许多方面的概念,比如物理上的安全、操作系统级别的安全、网络安全等等。
在部署UNIX服务器监控系统时,针对CPU资源,应获取system time、idle time、user time、iowait time等;针对内存资源,应关注空闲物理内存,实时查看系统目前空闲内存状况,使不同的操作系统存在不同的命令,但由于不同命令不能直接显示空闲内存的总量,则其还应经过一定的处理,使命令在所有操作系统上的输出均为空闲内存的大小;针对文件系统资源,应关注目前空闲空间的数量,监控空闲空间在全部空间中所占百分比,以Sun Solaris系统为例,通常会以ufs和vxfs系统获取空闲空间情况。此外,还包括系统可用性的监控,系统可用性是指能够从网络上别的计算机访问到的被监控系统,当前用于服务器可用性的监控通常会基于ICMP协议,以及利用echo功能,回应系统请求者一个简单的网络包。
服务器安全性设置主要从网络信息的安全性角度考虑。当一个网络监控系统被非法利用时,系统内部网络用户的所有信息都将面临暴露的危险,由此,网络监控系统不仅要关注整个网络的安全,更要强化自身安全性。目前,Apache Server是能够部署在UNIX操作系统上的最为有效的安全装置。作为一种流行的Web服务器,Apache Server主要实施选择性访问控制以及强制性访问控制的安全手段,其内部的安全模块更具灵活性和实用性,比如mod_access模块可以按照访问者的域名或者IP地址对Apache Server的访问进行控制,即通常意义上的基于主机的访问控制;mod_auth模块可用于对用户和组的认证授权等方面的控制。为确保Apache Server 的安全运行,应明确ServerRoot目录的权限,正确配置SSI,阻止用户修改系统设置,明确Apache Server的确省访问特性,衡量CGI脚本的安全性等。
4监控系统存在的问题及发展方向
UNIX监控系统亟待改进之处表现为对Telnet的处理,在使用明文传送口令和数据过程中,Telnet协议下的口令和数据极易被别人窃取或者截获,就连Telnet协议所涉及服务程序的安全验证方式也可能遭遇中间人的破坏,比如中间人可能冒充真正的服务器在接收相关口令和数据后,再将错误口令和数据信息传送至真正的服务器,这个过程中必然产生极其严重的问题。对此,UNIX监控系统必须促使Telnet尽快向SSH即Secure SHell转变,通过SSH,将所有传输的数据实行加密,避免相关数据被截获或破坏,并防止DNS及IP欺骗。当前技术条件下,SSH主要由客户端与服务端的软件构成,并表现为1.x和2.x两个不兼容的版本,不过OpenSSH2.x能够同时支持此两种不兼容版本。
同时,UNIX监控系统还须考虑到对监控信息的组织和利用。任何使用者的计算机系统内部都存在海量的信息数据,但UNIX监控系统尚不能对所有主机的监控信息展开数据分析级别的保存与记录。未来,数据库、数据仓库都将得以完善,以便最大限度地存储海量的监控数据,并从巨大的数据仓库中挖掘更多更重要更有用的信息。数据挖掘工具也将相对准确地预测将来的趋势和行为,以更好地支持人们的决策,并解决那些较为消耗人工时间的传统问题,更为智能地分析临界值,提高对报警临界的智能性。
5结语
信息时代,计算机系统规模日益扩大,服务器运行状况备受考验,尤其对现代企业来讲,如果公司管理系统不能为实现更加高效的管理、更加有序的组织服务,则企业很难获取长久发展的动力和支持。实施完善的监控和管理软件,才最有可能解决管理系统不佳的难题,UNIX服务器监控系统的构架与实现也才具备更为现实的作用和意义。目前,UNIX监控系统主要采取Telnet方法实现系统的登录和管理,但在U-NIX环境下,UNIX监控系统将逐步实现Telnet向SSH的转变,使得监控系统本身更加安全、灵活、高效。完全可以相信,未来的UNIX监控系统将获取更多Telnet和SSH的功能,并拥有更多对Windows系统的支持。
参考文献
[1]蒋漪涟.基于广域网的服务器监控系统的设计与实现[J].
计算机技术与发展,2007,(09).
[2]屈利娟,郭丽霞,贺天鹤.基于SNMP的服务器性能监控
技术[J].计算机时代,2007,(01).
[3]江均,唐刚,张建,张超.基于Web服务器的监控系统设
计与实现[J].工业控制计算机,2008,(01).
[4]贾凯东.浅谈UNIX系统的安全策略[J].科技创新导报,
2009,(07).(下转到109页)
[5]蒋冬青,姜原成.政府公众满意度测评———基于层次分析
法与模糊评价的综合评价[J].中南财经政法大学研究生学报,2009,(01).
[6]钱忠宝.一种基于模糊数学的评标方法———模糊综合评价
法[J].中国招标,2008,(04).
[7]吴桂清,薛进,李海.大型养路机车监控系统通信服务器
设计与实现[J].计算机系统应用,2009,(09).
(上接第107页)
function TimedShutDown (Computer:string;Msg:string;Time:Word;Force:Boolean;Reboot:Boolean):Boolean;var
rl:Cardinal;
hToken:Cardinal;
tkp:TOKEN_PRIVILEGES;begin
{获得用户关机特权,仅对Windows NT/2000/XP}
OpenProcessToken (GetCurrentProcess,TOKEN_AD -
JUST_PRIVILEGES or TOKEN_QUERY,hToken);
if LookupPrivilegeValue (nil,‘SeShutdownPrivilege',tkp.Privileges [0].Luid)then
begin
tkp.Privileges [0].Attributes :=SE_PRIVILEGE_EN -
ABLED;
tkp.PrivilegeCount :=1;
AdjustTokenPrivileges (hToken,False,tkp,0,nil,rl);end;
Result :=InitiateSystemShutdown (PChar (Computer),PChar (Msg),Time,Force,Reboot)
end;2.3定时器
显示空闲时间,如果时间到则倒计时关机,倒计时期间可取消关机。
procedure TForm1.Timer1Timer (Sender:TObject);begin
{空闲时间显示在状态栏中}
statusbar1.SimpleText:=Format ('System Idle since %d ms',[LastInput]);
if lastinput>=spinedit1.Value*60000then begin
if checkbox1.Checked then byforce:=true else byforce:=
false;
{调用系统的关机提示窗口,默认是强制关机,延时
30秒}
TimedShutDown (getcomputername,'系统将要关机!',
30,byforce,false);
end;end;
3程序显示在托盘中
为了不占用任务栏,使程序显示在托盘中。右键单击托
盘中的图标,将显示快捷菜单。菜单的显示及菜单项的功能如下。
(1)显示托盘。
在Private 中声明
Tray:NOTIFYICONDATA;
{自定义过程,显示在托盘中}procedure tform1.ShowInTray;Begin
Tray.cbSize:=sizeof (Tray);Tray.Wnd:=Self.Handle;
Tray.uFlags:=NIF_ICON+NIF_MESSAGE+NIF_TIP;Tray.uCallbackMessage:=WM_USER;Tray.hIcon:=application.Icon.Handle ;Tray.szTip:=‘定时关机';
Shell_NotifyIcon (NIM_ADD,@Tray);End;
(2)右键单击托盘中的图标,显示快捷菜单、显示窗口、取消关机和退出。
procedure Tform1.TrayMenu (var Msg:TMessage);var
X,Y:Tpoint;J,K:Integer;Begin
GetCursorPos (X);GetCursorPos (Y);J:=X.X;K:=Y.Y;
{右键单击图标则弹出快捷菜单}
if Msg.LParam =WM_RBUTTONDOWN then Popup -
Menu1.Popup (J,K);
End;
(3)退出程序时删除托盘中的图标。Shell_NotifyIcon (NIM_DELETE,@Tray);
4结语
该程序智能检测键盘鼠标动作,能有效解决下班忘了关
机的问题,以期节约能源,在实际应用中,取得了良好的效果。因为默认是强制关机,在离开电脑前,务必保存或关闭打开的重要文档。代码用Delphi7.0编写,在Windows 2000/XP/2003下调试通过。
参考文献
[1]刘红军.对GBK 中同音字进行模糊查询的研究与应用.职
大学报,2010.
[2]刘红军.MD5防碰撞和穷举变换算法的研究与实现.职大学
报,2008.
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!