免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 4170 | 回复: 9
打印 上一主题 下一主题

系统实时监视 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2002-11-23 09:28 |只看该作者 |倒序浏览
------如何实时监视系统运行状况并在异常发生的时候自动发邮件到管理员的邮箱或在严重错误的时候发短信给管理员?其实,利用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 &quot;The configuration file /etc/fs.sysmon does not exist!&quot;
exit
fi
touch $$.rslt
bdf |grep -iv filesystem |awk '{print $6&quot; &quot;$5}' |while read mntpt usdpct
do
mntpt=`echo $mntpt |tr -d &quot;/&quot;`
if [[ $mntpt = &quot;&quot; ]]
then
mntpt=&quot;/&quot;
fi
usdamt=`echo $usdpct |tr -d &quot;%&quot;`
wpct=`more /etc/fs.sysmon|grep -v &quot;#&quot;|grep &quot;$mntpt&quot;|awk '{print $2}'`
epct=`more /etc/fs.sysmon|grep -v &quot;#&quot;|grep &quot;$mntpt&quot;|awk '{print $3}'`
if [[ &quot;$wpct&quot; = &quot;&quot; ]]
then
wpct=90
fi
if [[ &quot;$epct&quot; = &quot;&quot; ]]
then
epct=95
fi

if [[ $mntpt != &quot;/&quot; ]]
then
mntpt=&quot;/&quot;$mntpt
fi

if [[ $usdamt -gt $epct ]]
then
echo &quot;Errormntpt file system's usage is ${usdamt}%.&quot; >;>;$$.rslt
else
if [ $usdamt -gt $wpct ]
then
echo &quot;Warningmntpt file system's usage is ${usdamt}%.&quot; >;>;$$.rslt
fi
fi
done

if [[ -s ./$$.rslt ]]
then
if grep &quot;Error:&quot; ./$$.rslt >;/dev/null
then
mailx -s &quot;Fs-Err&quot; -r &quot;fs@$(hostname)&quot; hpux@vip.sina.com <$$.rslt
else
mailx -s &quot;Fs-Wrn&quot; -r &quot;fs@$(hostname)&quot; 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 &quot;Host list file do not exist.&quot;
exit
fi

touch $$.net
more /etc/ho.sysmon|grep -v &quot;#&quot; |while read phost
do
prslt=`ping $phost -n 5 |grep loss|awk '{ print $7}'`
prslt=`echo $prslt|tr -d &quot;%&quot;`
if [[ $prslt -ne 0 ]]
then
if [[ $prslt -eq 100 ]]
then
echo &quot;Error: Can't connect to hostphost.&quot; >;>; $$.net
else
echo &quot;Warn: Connect to hostphost problem.&quot; >;>;$$.net
fi
fi
done

if [[ -s ./$$.net ]]
then
if grep &quot;Error:&quot; ./$$.net >;/dev/null
then
mailx -s &quot;Net-Err&quot; -r &quot;net@$(hostname)&quot; hpux@vip.sina.com <$$.net
else
mailx -s &quot;Net-Wrn&quot; -r &quot;net@$(hostname)&quot; 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)设置邮件到达短信通知即间接实现。

论坛徽章:
0
2 [报告]
发表于 2002-11-26 10:26 |只看该作者

系统实时监视

很好!建议斑竹置顶!!

论坛徽章:
0
3 [报告]
发表于 2002-11-26 10:56 |只看该作者

系统实时监视

闲麻烦的用户可以考虑买个网管软件 ,方便又简单 而且功能多多  ……
推荐    SITEVIEW    超级简单……

论坛徽章:
0
4 [报告]
发表于 2002-11-26 12:05 |只看该作者

系统实时监视

Openview功能更强大~~~
:p

论坛徽章:
0
5 [报告]
发表于 2002-11-26 12:27 |只看该作者

系统实时监视

TOVOLI和UNI-CENTER比OPENVIEW功能强大的多了,呵呵,模块比OPENVIEW多很多
只要你买的起

论坛徽章:
0
6 [报告]
发表于 2002-11-28 13:11 |只看该作者

系统实时监视

是在是高手!

论坛徽章:
0
7 [报告]
发表于 2003-03-08 10:07 |只看该作者

系统实时监视

open view能否监控到应用层呢?

论坛徽章:
0
8 [报告]
发表于 2003-03-08 12:29 |只看该作者

系统实时监视

可以在程序中内嵌 opcmsg 语句, opcmsg 其实就是一个固定格式的语句,当一些事件发生时该语句就会被执行向VPO发出某些事先定义的一些信息,我只在Shell Script中使用过该语句,但也可以嵌入一些C或其他语言写的程序中,可能是通过提供API函数来实现的,这我就不是太在行了。

如果是数据库的话,可以用HP Openview Smart Plug in for Database来与VPO集成。

论坛徽章:
0
9 [报告]
发表于 2003-03-08 20:59 |只看该作者

系统实时监视

谢谢!在应用中提供snmp协议是不是一种较为通用的方法?

论坛徽章:
0
10 [报告]
发表于 2003-09-14 22:25 |只看该作者

系统实时监视

楼主果然厉害,如果用EMS或许会简单得多。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP