健康Action¶
项目
健康Action用于根据特定条件执行任务或修复健康检查状态。像运行状况检查一样,运行状况Action由health.xml组成,并由运行状况系统定期执行。
健康Action通常涉及一种或多种健康状况,但不是必需的。所有Action都由相关条件的评估确定,并且每个周期可以执行一次。每个周期执行一次无条件的健康Action 。
注意
一些运行状况Action例如输出转储信息)会在执行过程中对Java VM造成高负载。设置检查间隔和健康状况,以便根据操作环境在适当的时间执行它们。
<健康:ActionSequence>¶
按顺序执行在孩子中设置的健康Action 。
属性¶
无
设置¶
<健康:ActionSequence>
<health:DumpThreads />
<health:DumpHeap />
<健康:IfHealthCritical 时间=“ 5m”/>
</ health:ActionSequence>
<运行状况:CallJmxOperation>¶
使用指定的参数执行JMX MBean操作。
属性¶
属性名称 | 说明 | 型式 | 默认 |
---|---|---|---|
对象名 | JMX MBean的名称。 | 弦乐 | 无 |
操作 | 方法的名称。 | 弦乐 | 无 |
operationIndex | 多个方法匹配时的唯一索引。 | 整型 | -1 |
参数 | 方法参数将转换为适当的类型。 | 布尔值 | 无 |
设置¶
<health:CallJmxOperation> < objectName> java.lang:类型=线程</ objectName > <operation> resetPeakThreadCount </ operation> <health:IfNotRecent time = '5m' /> </ health:CallJmxOperation>
<健康:DumpHeap>¶
生成内存堆转储。
堆转储记录在Resin的内部日志数据库和日志文件中。日志文件以信息级别记录。
属性¶
属性名称 | 说明 | 型式 | 默认 |
---|---|---|---|
hprof | 生成HPROF格式转储,而不是用户可读的转储。 | 布尔值 | false |
hprof路径 | HPROF文件的输出路径。 (如果hprof为true) | 弦乐 | 日志/heap.hprof |
hprof路径格式 | 使用时间戳记令牌来描述动态生成输出路径的格式。 | 弦乐 | 无 |
日志 | 除了存储在Resin的内部数据库中之外,还将堆转储写入服务器日志。 | 布尔值 | true |
设置¶
<health:DumpHeap> <hprof> true </ hprof> <hprof-path-format> $ {resin.home} /log/dump-%H:%M:%S.%s.hprof </ hprof-path-格式> <health:OnAbnormalStop /> </ health:DumpHeap>
<健康:DumpHprofHeap>¶
健康具有相同的含义,如下设置Action是。
<health:DumpHeap> <hprof> true </ hprof> </ health:DumpHeap>
<运行状况:DumpJmx>¶
运行状况Action ,将生成所有JMX属性和值的转储。
JMX转储记录在Resin的内部日志数据库和日志文件中。日志文件以信息级别记录。
属性¶
属性名称 | 说明 | 型式 | 默认 |
---|---|---|---|
日志 | 除了将JMX转储存储在Resin的内部数据库中之外,还将其写入服务器日志中。 | 布尔值 | true |
设置¶
<health:DumpJmx />
<运行状况:DumpThreads>¶
生成Thread转储。
Thread转储记录在Resin的内部日志数据库和日志文件中。它记录在信息级别的日志文件中。
属性¶
属性名称 | 说明 | 型式 | 默认 |
---|---|---|---|
仅活动 | 仅输出当前活动的Thread。 ( RUNNABLE状态) | 布尔值 | false |
日志 | 除了将Thread转储存储在Resin的内部数据库,它还会写入服务器日志。 | 布尔值 | true |
设置¶
<health:DumpThreads> <only-active>假</ only-active> </ health:DumpThreads>
<运行状况:ExecCommand>¶
执行操作系统外壳程序命令。
属性¶
属性名称 | 说明 | 型式 | 默认 |
---|---|---|---|
命令 | 要执行的命令。 如果设置了dir,则使用相对路径执行。 | 弦乐 | 无 |
目录 | 要执行的目录的路径。 | java.io.File中可用的路径 | 无 |
超时时间 | 命令执行超时。如果不是,则终止命令之前的时间。 | 期间 | 2秒 |
环保 | 该命令使用的环境变量。 | 名称/值对 | 无(系统环境变量默认可用) |
设置¶
<health:ExecCommand> <dir> / tmp </ dir> <command> remediation.sh </ command> <timeout> 2s </ timeout> <env> <name> resin_home </ name> <value> $ {树脂。主页} </ value> </ env> <env> <name>密码</ name> <value> foo </ value> </ env> </ health:ExecCommand>
<运行状况:FailSafeRestart>¶
在设定的时间重启树脂。通常与ActionSequence一起使用以收集关闭信息。
设置¶
<健康:ActionSequence>
<运行状况:FailSafeRestart 超时=“ 10m”/>
<health:DumpThreads />
<health:DumpHeap />
<运行状况:StartProfiler 活动时间=“ 5m”/>
<health:重新启动/>
<健康:IfHealthCritical 时间=“ 5m”/>
</ health:ActionSequence>
<运行状况:PdfReport>¶
运行状况Action ,可通过PHP脚本生成PDF报告。
属性¶
属性名称 | 说明 | 型式 | 默认 |
---|---|---|---|
路径 | .php文件生成PDF的路径。 | 弦乐 | $ {resin.home} /doc/admin/pdf-gen.php |
报告 | 报告类型键。 | 弦乐 | 总结 |
期间 | 过去期间要在报告中输出。 | 期间 | 7D |
日志目录 | 输出PDF的目录。 | 弦乐 | $ {resin.logDirectory} |
设置¶
<health:PdfReport> <path> $ {resin.home} /doc/admin/pdf-gen.php </ path> <report>摘要</ report> <period> 7D </ report> <health:IfCron 值= “ 0 0 * * 0” /> </健康状况:PdfReport>
<运行状况:记分板报告>¶
为一组相关Thread生成简明的ThreadActivity报告。
属性¶
属性名称 | 说明 | 型式 | 默认 |
---|---|---|---|
日志 | 除PDF报告外,还写入服务器日志。 | 布尔值 | false |
类型 | 记分板报告类型。 | 弦乐 | 树脂 |
贪心 | 如果为false,则Thread将被分为多个组。 | 布尔值 | true |
设置¶
<运行状况:记分板报告>
<health:OnAbnormalStop />
</ health:ScoreboardReport>
<运行状况:SendMail>¶
发送一封概述当前树脂健康状况的电子邮件。
设置¶
<health:SendMail> <to> admin@yourdomain.com </ to> <to> another_admin@yourdomain.com </ to> <from> resin@yourdomain.com </ from> </ health:SendMail>
<运行状况:快照>¶
下列一系列的Action来运行。
- Thread转储
- 堆转储
- JMX转储
- PDF报告
这些假定了调试服务器问题所需的所有信息,并且是旨在创建系统本身快照的Action 。
通常预期会针对意外问题执行此Action 。
属性¶
属性名称 | 说明 | 型式 | 默认 |
---|---|---|---|
日志 | 除PDF报告外,还写入服务器日志。 | 布尔值 | false |
路径 | .php文件生成PDF的路径。 | 弦乐 | $ {resin.home} /doc/admin/pdf-gen.php |
报告 | 报告类型键。 | 弦乐 | 总结 |
期间 | 过去期间要在报告中输出。 | 期间 | 7D |
设置¶
<运行状况:快照>
<health:OnAbnormalStop />
</ health:快照>
<运行状况:StartProfiler>¶
启动事件探查器。结果记录在Resin的内部日志数据库和日志文件中。日志文件以信息级别记录。
设置¶
<健康:ActionSequence>
<运行状况:FailSafeRestart 超时=“ 10m”/>
<health:DumpThreads />
<health:DumpHeap />
<运行状况:StartProfiler 活动时间=“ 5m”/>
<health:重新启动/>
<健康:IfHealthCritical 时间=“ 5m”/>
</ health:ActionSequence>