当前位置:首页 » 网页前端 » 告警脚本目录
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

告警脚本目录

发布时间: 2022-09-21 21:10:45

A. 如何实现zabbix报警邮件中可以显示ip地址

说明:

Zabbix监控服务端、客户端都已经部署完成,被监控主机已经添加,Zabiix监控运行正常。

实现目的:

在Zabbix服务端设置邮件报警,当被监控主机宕机或者达到触发器预设值时,会自动发送报警邮件到指定邮箱。

具体操作:

以下操作在Zabbix监控服务端进行

备注:Zabbix监控服务端

操作系统:CentOS

主机名:zabbix.osyunwei.com

邮件报警有两种情况:

1、Zabbix服务端只是单纯的发送报警邮件到指定邮箱,发送报警邮件的这个邮箱账号是Zabbix服务端的本地邮箱账号(例如:[email protected]),只能发送,不能接收外部邮件。

2、使用一个可以在互联网上正常收发邮件的邮箱账号(例如:[email protected]),通过在Zabbix服务端中设置,使其能够发送报警邮件到指定邮箱。

第一种:使用Zabbix服务端本地邮箱账号发送邮件

一、安装sendmail或者postfix

yum install sendmail #安装

service sendmail start #启动

chkconfig sendmail on #设置开机启动

yum install postfix

service postfix start

chkconfig postfix on

CentOS 5.x 默认已经安装好sendmail

CentOS 6.x 默认已经安装好postfix

sendmail和postfix只需要安装一个即可并开启服务即可。

二、安装邮件发送工具mailx

yum install mailx #安装

CentOS 5.x
编译安装mailx,直接yum安装的mailx版本太旧,使用外部邮件发送会有问题。

yum remove mailx #卸载系统自带的旧版mailx

下载mailx:

http://nchc.dl.sourceforge.net/project/heirloom/heirloom-mailx/12.4/mailx-12.4.tar.bz2

tar jxvf mailx-12.4.tar.bz2 #解压

cd mailx-12.4 #进入目录

make #编译

make install UCBINSTALL=/usr/bin/install #安装

ln -s /usr/local/bin/mailx /bin/mail #创建mailx到mail的软连接

ln -s /etc/nail.rc /etc/mail.rc #创建mailx配置文件软连接

whereis mailx #查看安装路径

mailx -V #查看版本信息

echo "zabbix test mail" |mail -s "zabbix"
[email protected]

#测试发送邮件,标题zabbix,邮件内容:zabbix test
mail,发送到的邮箱:[email protected]

三、配置Zabbix服务端邮件报警

1、打开Zabbix

管理-示警媒介类型-Email

名称:Email

类型:电子邮件

SMTP服务器:zabbix.sa.huanqiu.com

SMTP HELO:zabbix.sa.huanqiu.com

SMTP电邮:[email protected]

已经用:勾选

存档

备注:zabbix.sa.huanqiu.com为Zabbix监控端主机名称,建议修改,否则使用默认的localhost.localdomain发送邮件会被当做垃圾邮件拦截。

2、设置Zabbix用户报警邮箱地址

组态-用户-Admin (Zabbix Administrator)

切换到示警媒介

添加

类型:Email

收件人:[email protected]

其他默认即可,也可以根据需要设置

状态:已启用

存档

3、设置Zabbix触发报警的动作

组态-动作-创建动作

名称:Action-Email

默认接收人:故障{TRIGGER.STATUS},服务器:{HOSTNAME1}发生:
{TRIGGER.NAME}故障!

默认信息:

告警主机:{HOSTNAME1}

告警时间:{EVENT.DATE} {EVENT.TIME}

告警等级:{TRIGGER.SEVERITY}

告警信息: {TRIGGER.NAME}

告警项目:{TRIGGER.KEY1}

问题详情:{ITEM.NAME}:{ITEM.VALUE}

当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}

事件ID:{EVENT.ID}

恢复信息:打钩

恢复主旨:恢复{TRIGGER.STATUS}, 服务器:{HOSTNAME1}:
{TRIGGER.NAME}已恢复!

恢复信息:

告警主机:{HOSTNAME1}

告警时间:{EVENT.DATE} {EVENT.TIME}

告警等级:{TRIGGER.SEVERITY}

告警信息: {TRIGGER.NAME}

告警项目:{TRIGGER.KEY1}

问题详情:{ITEM.NAME}:{ITEM.VALUE}

当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}

事件ID:{EVENT.ID}

已启用:打钩

切换到操作选项

新的

操作类型:送出信息

送到用户:添加

默认信息:打钩

用户:勾选Admin

选择

仅送到:Email

存档

四、测试Zabbix报警

关闭Zabbix客户端服务

service zabbix_agentd stop

查看[email protected]邮箱,会收到报警邮件

再开启Zabbix客户端服务

service zabbix_agentd start

查看[email protected]邮箱,会收到恢复邮件

使用Zabbix服务端本地邮箱账号发送邮件设置完成。

第二种:使用外部邮箱账号发送报警邮件设置

一、关闭sendmail或者postfix

service sendmail stop #关闭

chkconfig sendmail off #禁止开机启动

service postfix stop

chkconfig postfix off

备注:

使用外部邮箱账号时,不需要启动sendmail或者postfix

如果在sendmail或者postfix启动的同时使用外部邮箱发送报警邮件,首先会读取外部邮箱

配置信息。

二、安装邮件发送工具mailx

yum install mailx #安装

CentOS 5.x 编译安装mailx,直接yum安装的mailx版本太旧,使用外部邮件发送会有问题。

yum remove mailx #卸载系统自带的旧版mailx

下载mailx:

http://nchc.dl.sourceforge.net/project/heirloom/heirloom-mailx/12.4/mailx-12.4.tar.bz2

tar jxvf mailx-12.4.tar.bz2 #解压

cd mailx-12.4 #进入目录

make #编译

make install UCBINSTALL=/usr/bin/install #安装

ln -s /usr/local/bin/mailx /bin/mail #创建mailx到mail的软连接

ln -s /etc/nail.rc /etc/mail.rc #创建mailx配置文件软连接

whereis mailx #查看安装路径

mailx -V #查看版本信息

三、配置Zabbix服务端外部邮箱

vi /etc/mail.rc #编辑,添加以下信息

set [email protected] smtp=smtp.163.com

set [email protected]
smtp-auth-password=123456

set smtp-auth=login

:wq! #保存退出

echo "zabbix test mail" |mail -s "zabbix" [email protected]

#测试发送邮件,标题zabbix,邮件内容:zabbix test
mail,发送到的邮箱:[email protected]

#这时候,邮箱[email protected]会收到来自[email protected]的测试邮件

四、配置Zabbix服务端邮件报警

1、打开Zabbix

管理-示警媒介类型-创建媒体类型

名称:Sendmail

类型:脚本

脚本名称:sendmail.sh

已启用:勾选

存档

2、设置Zabbix用户报警邮箱地址

组态-用户-Admin (Zabbix Administrator)

切换到示警媒介-添加

类型:Sendmail

收件人:[email protected]

其他默认即可,也可

以根据需要设置

状态:已启用

存档

3、设置Zabbix触发报警的动作

组态-动作-创建动作

名称:Action-Email

默认接收人:故障{TRIGGER.STATUS},服务器:{HOSTNAME1}发生:
{TRIGGER.NAME}故障!

默认信息:

告警主机:{HOSTNAME1}

告警时间:{EVENT.DATE} {EVENT.TIME}

告警等级:{TRIGGER.SEVERITY}

告警信息: {TRIGGER.NAME}

告警项目:{TRIGGER.KEY1}

问题详情:{ITEM.NAME}:{ITEM.VALUE}

当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}

事件ID:{EVENT.ID}

恢复信息:打钩

恢复主旨:恢复{TRIGGER.STATUS}, 服务器:{HOSTNAME1}:
{TRIGGER.NAME}已恢复!

恢复信息:

告警主机:{HOSTNAME1}

告警时间:{EVENT.DATE} {EVENT.TIME}

告警等级:{TRIGGER.SEVERITY}

告警信息: {TRIGGER.NAME}

告警项目:{TRIGGER.KEY1}

问题详情:{ITEM.NAME}:{ITEM.VALUE}

当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}

事件ID:{EVENT.ID}

已启用:打钩

切换到操作选项

新的

操作类型:送出信息

送到用户:添加

默认信息:打钩

选择用户:Admin

选择

仅送到:Sendmail

存档

4、添加Zabbix服务端邮件发送脚本

cd /usr/local/zabbix/share/zabbix/alertscripts #进入脚本存放目录

vi sendmail.sh #编辑,添加以下代码

#!/bin/sh

echo "$3" | mail -s "$2" $1

:wq! #保存退出

chown zabbix.zabbix
/usr/local/zabbix/share/zabbix/alertscripts/sendmail.sh

#设置脚本所有者为zabbix用户

chmod +x /usr/local/zabbix/share/zabbix/alertscripts/sendmail.sh

#设置脚本执行权限

五、测试Zabbix报警

关闭Zabbix客户端服务

service zabbix_agentd stop

查看[email protected]邮箱,会收到报警邮件

再开启Zabbix客户端服务

service zabbix_agentd start

查看[email protected]邮箱,会收到恢复邮件

使用外部邮箱账号发送报警邮件设置完成。

至此,Zabbix邮件报警设置完成。

B. 求助zabbix 短信告警脚本

2.填上发短信脚本的名称 zabbix 实战短信报警之调用短信接口3.注意zabbix_server.conf里面的配置,指定脚本放的位置及赋予脚本执行和属主zabbix

C. 请问网上常说的mon是什么意思

Mon的中文意思是:星期一(Monday)。

星期的英文及缩写如下:

星期日:Sunday(Sun.)

星期二:Tuesday(Tues.)

星期三:Wednesday(Wed.)

星期四:Thursday(Thur./Thurs.)

星期五:Friday(Fri.)

星期六:Saturday(Sat.)

历史起源

星期作为时间周期最早起源于巴比伦。世界各国通用一星期七天的制度最早由罗马皇帝君士坦丁大帝制定,他在公元321年3月7日正式宣布7天为一周,这个制度一直沿用至今。而在中国,明末清初基督教在中国传播时,星期才逐渐被人们所知晓。民国时期规定使用公历之后,星期才逐步普及起来。

D. zabbix监控怎么添加报警人

zabbix监控添加主机,报警、监控的设置
根据使用zabbix这么久的经验,总结了一套zabbix比较实用的添加主机、监控报警的使用流程,供大家参考。
一:添加处理方法,就是如何报警
打开zabbix的管理------处理方法----create media type:

我用的是脚本发邮件的方式来报警的,脚本名字为mail.py。指的一提的是脚本存放位置,我的脚本是放在/usr/local/zabbix/bin/目录下面,在这里不写目录的据对路径,直接写脚本名字,他的路径设置是在zabbix服务器端的配置文件中设置的,在zabbix_server.conf配置文件中设置:AlertScriptsPath=/usr/local/zabbix/bin/
二:添加zabbix用户和组,设置其邮箱地址等信息
1:打开zabbix的管理------用户---选择用户组下拉----create user group:

填写个组名,设置需要的权限直接保存就成,其他的不用填写和选择。
2:打开zabbix的管理------用户---选择用户下拉----create user:
填写用户信息

3:添加报警介质,就是报警方式,因为是报警,【信息】那项就不用勾选,信息一般就是服务器信息发生变化时报警,这个一般没有什么意义,所以不勾选,不过你也可以选择,根据个人喜好。类型的话就是选择处理发放中的报警介质,选择你添加的。然后可以保存信息,完成添加用户(Permissions那项没有不填写)。

三:报警触发器触发的动作设置
当监控项中的触发器达到你设置的报警值之后,需要执行操作来发送邮件等动作。具体设置:
1:打开zabbix的系统配置---操作---- 选择事件源为触发器------create action:

2:触发条件设置:

3:详细操作设置,即满足触发条件之后执行什么动作,这里一般设置为发邮件之类的,设置收邮件的用户(建议每个组对应一个用户,这样发邮件的时候容易设置发送对象):

