节点和群集健康检查

使用您的 DC/OS 群集进行健康检查

预定义的运行状况检查

DC/OS 包括一组针对 DC/OS 核心组件的预定义内置运行状况检查。这些内置检查可验证以下内容:

  • 所有 DC/OS 组件都运行良好的。
  • XZ 实用程序可用。
  • IP 检测脚本生成有效输出。
  • Mesos 代理节点已经注册了管理节点。

自定义运行状况检查

自定义检查是由用户编写的检查,在 文件中安装 DC/OS 时指定。应为非核心 DC/OS 组件编写自定义检查。DC/OS 核心组件的运行状况检查包括在 中,可直接使用。 例如,您可以编写自定义运行状况检查以验证以下内容:

  • DC/OS 服务是否运行良好
  • 节点上的本地装载是否运行良好

自定义运行状况检查是一组用户定义命令,可添加到一组用于判定节点或群集是否运行良好的检查中。自定义运行状况检查必须采用下表中的一种退出代码报告状态。

或者,您可以配置检查以输出可人工读取的消息到 stderrstdout.

指定自定义运行状况检查

在安装 DC/OS,之前,必须在 custom_checks 安装配置参数中指定自定义运行状况检查。如果您想在安装后修改配置文件,就必须遵循 DC/OS 升级流程.

如果文件是绝对路径(例如,在 /usr/bin/ 中有可执行文件),您可以直接在 cmd. 中指定该文件。如果用名称引用没有绝对路径的可执行文件(例如, echo 而不是 /usr/bin/echo),系统将使用此搜索路径,并使用其发现的第一个可执行文件:/opt/mesosphere/bin:/usr/bin:/bin:/sbin.

有关此参数的描述和示例,请参阅 .

自定义运行状况检查可执行文件

在安装 DC/OS,之前,您可以选择在 genconf/check_bins/ 提供可执行文件的目录,列出要分发到所有群集节点,用于自定义检查的可执行文件。如果提供,这些可执行文件将被添加到检查可执行文件的搜索路径末尾。若要使用自定义检查可执行文件,参考 custom_checks 不带绝对路径的参数本身(例如,要在自定义检查中使用 genconf/check_bins/custom_script.sh ,请参阅 custom_script.sh).

运行状况检查的类型

节点检查

节点检查会在安装后报告各个节点的状态。通过 SSH 连接到各个节点,节点检查可在安装后运行。可以通过 SSH 连接到群集节点并运行此命令:,查看定义了哪些节点检查。/opt/mesosphere/bin/dcos-shell dcos-check-runner check node-poststart --list.

进行运行状况检查

可在群集节点运行以下命令,调用自定义或预定义的运行状况检查。

前提条件:

  • DC/OS 已安装,您已通过超级用户权限登录。
  1. SSH 连接到群集节点.

  2. 运行此命令以查看可用的运行状况检查,需采用指定的检查类型 (<check-type> 检查类型可以是群集 (cluster) ,也可以是节点 (node-poststart).

      输出应类似于:

      1. {
      2. "clock_sync": {
      3. "description": "System clock is in sync.",
      4. "cmd": [
      5. "/opt/mesosphere/bin/dcos-checks",
      6. "time"
      7. "timeout": "1s"
      8. },
      9. "components_agent": {
      10. "description": "All DC/OS components are healthy",
      11. "cmd": [
      12. "/opt/mesosphere/bin/dcos-checks",
      13. "--role",
      14. "agent",
      15. "--iam-config",
      16. "/run/dcos/etc/dcos-diagnostics/agent_service_account.json",
      17. "--force-tls",
      18. "--ca-cert=/run/dcos/pki/CA/ca-bundle.crt",
      19. "components",
      20. "--scheme",
      21. "https",
      22. "--port",
      23. "61002"
      24. "timeout": "3s"
      25. },
      26. ...
    1. 使用指定的检查名 (<checkname>

      1. /opt/mesosphere/bin/dcos-shell dcos-check-runner check node-poststart <checkname>

    例如:运行 component_agent 检查。

    1. {
    2. “status”: 2,
    3. “checks”: {
    4. “component_agent”: {
    5. “status”: 2,
    6. “output”: “”
    7. },
    8. “exhibitor”: {
    9. “status”: 0,
    10. “output”: “”
    11. }
    12. }
    13. }
    14. ```

    示例

    列出所有检查

    列出所有群集检查。

    1. /opt/mesosphere/bin/dcos-shell dcos-check-runner check cluster --list

    列出所有节点检查。

    1. /opt/mesosphere/bin/dcos-shell dcos-check-runner check node-poststart --list

    列出特定群集检查(check1).

    列出特定节点检查(check1).

    1. /opt/mesosphere/bin/dcos-shell dcos-check-runner check node-poststart --list check1 [check2 [...]]

    运行所有检查

    运行群集检查。

    1. /opt/mesosphere/bin/dcos-shell dcos-check-runner check cluster

    运行节点检查。

      运行特定检查

      运行特定群集检查(check1).

      运行特定节点检查(check1).

      1. dcos-check-runner check node-poststart check1 [check2 [...]]