worlddirect/healthcheck

检查您的TYPO3安装状态。

安装数: 1,459

依赖: 0

建议者: 0

安全: 0

星标: 1

关注者: 1

分支: 0

类型:typo3-cms-extension

2.0 2024-08-21 09:16 UTC

README

TYPO3扩展:"healthcheck"

内容

它做什么?

TYPO3扩展"healthcheck"提供输出,每个输出都显示当前TYPO3安装的健康检查信息。扩展运行各种探测,根据成功或错误返回状态。这导致一个整体的健康检查结果。健康检查输出可以由各种监控软件,如PRTG使用。

安装

可以使用Composer安装此扩展

composer req worlddirect/healthcheck

注意:为了让健康检查工作,您需要配置“secret”。有关详细信息,请参阅扩展配置

版本和分支

master分支包含与TYPO3 V11和TYPO3 V12兼容的最新版本。存在一个feature-v10分支,它将扩展回迁以兼容TYPO3 V10。它缺少一些配置选项和PHP的新功能(如枚举)。它被快速且粗略地制作出来,只是为了在较老的TYPO3 V10安装中也有健康检查。在将所有项目升级到v11或v12或...之后,将不会更新此分支。

TYPO3 V10版本将是“0.xx.xx”。TYPO3 V11和V12的当前版本版本号为“1.xx.xx”。

访问健康检查

健康检查使用中间件来渲染输出。为了使中间件知道可能需要渲染健康检查,我们使用扩展配置设置pathSegmentsecret(以及输出类型)。

可以通过“路径”使用3部分来访问健康检查。以下是一个示例URL:https://www.mustermann.de/healthcheck/lkjl23wsdkjjlskdj/html/

  • 1. 部分:“路径”中的第一个是"pathSegment"。在示例中这是"healthcheck"
  • 2. 部分:“路径”的第二部分是“secret”。示例中包含密钥"lkjl23wsdkjjlskdj"
  • 3. 部分:“路径”的第三和最后一部分包含所需输出的名称。在这种情况下,它使用“html”,代表"HtmlOutput"。如果省略此部分,则默认使用“html”。

返回的HTTP状态码

返回的响应状态码取决于HealthcheckResult对象的状态。如果状态等于“ERROR”,则返回HTTP状态码503。如果状态是“SUCCESS”,则返回代码200。这使得可以通过检查HTTP状态码来确定是否健康检查存在问题。无需解释输出。正如之前提到的,有一些工具可以执行针对特定HTTP状态码的检查。或者你可以构建自己的小脚本来做这个。😃

配置

存在扩展配置以及TypoScript设置配置。

扩展配置

扩展配置包含各种设置,这些设置需要设置以使健康检查正常工作。还可以启用显示调试信息。

pathSegment: 此设置设置用于访问健康检查的 "path" 的第1部分。默认设置为 "healthcheck",用户可以对其进行修改。

secret: 由于健康检查的输出被认为是值得保护的信息,因此设置密钥值是强制性的。没有它将无法工作,并且不会显示输出。在默认设置中没有密钥,这迫使网站管理员创建一个。

allowedIps: 可以限制允许查看健康检查的IP地址。默认值为 "*"(所有IP地址)。

enableDebug: 此设置允许输出更多调试信息。例如:如果您没有设置 secret,则健康检查在前端不会显示任何内容。如果您启用 "enableDebug" 设置,您至少会看到一个关于当前错误的简短消息。默认值为 "off"(0)。

TypoScript配置

TypoScript配置用于其他任何设置。目前只有一个设置用于HTML输出。

backgroundImage: 此设置与HTML输出相关,并包含用于HtmlOutput类实例的背景图片。

探测

为了检查某些功能、数据或状态,我们使用 Probes 来实现。这些探测具有一个 "run" 方法,用于检查特定部分,并将探测结果填充为 successerror 消息。如果至少有1条 error 消息,则 HealthcheckResult 的整体状态为 ERROR

所有探测都需要状态为 "SUCCESS",才能使整体健康检查结果状态为 "SUCCESS"!

该扩展已经提供了三个内置探测。

  • CacheProbe: 检查所有缓存配置是否可写。
  • DatabaseProbe: 检查数据库访问是否正常。
  • ExternalImportProbe: 检查外部导入扩展的日志最后一条记录是否为失败。
  • SchedulerProbe: 检查是否有任何预定任务失败。

CacheProbe

TODO:CacheProbe是什么?

DatabaseProbe

TODO:DatabaseProbe是什么?

ExternalImportProbe

TODO:ExternalImportProbe是什么?

SchedulerProbe

TODO:SchedulerProbe做什么?

输出

TODO:输出是什么?

该扩展提供了以下内置输出格式。

  • HtmlOutput: 使用Bootstrap 5渲染HTML页面,显示HealthcheckResult。显示整体成功或错误。
  • JsonOutput: 简单的JSON输出,显示HealthcheckResult作为JSON。

HtmlOutput

TODO:HtmlOutput如何工作?

定制

此扩展可定制,允许开发者添加新的 probesoutputs

添加自定义探测

TODO:解释接口 TODO:解释BaseClass

添加自定义输出

TODO:解释接口 TODO:解释BaseClass

暂停探测

失败的探测会导致健康检查返回非200 HTTP状态码,以表示错误。您的监控软件可能会大量检查这些值。因此,将生成事件或升级(以及大量电子邮件)。

这时 "Pause"Play 就派上用场了。

TODO:解释暂停探测的概念。

灵感

此扩展受到了GitHub Gist的启发,由Axel Seemann(aseemann)创建(aseemann)。有关Gist的详细信息,请参阅此处:[healthcheck.php](https://gist.github.com/aseemann/42041fccb784cf472349a7af9748fe9b)。我还从Georg Ringer的扩展 t3monitoring_client 中汲取了一些灵感。有关此扩展的详细信息,请参阅此处:[t3monitoring_client](https://github.com/georgringer/t3monitoring_client)。

致谢

图片的版权归