四:zabbix中常用到的几个key
Zabbix的key可以理解为zabbix的命令,执行这个key可以得到相应的结果。
1:监控端口的:net.tcp.port[,3306]
/usr/local/zabbix/bin/ -s192.168.8.120 -knet.tcp.port[,3306] 返回1为192.168.8.120的端口3306存在,0为不存在
2:监控进程的:proc.num[mysqld]
/usr/local/zabbix/bin/zabbix_get -s192.168.8.120 -kproc.num[mysqld] 返回值为192.168.8.120中mysqld的进程数量
/usr/local/zabbix/bin/zabbix_get -s192.168.8.120 -kproc.num[] 返回值为192.168.8.120中所有的进程数量
3:查看CPU核数的:system.cpu.num 返回值为服务器CPU的核数
4:查看系统的系统启动时间和当前时间:system.boottime、system.localtime 返回值为系统启动时间和当前时间,为时间戳格式
5:查看系统的简单信息:system.uname 返回值为192.168.8.120的系统信息,类似于linux系统的uname -a命令
6:查看windowns系统当前网卡的进出流量:net.if.out[{HOST.NAME},bytes]、net.if.in[{HOST.NAME},bytes]和linux系统的key:net.if.out[eth0,bytes]、net.if.in[eth0,bytes]一样
/usr/local/zabbix/bin/zabbix_get -s192.168.8.120 -knet.if.in[192.168.8.120,bytes] 返回值为IP为192.168.8.120的进流量,此值为计数值,单位为bytes,减去上次取得值,除以时间间隔为此段时间内的平均流量
/usr/local/zabbix/bin/zabbix_get -s192.168.8.120 -knet.if.out[192.168.8.120,bytes] 返回值为IP为192.168.8.120的出流量,此值为计数值,单位为bytes,减去上次取得值,除以时间间隔为此段时间内的平均流量
7:查看系统内存大小:vm.memory.size[total],返回值单位bytes
8:查看文件的大小: vfs.file.size[file] 如: vfs.file.size[/var/log/syslog] 返回的是/var/log/syslog的大小,单位是:bytes
9:查看文件是否存在:vfs.file.exists[file] 文件如果存在返回0,不存在返回1
10:查看文件的MD5:vfs.file.md5sum[file]查看小文件的MD5,返回为MD5值(好像只有2.0以上的版本有这个key)
11:自动发现网卡并监控流量和自动发现分区及分区挂载情况的两个key:net.if.discovery,vfs.fs.discovery,windows和linux监控模板中都有这模板(2.0以上版本),应用即可
以上是常用的key,其实监控服务器无非就是内存、硬盘占用、CPU负载、流量、服务器和端口等情况。如果要监控其他的可以自定义key来实现,本人喜欢自定义key,写个脚本来返回,得到自己想要的监控结果,zabbix在这块做的非常好,扩展性很强,支持各种脚本来实现自定义的key。
要启用自定义key,需要在客户端的配置文件中启用UnsafeUserParameters=1参数,然后在配置文件的最下面来定义key,如:
UserParameter=free.disk,/usr/local/zabbix/bin/disk.py
free.disk为key的名字,/usr/local/zabbix/bin/disk.py为服务器端调用free.disk这个key时执行的脚本,其结果就是free.disk的返回值。脚本可以是任何可以运行的脚本语言。
五:创建监控模板和监控项
其实在zabbix服务器端安装完成之后,就有许多自带的监控模板,基本上可以满足大众化的监控需求,不过其中有许多是没有必要的监控项或是自己不感兴趣的,比较冗余,所以要做好监控的话,还是自定义模板和监控项,这个监控模板可以修改zabbix系统自带的,也可以自己创建。以下为自己创建监控模板。
1:创建监控模板:
打开zabbix的系统配置---模板----create template:
填写模板名字和模板所在组保存即可。

E. 如何把报警记录的消息文本输出到静态文本或IO域中

可以用脚本读取报警记录,然后写入到静态文本或IO域中:假如需要读取报警记录中的报警内容和报警点分别读取到变量tag1和tag2中,参考脚本如下:
Dim cc1
Set cc1=CreateObject("adodb.connection")
Dim snam1,Rtname
Dim ServerName1
Set ServerName1 = HMIRuntime.Tags("@ServerName")
ServerName1.Read
Dim DatasourceNameRT
Set DatasourceNameRT = HMIRuntime.Tags("@DatasourceNameRT")
DatasourceNameRT.Read
Rtname=DatasourceNameRT.Value
snam1=ServerName1.Value
strcon="provider=WinCCOLEDBProvider.1;catalog=" & Rtname & ";data source=" & snam1 & "\WinCC"
cc1.ConnectionString=strcon
cc1.CursorLocation=3
cc1.open
Dim sqlstr
Dim rst
Dim t1
Set rst=CreateObject("adodb.recordset")
sqlstr="ALARMVIEW:Select * from algviewcht WHERE DateTime >''2013-12-1 12:00:00'' and DateTime <''2013-12-1 12:10:00'' "
Set t1=CreateObject("adodb.command")
t1.commandtype=1
Set t1.activeconnection=cc1
t1.commandtext=sqlstr
Set rst=t1.execute
rst.movefirst
''''rst.fields("text1").value ‘’对应报警内容
''''rst.fields("text2").value ‘’对应报警点
'' 报警内容写入变量中
dim tag1,tag2
set tag1=hmiruntime.tags("tag1")
set tag2=hmiruntime.tags("tag1")
tag1.read
tag1.write rst.fields("text1").value
tag2.read
rag2.write rst.fields("text2").value
rst.close
Set rst=Nothing
cc1.close
Set cc1=Nothing
Set ServerName1=Nothing
Set printgrid=Nothing
Set t1=Nothing
set tag1=nothing
set tag2=nothing

以上脚本是查询了13年12月1号12点0分到12点10分这十分钟内的报警,然后选取第一条报警内容读取到变量中

F. zabbix 告警等级怎么设置

