作如下假设,我有四台服务器:
服务器A,IP为A.A.A.A,操作系统为Solris8 for x86。
服务器B,IP为B.B.B.B,操作系统为Solaris8 for Sparc。
服务器C,IP为C.C.C.C,操作系统为FreeBSD 4.2-RELEASE。
服务器D,IP为D.D.D.D,操作系统为FreeBSD 4.2-RELEASE。
现在想用服务器A监控服务器B,每隔5分钟采集数据一次。用服务器C监控服务器B,每隔10分钟采集数据一次。同时用服务器C监控服务器B,每个15分钟采集数据一次
在服务器A上安装monitor-2.01.solaris.x86。安装在/home/svrA/monitor路径下
在服务器B上安装miner-2.0.solaris.sparc。安装在/home/svrB/miner路径下
在服务器C上安装monitor-2.01.freebsd。安装在/home/svrC/monitor路径下
在服务器D上安装miner-2.0.freebsd。安装在/home/svrD/miner路径下
服务器B上的miner.cfg应作如下设置
# This is server B’s miner.cfg
ALLOW=A.A.A.A,C.C.C.C
# server B’s miner.cfg end
服务器D上的miner.cfg作如下设置
# This is server D’s miner.cfg
ALLOW=C.C.C.C
# server D’s miner.cfg end
服务器A上的main.cfg应作如下设置
# This is monitor A ‘s main.cfg
< GROUP
ID=1
NAME=groupB
CONFIG=conf/groupB.cfg
TIME=5
< /GROUP
# monitor A’s main.cfg end
服务器A上的/home/svrA/monitor/conf/groupB.cfg作如下配置
# This is groupB.cfg
< GLOBAL
EMAIL= your email
< /GLOBAL
< HOST
MACHINEID= [1]
IP= [B.B.B.B]
CMD_UPTIME= [alarm:le:30]
CMD_TIME= [watch]
CMD_LOAD1M= [watch]
CMD_LOAD5M= [alarm:GE:3]
CMD_LOAD15M= [watch]
CMD_IDLE= [watch]
CMD_USER= [alarm:gt:50%]
CMD_KERNEL= [alarm:gt:50%]
CMD_IO= [watch]
CMD_SWAP= [alarm:gt:30%]
CMD_MEMRATIO= [watch]
CMD_SWAPRATIO= [alarm:GT:70%]
CMD_TOTALPROC= [alarm:GE:300]
CMD_NET= [alarm:gt:10000]
CMD_ESTAB= [alarm:gt:100]
CMD_SYNC= [watch]
CMD_PCPU= [alarm:GT:30%:java][alarm:GT:10%:httpd][alarm:GT:10%:mysqld]
CMD_PSIZE= [alarm:GT:100000:java][alarm:gt:5000:httpd][alarm:gt:50000:mysqld]
CMD_NPROC= [alarm:gt:500:httpd][alarm:ne:1:mysqld]
CMD_DISK= [alarm:gt:70%:/home]
CMD_INODE= [alarm:gt:70%:/home]
CMD_PORT= [telnet:23][ftp:21][http:80][mysql:3306]
#CMD_USER0= [alarm:ne:0]
#CMD_USER1= [watch]
#CMD_USER2= [watch]
#CMD_USER3= [watch]
#CMD_USER4= [alarm:ne:0]
< /HOST
# groupB.cfg end
服务器C上的main.cfg应作如下设置
# This is monitor C ‘s main.cfg
< GROUP
ID=1
NAME=groupB
CONFIG=conf/groupB.cfg
TIME=10
< /GROUP
< GROUP
ID=2
NAME=groupD
CONFIG=conf/groupD.cfg
TIME=15
< /GROUP
# monitor C ‘s main.cfg end
服务器C上的/home/svrC/monitor/conf/groupB.cfg作如下配置
# This is groupB.cfg
< GLOBAL
EMAIL= your email
< /GLOBAL
< HOST
MACHINEID= [1]
IP= [C.C.C.C]
CMD…
CMD…
CMD…
.
.
.
.
.
.
< /HOST
# groupB.cfg end
服务器C上的/home/svrC/monitor/conf/groupD.cfg作如下配置
# This is groupD.cfg
< GLOBAL
EMAIL= your email
< /GLOBAL
< HOST
MACHINEID= [1]
IP= [C.C.C.C]
CMD…
CMD…
CMD…
.
.
.
.
.
.
< /HOST
# groupD.cfg end
监控系统安装说明
被监控服务器的安装和启动:
将miner-2.0.tar ftp到要被监控的服务器上。
在/home下解开miner-2.0.tar
进入miner-2.0修改conf/miner.cfg文件
su到root用户
执行/home/miner-2.0/miner -start 启动
使用ps -ef | grep miner命令观察,如发现有两个/home/miner-2.0/miner -start进程,说明启动成功。
停掉该进程使用/home/miner-2.0/miner -stop
一、主监控服务器安装启动过程
自动扫描
将monitor-2.0.tar ftp到主监控服务器
在/home下解开
进入/home/monitor-2.0/conf,修改main.cfg,正确设置组配置
正确编写组配置文件。
su到root用户
执行/home/monitor-2.0/monitor启动
使用ps -ef | grep monitor命令观察,如发现monitor进程的数目为组的数目+1,则启动正常。(如,在main.cfg中一共设置了4个组,则monitor的数目为4+1=5)
手动扫描
使用doscan命令手动扫描,命令参数为
doscan -f [-s -m -a -g -k -p -d]
-f :指定某一组的配置文件(必须要有)
-s 扫描类型
none: 不扫描任何指标
all: 定义指标+基本指标
base: 基本指标
normal: 定义 指标
缺省值为normal
-m 报警信息类型
short: 紧凑型报警信息
debug: 详细型报警信息
缺省值为short
-a 是否报警
none: 不发送报警信息
email: 邮件报警
mobile: 手机短信报警
all: 邮件+手机短信报警
缺省值为all
-g 组名称
-d debug方式运行
true: 以debug方式运行,将结果大印到屏幕
false: 不打印结果到屏幕
缺省值为false
-k 匹配关键字
-p 匹配IP
监控系统自定义模块的配置方法:
Server A,IP为1.1.1.1 上面安装了monitor,安装路径为/home/monitor
Server B,IP为2.2.2.2 上面安装了miner,安装路径为/home/miner
假设服务器B放在ServerB.cfg这个组的配置文件中
现在B上有一个自定义模块,使用perl编写的一个程序
myproc.pl
#!/usr/local/bin/perl
print "0";
该程序存放在Server B的/home/miner/user下
并且保证奇权限为 -rwxr-xr-x
在Server B上的/home/miner/conf/miner.cfg应如下配置
ALLOW=1.1.1.1 设置IP允许
CMD_USER0= user/myproc.pl 定义自定义模块位置
在Server A上的/home/monitor/conf/ServerB.cfg如下
< GLOBAL
email=xxxx@xxx.com
< /GLOBAL
< HOST
IP= 2.2.2.2
.
.
.
.
CMD_USER0= [alarm:eq:0] 自定义模块0如果输出的结果为0则报警
< /HOST
solaris安装SMTP Server
从软件磁带中,得到sendmail-8.8.8-for-solaris2.5.1.tar.Z软件包,放到/tmp下。
#zcat sendmail-8.8.8-for-solaris2.5.1.tar.Z | tar xvf -
#cd sendmail-8.8.8 ; ./install
#rm /tmp/sendmail-8.8.8-for-solaris2.5.1.tar.Z
注:有时根据情况,需要修改/etc/mail/sendmail.cf文件内容。在配置更改后,必须杀死系统中所有的sendmail进程,重新启动sendmail。
# ps -ef | grep sendmail | awk ‘{print $2}’ | xargs -l kill -9
# /usr/lib/sendmail -q1h -bd
测试sendmail
#telnet 0 25 (server正常可以看到sendmail的信息)
#mailx -v root@localhost <
/etc/hosts (root应收到内容为hosts文件的mail)
附:限制接收MAIL的几种方式
1、对主机进行限制:使用TCP_WRAPPER对指定主机的MAIL进行限制,同时SENDMAIL进程必须由INETD来控制,加入一行
smtp stream tcp nowait root /usr/local/security/tcp_wrapper/bin/tcpd
/usr/lib/sendmail -bs
同时,单独启动下面进程:
# /usr/lib/sendmail -q1h
修改/etc/rc2.d/S88sendmail文件禁止主机启动时以后台方式启动sendmail进程,将其改为/usr/lib/sendmail -q1h
对SUBJECT或FROM进行限制:A、修改sendmail原程序,在sendmail进程会话期间,根据SUBJECT内容来决定是否收MAIL;B、通个在后台运行SHELL程序,对用户的MAIL BOX进行分析,删除不需要的邮件。
3、通过TIS来实现对MAIL的限制:首先修改/etc/inetd.conf文件,增加一行:
smtp stream tcp nowait root /usr/local/tis/etc/netacl smap
然后在/etc/rc3.d/S9