Hacmp appication monitor 的介绍和配置方法
一 . Application monitor 的介绍
二 . Application monitor 的配置方法
一. application monitor 功能
1. 众所周知,hacmp 软件是用来提高系统可靠性的一种备份软件。
传统的hacmp 在一个节点发生node down ,网卡失败,系统挂起时
可以把应用平滑的迁移到备份节点。但是随着在实际应用中,我们发现
只有在这几种情况下发生切换远远不能满足客户的需要。比如说客户的
一个节点上系统正常运行,网络也没有问题,但是客户应用的进程已经
挂起,或者客户的数据库已经报错,无法正常运行,这时客户的生产系统
其实已经处于瘫痪阶段。但是传统hacmp 软件无法对这些事件做出反应,
无法保证客户的业务高可用性。因此在hacmp ES 版本中增加了appilcation
monitor 的功能,可以使hacmp 按照客户的意愿去监控应用,在上述条件
下作出应有的反应。
目前具有hacmp application monitor 的版本为:
hacmp 4.3 ES , hacmp 4.4.0 ES ,hacmp 4.4.1 ES , hacmp 4.5 ES, hacmp 5.1
2. 我们可以选择两种方式对应用进行监控:process application monitoring
and custom application monitoring
process application monitoring : 可以利用RSCT 事件管理机制监控一个或多个应用进程。
这种方法利用RSCT 内嵌的监控功能,不需要另外配置脚本。但是该种方法并不适用
于所有的应用。
Custom application monitoring : 利用客户自定义的脚本和时间配置文件来检查应用程序。
这种方法可以监控各种各样的应用程序,甚至已用的性能,但是配置起来比较麻烦,因
为客户要自己配制监控脚本。
3 . Fallover and notify actions
当hacmp monitor 监测到错误时,系统会试图restart 应用,直到达到所订制的restart 次数
。然后hacmp 会执行fallover 或者notify action 。 如果在restart 的过程中应用被激活并且
正常运行,那么在一定时间内,定制的restart 次数会清零。系统不会执行fallover 或者notify
action .
fallover : 含有该应用的资源组(resource group ) 会迁移到另一节点上,以保证应用的正常运行。
Notify action.: hacmp 会执行一个server_down 事件来通知节点应用产生了问题。
4 . Retry count and restart interval
Hacmp 试图restart 出问题的应用是由 retry count 和 restart interval 这两个参数来决定的。
Retry count : 在hacmp 认为无法启动出了问题的应用因而执行fallover 或者 notify action
之前重新启动应用的次数。
Restart interval : 该参数是以秒为单位, 决定当应用被restart 后,稳定运行多长时间后
可以把retry count 清零。
注意:不要把restart interval 设的太短,如果那样的话,retry count 会在很短的时间
内清零(在下一次发生应用错误之前),这样,fallover 和notify action 将永远不被执行。
5 . Application monitor 的要求和注意事项
a. 任何一个要被监控的应用必须已经被定义在资源组中的application server 中
b. 每一个资源组中只能有一个application server 被监控。在制定计划时,应该把
不同需要监控的应用放在不同资源组中。在使用对进程监控时,可以监控同一个
application server 中的多个进程。
c. 当你选择fallover 方式时,可能会导致一种结果的产生,那就是一个资源组迁移到
另一个节点后。当他原本的节点保持在活动状态,该资源组仍旧不被激活。例如;资源
组resa 属于节点a , 当application monitor 执行fallover 后 ,resa 迁移到节点b 上。
然后我们执行b 节点的node down graceful , resa 资源组下线。这时虽然节点a 是激活
状态,但是我们只能手动激活resa , 否则resa 一直不会被激活。
二. Application monitor 的配置方法
进行对进程的监控时利用了RSCT事件管理功能来监控一个进程的状态并激发相应的事件。
这一章主要介绍如何来配置application monitor ,并通过它对一个应用的一个或多个进程进行监控。
注意:对进程进行监控并不适用于所有应用。例如你不可能对一个shell脚本进行监控,如果要实现对shell脚本的进程进行监控,你必须在客户自定义application monitor 中进行设置。
1. 确认正确被监控的进程名称
在对进程进行监控的时候,确认被监控的进程的名称是最重要的。我们应该用ps – el
命令输出的进程名字而不是ps – ef .
如果你对要监控的进程名字有疑问的话,下面叫你一个简便的方法来确认正确进程名称。
a. 执行下列命令:
ps – el | cut – c72-80 |sort > list1
b. 运行你的应用程序
c. 执行下列命令:
ps – el |cut – c72-80 |sort > list2
d. 比较这两个list文件
diff list1 list2 |grep \>
结果就是你的应用程序所调用的所有进程名字,你当然不用对所有的进程进行监控,
从这份进程list中你可以选择重要的一个或几个进程进行监控。
2. Application monitor 的配置步骤
注意在配置application monitor 之前你一定要先在application server 中定义
一个应用。下面是具体配置步骤:
a. SMITTY HACMP
Initialization and Standard Configuration
Extended Configuration
System Management (C-SPOC)
Problem Determination Tools
Discover HACMP-related Information from Configured Nodes
Extended Topology Configuration
Extended Resource Configuration
Extended Event Configuration
Extended Performance Tuning Parameters Configuration
Security and Users Configuration
Snapshot Configuration
Extended Verification and Synchronization
Extended Resources Configuration
Configure Resource Group Run-Time Policies
HACMP Extended Resource Group Configuration
Configure HACMP Service IP Labels/Addresses
Configure HACMP Application Servers
Configure HACMP Application Monitoring
Configure HACMP Tape Resources
Configure HACMP Communication Adapters and Links
Configure Custom Disk Methods
Customize Resource Recovery
Configure Process Application Monitor
Configure Custom Application Monitor
Add Process Application Monitor
Change/Show Process Application Monitor
Remove a Process Application Monitor
Monitor Name app1
Application Server Name app1
Processes to Monitor []
Process Owner []
Instance Count []
Stabilization Interval []
Restart Count [3]
Restart Interval []
Action on Application Failure [notify]
Notify Method []
Cleanup Method [/haha/stopha]
Restart Method [/haha/start]
Monitor Name : 这是application monitor 的名字,如果这个monitor 是监控一个已经存在
的application server ,那么这个名字就是application server的名字,
这个选项只是一个说明项,无法编辑。
Application server name :
你所要监控的application server 的名字。
Processes to Monitor : 定义所要监控的进程。你可以写多个的进程名,中间用空格分开。
Process Owner :定义所要监控的进程owner的user ID.例如:root .但是要注意
该user 必须对所有所监控进程的拥有权限。
Instance Count : 定义被监控的应用有多少实例, 默认值是1 。 实例的个数必须与所监控的
进程数项符合。否则会收到application monitor error . 注意当你规定要
监控一个应用的多个进程时,改选项要设为1 。(一个实例一个进程)。
Stabilization Interval :在开始进行监控之前的时间。比如你有一个应用需要很长时间启动。
你希望等你的应用启动以后再开始进行监控,这时你就可以通过设置这个选
项来实现。这个值是以秒为单位的,在大多数情况下,该值不能为零。
Restart Count : 在采取任何动作之前试图启动application 的次数。默认值是3 。
Restart Interval :在把Restart Count 清零之前,application 应该保持稳定的时间。以
秒为单位。但是这人值不能小于(Restart Count x Restart Interval)
系统默认值为 1.1 x (Restart Count x Restart Interval) .如果
Restart Interval 设定的过小,那么Restart Count 就会在太快的时间内
被清零,这样在本来应该被触动时,fallover and notify 的事件就不会被
激活。
Action on Application Failure:
定义了如果在规定的重启次数内无法启动application 后应该执行的动作
。默认值为notify . 这个动作执行一个事件来通知节点这次错误。或者你
也可以选择fallover 动作,即含有重启失败的application server 的
资源组被切换到下一个优先级最高的节点上。
Notify Method :(可选)。定义一个当application 启动失败的notify 的方法.(脚本)。
Cleanup Method :(可选)。定义一个当检查出系统application 失败 ,要进行对应用重启
之前的cleanup 脚本。默认值是系统 application server 中的stop 脚本。
Restart Method : 重启应用的方法,默认是系统application server 中的start 脚本。