zabbix的告警通知非常灵活,支持的通知类型有Email、Jabber、sms、script 。其在设备需要修护时,同样可以提供同nagios 一样的设备维护期间,暂停告警的功能有,而且其相对于nagios 更加灵活。本篇就针对zabbix的告警和设备维护功能进行下说明。 一、media types 告警通知 本篇以脚本通知为例进行说明 1、配置AlertScriptsPath # vim /etc/zabbix/zabbix_server.conf 找到# AlertScriptsPath=${datadir}/zabbix/alertscripts 行,增加如下内容 AlertScriptsPath=/etc/zabbix/alertscripts 配置完成后,需要重启zabbix_server服务生效,在后面media type 写入的脚本名称就会从上面的配置目录中查找并执行。 2、创建media type 步骤为:登录 zabbix web 页面------Administration--------Media types--------Create Media Type(右上角) ,如下图: 配置完成后,save保存即可。 3、创建Action 步骤为:登录 zabbix web 页面---- Configuration ---- Actions ---- Create action , 如下图 subject为发送主题,message为发送内容(通过message内容的自定义,可以例如在告警时,将其他相关信息也进行通知,可以从侧面了解整个主机的运行情况---某次面试时面试官曾提过的需求),这两者的内容都可以很方便的进行更改。勾选了Recovery message 选项,会在监控项恢复时也会给一个恢复的提示。 condeitions 选项中设置的是触发通知的条件,默认情况下只有A、B两项 ,这里可以设置触发级别、主机组、主机、触发值、应用等 。举例说明下: 1、可以根据告警级别进行通知,如severity 级别大于等于average时,通知OPS运维人员,级别为Disater时通知部门经理或者BOSS (这需要配置两个action); 2、也可以根据时间进行定义,如只在工作时间进行告警通知; 3、如果你喜欢的话,也可以指定不同主机组通知到不同的人; 而且所有条件之间的关系可以是AND或者OR ,默认情况下都是AND,即所有条件都满足时,触发通知。 注:个别主机,如DB主机,晚上有备份任务导致晚上某段时间过载(同时又不是所有主机都这样,又不想增大触发条件的话),可以在configuation ---hosts 里的items 选项里配置通知的时间范围,那里也有 time period 配置选项(从另一方面也反映了zabbix的灵活,有宏观调控,也有微观调控,适用性很强) 。不过要尽可能的都在actions 里进行配置,因为这一般查看具体条件都是在这里 。 下图是action的Operations部分,该项是必填项: Operation details 是一个比较强的配置项,这里主要有三个知识点---Escalations、remote command 和 event acknowledged,其中Escalations、remote command比较重要 。 operation details 的 step部分主要和escalations 相关,在监控场景中,如果你一天收到100+的短信告警,真有一天“狼”真来了估计你也不会注意到。有了escalations功能,可以实现如下配置(需配置多条operation): 1、在单位时间内(step ration)发送的总的通知次数(to - from +1 次),并通知到相应的组或人; 2、假如条件1中设置的是1800秒内发送1-5 次给OPS运维人员,结果运维人员在该时间段未能处理;我们就可以再增加一个Operations,指定from 5 to 10 (第5到10条告警)通知给 运维经理 ;我们还可以再增加,第11-15条给BOSS ,第16-20条告警时执行一个远程命令。 escalations部分,可以参看官方文档。 第二个知识点就是Operation type部分,类型可以是send message进行通知,也可以是remote command : remote command 可以支持的操作有IPMI、Custom script、ssh、telnet、Global script (其中前两者只能在zabbix server 或 zabbix proxy上操作),该功能是相当牛B的。如,检测到一个tomcat 服务404,我们就可以利用该功能重启tomcat 服务 。 remote command部分可以查看官方页面。 第三个功能主要是为有值班人员或上班时间准备的一个功能,当设置这个条件时,如果一个告警的状态被设置为ACK ,则本次告警的后续通知就会停止 。 在一线运维人员接到告警信息时,在zabbix 的首页上,移到相应告警提示的部分,选择主机的ACK 部分 ,点选 NO ,会跳出一个message的窗口,在message里输入相关信息 ,如:误报、因什么什么原因在调试、已通知到相关责任人等 ,并点击Acknowledge 提交,此时的ACK 状态会变成YES 。本次告警也将停止不再进行。直到本次告警解决,下次再次出现同样告警时,该项又会重新变成ACK 。 Acknowledge部分,可以参看官文页面。 二、maintenance 维护 在线场景中,经常会遇到这样的情况:在线产品需要进行升级或其他操作,此时又不想将监控系统的完整告警功能进行全部关闭,只临时关闭在线升级主机的告警。这就可以使用zabbix的maintenance功能。具体配置方式如下: 创建maintenance的步骤为:登录 zabbix web 页面---- Configuration-----Maintenance ----- create maintenance period ,如下图所示: 第一选项卡配置的是任务名和一个大范围的时间值,其指定了维护所在的磊的时候段在什么范围。maintenance type 指定在维护期间是否仍进行数据搜集。 periods指定的时间段具体的维护时间段,和maintenace中的范围为包含关系。而period type指定了执行的类型,其类型有one time only 一次执行,也有按日、星期或月定期执行 ,如果是后三种方式,date项会变成具体的间隔、开始时间 。无论是何种类型,都有maintenance period length型 ,其指定了具体每次维护的持续时间,如2小时。 hosts & groups 项太多内容,就是选择某组主机或某个主机在维护期间不进行告警通知。

G. zabbix的告警脚本目录在哪

zabbix媒介类型包括mail、sms、自定义脚本,我们用的最多的还是脚本媒介,再次我们就不讲另外两个媒介了。当事件通知到脚本,会传递三个参数它,分别为$1(发送给谁) $2(标题) $3(内容)。例如发送邮件给[email protected],标题为nginx离线,内容是IP地址:1.1.1.1,nginx离线,请立即处理。

H. omnibus的插入告警信息脚本怎么写

辑判断有点小复杂,需要仔细阅读才能理解其中的思想)。最后加入crontab每分钟执行一次。

[root@SvrTest script]# cat NBmonirot

#!/bin/bash
# this script is monitor all the server healthy
# created by zhangkai @ hundsun 2010-10-10
#echo `date +%Y%m%d-%T`
WORK_DIR=/root/work/script
cd $WORK_DIR
############# 初始化记录日志文件和状态文件 ##################
if [ ! -e $WORK_DIR/Status.txt ];then
touch $WORK_DIR/Status.txt
fi
if [ ! -e $WORK_DIR/Alert.log ];then
touch $WORK_DIR/Alert.log
fi
############# 定义处理函数 ##################
function check_svr

I. type 8E是什么文件系统

Snort分析报告
1.--snort的简介
snort 是一个基于libpcap的数据包嗅探器并可以作为一个轻量级的网络入侵检测系统(
NIDS)。所谓的轻量级是指在检测时尽可能低地影响网络的正常操作,一个优秀的轻量
级的NIDS应该具备跨系统平台操作,对系统影响最小等特征并且管理员能够在短时间内
通过修改配置进行实时的安全响应,更为重要的是能够成为整体安全结构的重要成员。
Snort作为其典型范例,首先可以运行在多种操作系统平台,例如UNIX系列和Windows 9
X.(需要libpcap for Win32的支持),与很多商业产品相比,它对操作系统的依赖性比
较低。其次用户可以根据自己的需要及时在短时间内调整检测策略。就检测攻击的种类
来说,据最新数据表明(2000/12/4)snort共有21类(???)1271条检测规则,其中包括
对缓冲区溢出,端口扫描和CGI攻击等等。SNORT集成了多种告警机制来提供实时告警功
能,包括:syslog、用户指定文件、UNIXSocket、通过SMBClient使用WinPopup对Windo
ws客户端告警。 Snort的现实意义维作为开源软件填补了只有商业入侵检测系统的空白
,可以帮助中小网络的系统管理员有效地监视网络流量和检测入侵行为。

