|
|
|
关键字:操作系统
|
来源:8844软件服务
pqspqs创建于
2006-12-26 07:19 阅读
157次
网友评论
条 |
------如何实时监视系统运行状况并在异常发生的时候自动发邮件到管理员的邮箱或在严重错误的时候发短信给管理员?其实,利用HP-UX系统工具和自带的sendmail邮件发送功能,就能实现配置一个比较通用的监视系统! 以下为HP-UX11.00环境下配置的详细过程。 HP-UX11.00系统安装时也会安装Sendmail,版本大概是8.9.x!这个版本的Sendmail应该也算稳定的,但是我这里配置时会出现sendmail.cf文件版本太旧的错误!于是干脆download一个新版的算了!在这里可以下载到HP-UX特别版的Sendmail 8.11.1:http://www.software.hp.com/ISS_products_list.html(需要填一些个人和公司信息,不一定填真实的:p,就可以下载了,大概1.3M吧,也算够新的了!如果你想用更新的版本,可以到http://www.sendmail.org去下载8.12.6的,不过安装起来麻烦得多也比较容易出问题)。文件下载下来以后是一个叫做Sendmail8111.depot的文件,好家伙,能用swinstall轻松搞定!!!把它ftp到你的HP-UX系统吧,注意需要用binary的模式传输,否则安装时会出现错误。完了,可以安装了,假如你ftp到/tmp下,那么用: #swinstall –s /tmp/Sendmail8111.depot ,按提示完成即可。 假如你的系统配置了DNS服务,那么配置Sendmail会简单一点,否则就稍微麻烦一点(其实也没麻烦多少)。我们先假设一些前提:HP-UX系统主机名:hosta,IP地址:192.168.0.1 (C类网址,下同),默认网关: 192.168.0.2;假设公司邮件服务器是hostb(很少直接用sendmail直接做公司业务邮件服务器的哦),IP地址:192.168.1.5,域名是myhpux.com,hostb允许为hosta提供邮件代理服务。 具体步骤: # vi /etc/hosts 192.168.1.5 hostb myhpux.com 192.168.0.1 hosta hosta.myhpux.com … 如果存在/etc/nsswitch.conf ,那么直接修改该文件;如果不存在,则需要拷贝一个: #cp -p /usr/newconfig/etc/nsswitch.files /etc/nsswitch.conf #vi /etc/nsswitch.conf hosts: files … #nslookup Using /etc/hosts on : hosta >myhpux.com 没问题的话,继续;有问题则不能怪我了,看看自己上面做对了没有!!!(IP地址、网关、域名和hostname等需要替换成你自己的) #vi /etc/mail/sendmail.cf 找到:#Dj$w.Foo.COM 这行,并在下面增加一行: Dj$w.sysinfo (发送邮件时,系统默认发信人是: root@hostb.sysinfo ) 然后,找到DS 行,改成: DShostb 存盘退出! 可以测试了: #/sbin/init.d/sendmail stop #/sbin/init.d/sendmail start #sendmail –v admin@myhpux.com <输入邮件内容> . (注意,最后一行的“.”号结束邮件内容输入) 正常系统和网络都没问题的话,你的 admin@myhpux.com就会收到root@hostb.sysinfo发给你的邮件了!这只是通常的情况,假如你需要发邮件到Internet,如 hpux@vip.sina.com: 1、假如你的HP-UX主机没有直接Internet连接,需要通过hostb代理,则: # vi /etc/hosts 192.168.1.5 hostb vip.sina.com 然后就可以发了: #mailx –s “test” hpux@vip.sina.com </etc/hosts 2、假如你的HP-UX有直接Internet连接,则: #vi /etc/hosts 202.101.111.222 sinahost vip.sina.com #vi /etc/mail/sendmail.cf 修改DShostb 为DSsinahost #/sbin/init.d/sendmail stop #/sbin/init.d/sendmail start 测试: #mailx –s “Test” hpux@vip.sina.com </etc/hosts 说明,202.101.111.222是#ping vip.sina.com得到的IP地址。 好,邮件服务搞定,接下来写监视脚本!!!
根据我自己的实际状况,我需要监视的系统运行状况主要有文件系统空间、网络和数据库服务!先说明文件系统的监视。文件系统空间不同挂起点设定的临界值是不一样的,比如/var,可以设定警告线是80%,错误线是95%,而数据库/oradb的警告线可能是60%,错误线80%,由此必须设定一个文件系统临界线设置文件:比如/etc/fs.sysmon (/etc下系统默认配置文件没有.sysmon结尾的,放心使用不会影响系统的)。/etc/fs.sysmon文件结构是这样的:注释的行不考虑,分3段,分别是挂起点、警告线、错误线。具体例子如下: ############################################################## # Which mount point must be monitored and how to monitored. # # | Mount Point | % Warning | % Error | # # Attention: /lvol1 is incorrect , it should be lvol1 # ############################################################## # lvol1 90 95 / 50 60 mfg1 60 75 stand 70 80 var 60 70 usr 70 80 users 50 80 tmp 70 80 opt 70 80 mfg8 70 80 mfg7 70 80 database 40 90 临界值随时可以改,监测脚本以这个文件的临界值为准判断文件系统是否出问题。 系统监视脚本fsmon,内容大致如下: #!/usr/bin/sh ##Check file system usage! # $mntpt --- Mount point # $usdpct --- %used (bdf output) # $usdamt --- %used * 100 (If usdpct = 63% then usdamt = 63  # $wpect --- Max Warning Percentage # $epct ---Max Error Percentage # Check if fsswitch exists ------ if [[ ! -f /etc/fs.sysmon ]] then echo "The configuration file /etc/fs.sysmon does not exist!" exit fi touch $$.rslt bdf |grep -iv filesystem |awk '{print $6" "$5}' |while read mntpt usdpct do mntpt=`echo $mntpt |tr -d "/"` if [[ $mntpt = "" ]] then mntpt="/" fi usdamt=`echo $usdpct |tr -d "%"` wpct=`more /etc/fs.sysmon|grep -v "#"|grep "$mntpt"|awk '{print $2}'` epct=`more /etc/fs.sysmon|grep -v "#"|grep "$mntpt"|awk '{print $3}'` if [[ "$wpct" = "" ]] then wpct=90 fi if [[ "$epct" = "" ]] then epct=95 fi
if [[ $mntpt != "/" ]] then mntpt="/"$mntpt fi
if [[ $usdamt -gt $epct ]] then echo "Error:$mntpt file system's usage is ${usdamt}%." >>$$.rslt else if [ $usdamt -gt $wpct ] then echo "Warning:$mntpt file system's usage is ${usdamt}%." >>$$.rslt fi fi done
if [[ -s ./$$.rslt ]] then if grep "Error:" ./$$.rslt >/dev/null then mailx -s "Fs-Err" -r "fs@$(hostname)" hpux@vip.sina.com <$$.rslt else mailx -s "Fs-Wrn" -r "fs@$(hostname)" hpux@vip.sina.com <$$.rslt fi fi rm $$.rslt unset mntpt unset usdpct unset usdamt unset wpct unset epct
关于网络监视方面,可以挑选几个重要的主机来测试网络连通性(由此达到以点代面的目的,当然,可以象Openview那样全面监测那更好)。主机列表放在文件/etc/ho.sysmon里,比如: ###################################################################### # Host list whom this host can connect to. # # Please input the host's IP address. # ###################################################################### #192.168.0.1 127.0.0.1 192.168.1.5 192.168.2.1 192.168.3.1 网络监视脚本如下(netmon): #!/usr/bin/sh # Monitor Network Connection from Host List: ./rhosts # phost --- Ping host # prslt --- Ping Result if [[ ! -f /etc/ho.sysmon ]] then echo "Host list file do not exist." exit fi
touch $$.net more /etc/ho.sysmon|grep -v "#" |while read phost do prslt=`ping $phost -n 5 |grep loss|awk '{ print $7}'` prslt=`echo $prslt|tr -d "%"` if [[ $prslt -ne 0 ]] then if [[ $prslt -eq 100 ]] then echo "Error: Can't connect to host:$phost." >> $$.net else echo "Warn: Connect to host:$phost problem." >>$$.net fi fi done
if [[ -s ./$$.net ]] then if grep "Error:" ./$$.net >/dev/null then mailx -s "Net-Err" -r "net@$(hostname)" hpux@vip.sina.com <$$.net else mailx -s "Net-Wrn" -r "net@$(hostname)" hpux@vip.sina.com <$$.net fi fi
rm $$.net unset phost unset prslt
如果以上内容都能理解了,那么监视数据库是否在运行就很简单了,比如 if ps –ef |grep “_orasrv” |grep “mydb” then else fi 假如数据库mydb已经通过_orasrv进程启动,那么执行相关动作,否则重启数据库并发信心给管理员。
补充一点,假如你想在系统异常是收到短信通知,只要对收费邮箱(比如hpux@vip.sina.com)设置邮件到达短信通知即间接实现。
jazy 回复于:2002-11-26 10:26:48
很好!建议斑竹置顶!!
tely 回复于:2002-11-26 10:56:34
闲麻烦的用户可以考虑买个网管软件 ,方便又简单 而且功能多多 …… 推荐 SITEVIEW 超级简单……
hpux 回复于:2002-11-26 12:05:11
Openview功能更强大~~~ :p
wdbj 回复于:2002-11-26 12:27:31
TOVOLI和UNI-CENTER比OPENVIEW功能强大的多了,呵呵,模块比OPENVIEW多很多 只要你买的起
Law 回复于:2002-11-28 13:11:27
是在是高手!
jazy 回复于:2003-03-08 10:07:31
open view能否监控到应用层呢?
albert 回复于:2003-03-08 12:29:17
可以在程序中内嵌 opcmsg 语句, opcmsg 其实就是一个固定格式的语句,当一些事件发生时该语句就会被执行向VPO发出某些事先定义的一些信息,我只在Shell Script中使用过该语句,但也可以嵌入一些C或其他语言写的程序中,可能是通过提供API函数来实现的,这我就不是太在行了。
如果是数据库的话,可以用HP Openview Smart Plug in for Database来与VPO集成。
jazy 回复于:2003-03-08 20:59:14
谢谢!在应用中提供snmp协议是不是一种较为通用的方法?
inHP 回复于:2003-09-14 22:25:49
楼主果然厉害,如果用EMS或许会简单得多。
|
|
|
『打印』
『收藏』
『导出Word』
|