什么是 WebSphere 健康管理?
已发表: 2015-02-14了解 IBM WebSphere Application Server 中的健康管理以及如何创建健康策略。
什么是健康管理?
健康管理是 WebSphere Virtual Enterprise environment的一部分,它集成到 WebSphere Application Server 8.5 中。
WebSphere 8.5 与利用健康策略的操作策略集成。
健康管理是一种策略驱动的方法,用于监视 WebSphere 企业应用程序服务器的使用情况,并能够在中断发生之前对问题区域做出响应。
健康管理有两个要素:
- 健康控制器
- 卫生政策
什么是反应模式?
健康策略包括您想要在您的环境中监控的健康状况。 当您定义的要求未得到满足时,它会做出反应。
有两种反应模式。
- 自动模式:系统将在检测到违反健康策略时采取措施。
例如,如果您配置监控内存使用情况并希望在消息使用率为 85% 时重新启动 JVM,那么系统将在 JVM 堆大小达到 85% 时重新启动目标 JVM。
- 监督模式:系统将在检测到健康策略违规时创建运行时任务。 这需要 WebSphere 管理员手动干预来批准或拒绝运行时任务操作。
什么是健康状况?
Health Condition 是您要监控环境的对象或指标。
WebSphere 8.5 中有八种预定义的健康状况可用。 您确实可以选择创建自定义健康状况。
- 基于年龄的条件 - 此条件将监控定义的 JVM 并在达到配置的年龄阈值时采取行动。
前任:
如果 JVM 运行 15 天,您可以配置此条件以重新启动它。 对于这种情况,可接受的值以天或小时为单位,如下所示。
- Excessive request timeout condition – 当请求超时百分比超过定义的值时,此条件将采取行动。 可接受的值是百分比,如下所示。
- 响应时间过长的情况——这将监控请求完成所需的时间,如果时间超过定义的阈值则采取行动。
前任:
您可以将此条件配置为在请求的响应时间为一分钟时进行线程转储。 可接受的值以毫秒、秒和分钟为单位,如下所示。
- 内存情况:内存使用过多——监控JVM的内存使用情况,如果超过阈值就采取行动。
前任:
您可以将此条件配置为在内存使用量超过阈值时进行 JVM 堆转储并重新启动 JVM。 JVM 堆大小的可接受值是百分比和违规周期(以秒和分钟为单位),如下所示。
- 内存情况:内存泄漏——这将在 JVM 上查找内存泄漏并采取措施。
这得到了三个检测级别。
- 快速(误报)
- 标准(一些误报)
- 慢(更少的误报)
- Storm Drain条件——监控平均响应时间的显着下降,并采取措施,如生成线程转储和重新启动 JVM。

这有两个检测级别。
- 标准(一些误报)
- 慢(更少的误报)
- 工作负载条件——一旦 JVM 处理了配置数量的请求,就会检测到此条件。
前任:
您可以配置为在处理 20000000 个请求后重新启动 JVM。
- 垃圾收集百分比条件 - 此监控在定义的时间段内用于垃圾收集的时间百分比,一旦超过阈值就采取行动。 可接受的值是百分比和采样周期,如下所示。
什么是健康行动?
健康操作是一旦超过配置的阈值就运行的健康策略操作。
WebSphere 8.5 中有七种预定义的健康操作可用。
- Restart Server - 重启 JVM
- Take thread dumps – 获取 JVM 的线程转储
- Take JVM heap dumps – 获取 JVM 堆转储
- 生成 SNMP 陷阱 - 生成 SNMP 陷阱以进行故障排除
- 将服务器置于维护模式 - 停止新的客户端请求并仅提供活动会话
- 将服务器置于维护模式并打破亲和性——停止新的和现有的操作会话
- 退出维护模式——准备好接受新的请求
您确实可以选择创建自定义健康操作。
如何制定卫生政策?
可以通过四个简单的步骤创建健康政策。
- 定义健康策略常规属性 - 在此处提供策略名称并选择健康状况
- 定义健康策略健康状况属性 - 在此处提供选择的健康状况阈值并配置在健康状况违反时要采取的必要措施
- 指定要监控的成员 - 选择 JVM、集群、动态集群、按需路由器或单元作为健康策略的目标
- 确认健康策略创建 - 查看健康策略配置并确认创建
让我们创建一个健康政策,如下所示。
- 登录 WebSphere 8.5 ND DMGR 控制台
- 点击运营政策>>健康政策
- 点击新建
- 提供名称 - Test_Policy
- 选择 Health condition 作为工作负载条件(我们可以快速测试这个条件)
- 点击下一步
- 输入 Total requests 作为 1000 用于测试目的
- 选择反应模式为自动
- 添加操作重新启动服务器并进行线程转储
- 点击下一步
- 选择作为服务器/节点过滤
- 将 server1 添加为目标成员
- 点击下一步
- 查看配置并单击完成
现在,让我们通过访问在目标 JVM (server1) 上运行的应用程序进行测试。
一旦 JVM 处理 1000 个请求,它应该进行线程转储并重新启动。 您可以使用 JMeter 来加载负载,以便快速完成测试。
什么是健康控制器?
健康控制器控制健康策略并监控系统。 必须在 Health Controller 中启用健康监控才能监控策略。
健康控制器本身具有可配置的属性,例如它应该多久运行一次,有时需要重新启动服务器。
这允许您在业务高峰时段限制重新启动服务器。
什么是卫生政策目标?
健康策略或操作目标可以是 JVM、集群、动态集群、按需路由器或单元。
我希望这有助于更好地理解。 如果您对学习 DevOps 感兴趣,请查看此基础课程。