2.snort与其他工具的比较。
Snort的主要用途就是网络监视、数据包的记录和检测入侵行为,下面是与分别具有上述
两种功能的典型工具的比较。

1)--snort与tcpmp的比较
Tcpmp是最为经典的嗅探工具,主要是用于记录网络数据,网络故障的探测诊断工具。
Snort与它的最大的共同之处在于都是基于libpcap的并且支持BPF过滤机制,所以本质上
都是调用的捕获数据包的库函数,但是snort的目的不仅仅是在于记录这个数据包而是从
安全的角度考虑出发区解析它,并且tcpmp主要是分析第二层或者第三层的报文来进行
网络故障诊断,而snort则主要针对于应用层的数据进行分析从而实现检测入侵行为。除
此之外,由于tcpmp旨在快速完整地记录流量,所以它制定了特殊的输出格式,速度快
但是不易看懂,而snort就提供了更为友好的输出格式,有利于系统管理员的直接分析。

--Figure 1 - Typical Snort telnet packet display:
--------------------------------------------------------------------------
20:59:49.153313 0:10:4B:A9:66 -> 0:60:97:7:C2:8E type:0x800 len:0x7D
192.168.1.3:23 -> 192.168.1.4:1031 TCP TTL:64 TOS:0x10 DF
***PA* Seq: 0xDF4A6536 Ack: 0xB3A6FD01 Win: 0x446A
FF FA 22 03 03 E2 03 04 82 0F 07 E2 1C 08 82 04 ..".............
09 C2 1A 0A 82 7F 0B 82 15 0F 82 11 10 82 13 FF ................
F0 0D 0A 46 72 65 65 42 53 44 20 28 65 6C 72 69 ...FreeBSD (elri
63 2E 68 6F 6D 65 2E 6E 65 74 29 20 28 74 74 79 c.home.net) (tty
70 30 29 0D 0A 0D 0A p0)....
---------------------------------------------------------------------------
--Figure 2 - The same telnet packet as displayed by tcpmp:
---------------------------------------------------------------------------
20:59:49.153313 0:10:4b:d:a9:66 0:60:97:7:c2:8e 0800 125: 192.168.1.3.23 >
192.168.1.4.1031: P 76:147(71) ack 194 win 17514 (DF) [tos 0x10] (ttl 64,
id 660)
4510 006f 0294 4000 4006 b48d c0a8 0103
c0a8 0104 0017 0407 df4a 6536 b3a6 fd01
5018 446a d2ad 0000 fffa 2203 03e2 0304
820f 07e2 1c08 8204 09c2 1a0a 827f 0b82
150f 8211 1082 13ff f00d 0a46 7265 6542
5344 2028 656c 7269 632e 686f 6d65 2e6e
6574 2920 2874 7479 7030 290d 0a0d 0a
---------------------------------------------------------------------------

2)--snort与NFR的比较
根据Denmac System公司1999年11月的现有商用网络入侵检测工具的调查结果表明,NFR
的综合性能指数高于ISS公司的RealSecure和CA公司的SessionWall,所以其代表了目前
国际上的IDS的最高水准,是一个比较成熟的商业产品。Snort的许多设计思想类似于NF
R,但是在很多方面都显出不足之处,例如无法实现IP Defragmentation等功能,在探测
规则语言的格式上来说,NFR采用的是一种深层次的脚本语言,SNORT与其相比就略显单
薄。但是snort的优势就在于它是开源软件,全世界的爱好者都可以加入它的开发升级工
作中来,其前景是无法限量的。

2.--原理
snort作为一个NIDS[注:基于网络的入侵检测系统(NIDS),其工作原理为在基于共享
网络上检测原始的网络传输数据,通过分析捕获的数据包,主要工作为匹配入侵行为的
特征或者从网络活动的角度检测异常行为,进而采取入侵的预警或记录。从检测模式而
言,snort属于是误用检测(misuse detection)。[注:该方法对已知攻击的特征模式
进行匹配,包括利用工作在网卡混杂模式下的嗅探器被动地进行协议分析,以及对一系
列数据包解释分析特征。]从本质上上来说,snort是基于规则检测的入侵检测工具,即
针对每一种入侵行为,都提炼出它的特征值并按照规范写成检验规则,从而形成一个规
数据库。其次将捕获得数据包按照规则库逐一匹配,若匹配成功,则认为该入侵行为
成立。目前,snort的检测规则库主要包括了以下几类的入侵行为:
snort的结构主要分为三个部分如图n-1:

l--数据包捕获和解析子系统(Capture Packet Mechanism from link layer and the
packet decoder ):
该子系统的功能为捕获网络得传输数据并按照TCP/IP协议的不同层次将数据包进行解析
。Snort利用libpcap库函数进行采集数据, 该库函数可以为应用程序提供直接从链路层
捕获数据包的接口函数并可以设置数据包的过滤器以来捕获指定的数据。(的详细介绍
请参阅附录N)。网络数据采集和解析机制是整个NIDS实现的基础,其中最关键的是要保
证高速和低的丢包率,这不仅仅取决于软件的效率还同硬件的处理能力相关。对于解析
机制来说,能够处理数据包的类型的多样性也同样非常重要,目前,snort可以处理以太
网,令牌环以及SLIP等多种链路类型的包。

l--检测引擎(the detect engine)
检测引擎是一个NIDS实现的核心,准确性和快速性是衡量其性能的重要指标,前者主要
取决于对入侵行为特征码的提炼的精确性和规则撰写的简洁实用性,由于网络入侵检测
系统自身角色的被动性——只能被动的检测流经本网络的数据,而不能主动发送数据包
去探测,所以只有将入侵行为的特征码归结为协议的不同字段的特征值,通过检测该特
征值来决定入侵行为是否发生。后者主要取决于引擎的组织结构,是否能够快速地进行
规则匹配。

Snort采用了灵活的插件形式来组织规则库,即按照入侵行为的种类划分为相应的插件,
用户可以根据需要选取对应的插件进行检测。目前包括的插件分别如下:
每一类插件中包括了数十条的检测规则,分别代表同一类型的不同入侵行为。对于规则
的定义,snort使用了一种简单的,轻量级的规则描述语言,上述已经提及到检测的最终
行为就是检测数据包中协议的不同字段,例如端口号就是重要的入侵线索。为了更为清
楚地阐述这个问题,我们举一例说明:

攻击名称--NT IIS Showcode ASP
攻击种类--获取非法访问权限。
攻击描述--通过构造特定的URL请求可以非法阅读服务器上的其他文件http://attack
host/msadc/Samples/SELECTOR/showcode.asp?source=/msadc/Samples/../../../../.
./boot.ini
入侵特征码 --IP地址:保护网段以外的IP地址。
--协议类型:TCP
--端口:80
--TCP标志位:PUS, ACK
--数据段内容:/selector/showcode.asp
CVE ID--CAN-1999-0736
Bugtraq ID --167

分析以上的这个入侵实例,我们可以看出其实检测该入侵行为的关键是判断端口号和数
据段内容,IP地址、协议类型和TCP标志位只是辅助的特征码。但是当开始分析原始数据
包时,是否应该就直接匹配端口和数据段的内容?无疑针对该入侵行为上述做法的匹配
效率是最高的。但是实际上这样做会降低整体检测的效率,因为入侵系统要对庞大的网
络数据逐一进行检测,应该遵循先检测所有入侵行为的共同特征其次才是个体特征的原
则,例如如果首先检测IP地址,一旦发现并不属于检测范围之内,就立即检测下一个数
据包而并非继续检测该包的其他字段。这样既保证了检测的快速性,又提高了报警的实
时性。

Snort正是按照上述原则定义规则的,将检测规则划分成两个部分:规则头和规则选项。
前者是所有规则共有的包括IP地址、协议类型、端口号,后者根据不同规则包括相应的
字段关键字,例如TCP的标志位或者窗口大小等。检测规则除了包括上述的关于“要检测
什么”还应该定义“检测到了该做什么”,snort定义了三种处理方式——alert(发送报
警信息),log(记录该数据包)和pass(忽略该数据包)并定义为规则的第一个匹配关键
字,这样设计的目的非常简单,旨在在程序中组织整个的规则库,即将所有的规则按照
处理方式组织成三个链表以用于更快速准确地进行匹配,体现了设计者的巧妙之处。
下面我们来举一实例来具体说明规则的定义:
alert tcp !$HOME_NET any -> $HOME_NET 80 (msg:"CAN-1999-0736 - IIS-showcode"
;flagsA; content:"/selector/showcode.asp"; nocase

该实例正式针对表(N)中所示的入侵行为所定义的检测规则,通过该例可以看出snort
的规则语言简明实用,基本格式为:
规则动作 协议类型 IP地址 端口号 -> 协议类型 IP地址 端口号 (规则选项)
源发送方 目的接受方

关于规则的具体书写规范不再赘述,下面就其关键和特别之处加以说明:

1.-- 变量和操作符
snort作为一个NIDS,主要的目的就是能够保护本网段即及时发现外部网对内部网的攻击
,所以规则中的IP地址的定义主要是针对外部网和内部网地址两种。由此snort引入了变
量的机制,即可以在规则中用变量表示IP地址字段,用户在运行前可根据实际的子网地
址来定义该变量,这样在解析检测规则时snort会自动替换变量值,增加了规则的灵活性
,不过只适应于像IP地址这种基本所有规则都具有同一值。
为了更为准确地表达规则和精确地表示检测范围,snort还定义了三类操作符:
l--否定操作符——“ ! ”
用于表示snort还增加了否定符“!”来区分内部网和外部网。例如例n的!$HOME_NET。

l--方向操作符——“->”和”<>”
用于表示传输的方向,分别表示单向和双向传输。
l--端口描述符——“ : ”
用于表示端口的范围。例如: “600:“表示大于600的端口号。

2. 规则选项
规则选项作为检测时的重要标准组成了snort入侵检测引擎的核心,既易用又非常灵活强
大。首先其灵活性是指可以根据不同的不同行为制定相应的检测选项内容,其次其强大
性是指不仅检测具有一定的广度和深度并且定义了检测到时该做什么 。snort中有15个
规则选项关键字,其中有三个关键字是做为检测到后的回应:
msg - 在报警和包日志中打印一个消息
logto - 把包记录到用户指定的文件中而不是记录到标准输出
resp - 主动反应(切断连接等)
Resp关键字可以对匹配一条Snort规则的流量进行灵活的反应(flexible reponse
-FlexResp)。FlexResp代码允许Snort主动地关闭恶意的连接。该模块合法的参数如下

rst_snd - 向发送方发送TCP-RST数据包
rst_rcv - 向接受方发送TCP-RST数据包
rst_all - 向收发双方发送TCP_RST数据包
icmp_net - 向发送方发送ICMP_NET_UNREACH
icmp_host - 向发送方发送ICMP_HOST_UNREACH
icmp_port - 向发送方发送ICMP_PORT_UNREACH
icmp_all - 向发送方发送上述所有的ICMP数据包。

作为入侵检测系统,理论上只需要检测入侵,并不需要去回应入侵行为的。所以该功能
应该是作为SNORT的附加功能,但是值得一提的是,发送RST和ICMP UNREACH数据包向攻
击方可以暂缓其对目标主机的攻击,我们所研究的一个工具叫做dsniff中的tcpkill就是
利用这个原理进行切断非法连接,但是对于一般的拒绝服务攻击,该方法的作用就不甚
明显了。对于SNORT来说,实现该功能必然会降低检测的的效率尤其是在网络流量特别大
的时候。

另外12中关键字都是针对协议中的不同字段设置的:
关键字--检测内容--主要针对的攻击行为
ttl--检测ip头的ttl的值 --用于对traceroute探测的检测
id--检测ip头的分片id值--黑客的固定攻击,例如设置为31337
dsize--检测包的净荷尺寸的值--缓冲区溢出攻击。
content--在包的净荷中搜索指定的样式--最为重要的一个选项,用于在数据包的数据段
中搜索指定的内容并根据数据触发响应,可以搜索包含混合的文本和二进制数据。并设
置了三个辅助关键字:offset,dsize,nocase
Flags--检测tcp flags的值--非法端口扫描或者其他非法探测主机操作系统类型等。
Seq--检测tcp顺序号的值--检测主机发送的序列号集是否是固定的集合。入侵者可以利
用该值冒充合法用户向被入侵者发送数据,伪装正常的通信以窃取信息或者其他非法活
动。
Ack--检测tcp应答(acknowledgement)的值--Nmap的TCP PING会设置该项的值为0,从而
判断可能正在用Nmap进行非法扫描。
Itype--检测icmp type的值--拒绝服务攻击。注:只作为其中的一种特征。
Icode--检测icmp code的值--可疑的流量。
Session--记录指定会话的应用层信息的内容--记录在TCP会话中的会话数据。
Icmp_id--检测ICMP ECHO ID的值--
Icmp_seq--检测ICMP ECHO 顺序号的值--
Ipoption--监视IP option的特定代码--
Rpc--监视特定应用/进程调用的RPC服务--检测非法的RPC请求,查看RPC请求,并自动将
应用(Application),过程(procere)和程序版本(program version)译码,如果
所有三个值都匹配的话,该规则就显示成功。

3.预处理程序
预处理程序从Snort版本1.5开始引入,其代码在检测引擎被调用之前先被运行,为检测
做铺垫,从而提高检测的准确性和速度。而且预处理机制采用插件形式,用户和程序员
能够将模块化的插件方便地融入Snort之中。目前snort现有的预处理程序模块有以下三
种:
l--Minfrag
Minfrag预处理程序检查给定尺寸限制的分片数据包。数据包被分片通常是由源和目的主
机之间的路由器引起的。一般说来,商业网络设备不会产生小于512字节的分片包。可以
利用这个事实,来监控含有小分片的流量。
l--HTTP Decode
HTTP Decode用于处理HTTP URI字符串,将串中的数据转化为可读的ASCII字串,用于检
测HTTP的数据信息对付隐蔽的WebURL扫描器和恶意的入侵者。
l--Portscan Detector
Snort Portscan预处理程序的用处:
向标准记录设备中记录从一个源IP地址来的端口扫描的开始和结束。
如果指定了一个记录文件,在记录扫描类型的同时也记录目的IP地址和端口。端口扫描
定义为在时间T(秒)之内向超过P个端口进行TCP连接尝试,或者在时间T(秒)之内向
超过P个端口发送UDP数据包。端口扫描可以是对任一IP地址的多个端口,也可以是对多
个IP地址的同一端口进行。现在这个版本可以处理一对一和一对多方式的端口扫描,下
一个完全版本将可以处理分布式的端口扫描(多对一或多对多)。端口扫描也包括单一
的秘密扫描(stealthscan)数据包,比如NULL,FIN,SYNFIN,XMAS等。如果包括秘密
扫描的话,端口扫描模块会对每一个扫描数据包告警。
network to monitor - 监视端口扫描的目标网络以network/CIDR表示
number of ports - 在探测期间访问的端口数目
detection period - 以秒计数的端口访问时间限制
logdir/filename - 告警信息存放的目录/文件名,告警也可以写入标准的告警文件中。

l--日志及报警子系统(logging/alerting subsystem)
入侵检测系统的输出结果系统的必要特征是实时性和多样性,前者指能够在检测到入侵
行为的同时及时记录和报警,后者是指能够根据需求选择多种方式进行记录和报警。一
个好的NIDS,更应该提供友好的输出界面或发声报警等等。
Snort是一个轻量级的NIDS,它的另外一个重要功能就是数据包记录器,所以该子系统主
要提供了方式:
1.--fast model :采取TCPDUMP的格式记录信息
2. readable model :按照协议格式记录,易于用户查看。
3.alert to syslog: 向syslog发送报警信息。
4.alert to text file :以明文形式记录报警信息。
值得提出的是,snort考虑到用户需要高性能的时候,即网络数据流量非常大,可以将数
据包信息进行压缩从而实习快速的报警。

3.-- 程序结构
1)--snort的整体结构
snort作为优秀的公开源代码的入侵检测系统范例,其整个程序结构清晰,构思巧妙,我
们对于其版本1.6.3的源码进行了深入的分析。Snort共有64个c文件和h文件,首先介绍
程序的整体结构,其流程图如下:
其中最为关键的函数就是ProcessPacket(),--其流程图如下:
2)--数据结构--
snort的主要数据结构就是几个链表,上述已经提及,snort组织规则库的巧妙之处就是
按照规则的处理动作来划分成三个链表,其中每个链表又按照协议类型:TCP,IP和ICMP
分成三个链表,所以所有的规则都会被分配到这个三个链表中。链表中的成员就是描述
每条规则的结构——RuleTreeNode,该结构中的一个重要成员就是记录该规则的处理函
数链表——RuleFpList,一条规则有时候需要调用多个处理函数来进行分析。该结构中
的另外一个重要成员就是规则选项的结构,该结构同样包括该规则的选项信息以及其处
理函数链表。
值得提出的是,并不是每一条规则都分配一个RuleTreeNode结构,因为很多规则的选项
前的头部分是相同的,只需要根据不同的规则选项链取不同的选项函数处理链表。基本
整体的结构如图n所示,所有链表的初始化都是在捕获数据包前进行的。
除以上链表外,snort还定义了预处理、输出的关键字和处理函数链表,设计链表的主要
意图是为了实现插件的思想,即用户何以根据需求添加删除预处理的功能模块。其只要
的数据结构如下:
typedef struct _PreprocessKeywordNode
{
char *keyword;
void (*func)(char *);
} PreprocessKeywordNode;
// 预处理关键字信息结构。
typedef struct _PreprocessKeywordList
{
PreprocessKeywordNode entry;
struct _PreprocessKeywordList *next;
} PreprocessKeywordList;
//预处理关键字链表。
typedef struct _PreprocessFuncNode
{
void (*func)(Packet *);
struct _PreprocessFuncNode *next;
} PreprocessFuncNode;
//预处理函数链表。
所有链表的初始化都是在捕获数据包前进行初始化的,一旦链表都已建立完毕,开始捕
获数据包,每收到一个数据包都会现首先调用预处理程序链表中的函数进行处理后,其
次按照默认地顺序遍历AlertList,PassList和LogList三个链表。遍历时首先根据数据包
的协议类型定位规则链表,其次调用递归函数进行规则的逐一匹配,即首先匹配规则头
,若匹配则继续递归匹配规则选项,若不匹配,直接匹配下一条规则。为了加快遍历的
速度,snort在规则选项中的”content”内容匹配时调用了Boyer-Moore算法。

4.--改进
1.--背景
我们认为snort已经具备了NIDS的基本功能,由于它本身定位在一个轻量级的入侵检测工
具,尽管与商业的入侵检测工具比起来,它的规则语言略显简陋,在报警方式和图形化
使用界面上也显露出不足之处,但是程序的整体结构清晰,规则语言简单实用并提供插
件的功能支持,用户可以添加自己的检测规则和处理函数,这对于规则库的及时更新有
着极为现实的意义。
通过分析,与商业的NIDS相比,SNORT 1.6.3没有设置对IP 分片包的处理功能,即对于
例如“Teardrop”和“Ping of Death”两类利用非法IP分片包进行的攻击无法检测:
?--teadrop——该攻击是针对很多操作系统的TCP/IP协议栈没有正确处理已分段的IP包
的重组。其特征是发送2个或更多特别的分段IP数据报。第一个包是偏移量为0的段,数
据段(分段长度)字节是N,并设置了MF位,第二个包是最后一个分段(MF==0),但它的偏移
量小于N,所有造成两个分段重叠了。为了重组这些包,有弱点的系统就会在TCP/IP栈中
分配非常大的空间,因此导致目标系统因为内存耗尽而停止响应或者重启。
?--Ping of Death——该攻击的特正是向攻击目标发送大量的ICMP分片数据包,当这些
数据包重组时其数据段已经大于65535个字节,系统会因为无法处理这种数据包而造成拒
绝服务或者重启。
?--
2.--方案
3.--实现

J. MON是什么意思

mon通用目资源监视系统备用于监视网络服务用性服务器问题诸温度等影响系统运行环境条件
资源监视视两部独立任务:测试条件现问题触发作mon设计用于检测独立stand-alone服务并能作相应响应作mon调度器形式实现监视任务执行监视器失效调用响应告警程序
我般mon作集群环境资源监控平台通我能够监控几乎所已知服务像http服务、telnet服务、邮件服务等等甚至能够监视文件变化实解控主机否重启等等mon监视远程主机系统资源提供良平台除外mon提供强告警机制监视具体服务失效或者效mon作放映喜论mon监视工具monitor告警程序都通便捷脚本语言书写使用shell使用perl或者别需要传递参数借助mon守护进程变量、系统环境变量命令行式传递给相应具体脚本程序
面些mon软件包附带客户端工具cgi-bin/
clients/
目录找:
-moncmd,
用于客户端操作工具实现完整客户/服务接口
-monshow用于报告监视服务运行状态既命令行工具提供cgi教本友、图形化式显示服务前状态、组信息错误志
-skymon,
SKYTEL双路页面调度接口允许查询服务状态同提供moncmd致维护服务访问通简单用户/密码认证机制访问控制文件进行
-mon.cgi,
monweb接口仅允许通web页面查看服务运行状态实改变服务相应参数
监视器告警程序并mon部尽管附带发行包些工具意味着新服务需要监视或者修改作需要响应mon须改保证mon扩展性
mon特性
mon针linux发工具众所周知sorlaris工作客户服务端都由perl语言书写轻便性问题
监控
监控词用于检查特定环境条件任何形式随报告服务功失败消息mon设计非独立使用自喜任何语言书写监控程序要按照要求放mon指定监控程序工作
异步事件通信机制
mon服务支持异步事件通信机制放式协议像monitoralert脚本触发任何事件典型应用作SNMP陷阱远程结点产陷阱事件采用监视器池通知失效事件处理容易能建立布式监控体系例WAN范围内同域主机收集自身运行信息适重事件通知位于位置服务器比NOC等
告警
告警教本用于mon检测问题发送消息或者进行失效处理工作些告警脚本监视脚本mon本身部作扩展模块随意加入支持"Upalerts"种用于服务失效段间随即恢复所触发专用脚本程序
告警管理失效控制
任何受监控服务失效都引起告警行甚至同事件触发告警消息别同用户使用特性建立"on
call"调度例设定系统使旦发现任何资源用情况经判断早8点前发送告警消息给所系统管理员早8点发送给管理员王
并行性
能够同主机或者同组主机检测服务工作并行化例
限制重复报警
mon系统限制重复报警行例设定持续失效服务仅没1发送告警邮件停发送选择忽略些微、短暂失效事件
依赖关系
mon支持内部服务依赖特性例监视服务器受监视WWW服务器间路由失效虽访问HTTP服务确告警消息内容要指路由问题非HTTP问题重要资源访问依赖关系防止量告警消息发依赖性理解层结构或者树结构发失效事件种依赖关系使失效事件按照树结构向处理任务传递叶结点说依赖关系能使告警尽能反映失效真实情况复杂依赖关系应该使用图表示实际用树结构或者层结构描述依赖关系
扩展配置
mon提供伸缩性、扩展性非强配置文件机制主机规划组每主机或者主机组自服务(service)具体参考附带范例文件
真客户/服务模式
使用交互命令、WWW界面SkyTel客户端工具查询服务状态历史纪录协议简单使容易添加自客户端工具Mon支持种认证包括PAM实现每用户访问控制查询服务状态使用PerlAPI模块进行编程所编写自通信接口简单比用WAP协议访问服务状态要提现几社区发展自WWW接口工具
基于视图状态报告
通复杂配置文件用户通服务状态视图查看信息需要解每受监视服务具体状态例"network"视图显示整网络拓扑情况"servers"视图则包括所关服务信息故需要每用户配置视图用户控制自视图
允许或禁止实告警
mon禁止服务失效事件告警行直失效问题解决才使效种状态叫"ack"客户接口获(恢复)用户能知道支持员解决特殊问题必虑特定主机、组或者服务设定暂禁止客户端重新使能状态需要停止或重启服务假升级特殊服务禁止告警功能升级完重新使告警效
历史记录
mon保持失效事件、告警触发等行历史纪录提供用户查询
轻便
Mon非轻便工具扩展服务需要编写复杂代码需经历痛苦编译、链接程所扩展功能都模块化且采用纯脚本语言perl编写点充保证Mon体系轻便简单