448.md 4.4 KB
Newer Older
Lab机器人's avatar
readme  
Lab机器人 已提交
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133
# Health Check

> 原文:[https://docs.gitlab.com/ee/user/admin_area/monitoring/health_check.html](https://docs.gitlab.com/ee/user/admin_area/monitoring/health_check.html)

*   [IP whitelist](#ip-whitelist)
*   [Using the endpoints locally](#using-the-endpoints-locally)
*   [Health](#health)
*   [Readiness](#readiness)
*   [Liveness](#liveness)
*   [Access token (Deprecated)](#access-token-deprecated)

# Health Check[](#health-check-core-only "Permalink")

版本历史

*   在 GitLab 9.1 中[引入](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/10416)了活动性和就绪性探针.
*   `health_check`端点是在 GitLab 8.8 中[引入的](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/3888) ,在 GitLab 9.1 中已弃用.
*   在 GitLab 9.4 中不赞成使用[访问令牌](#access-token-deprecated) ,而推荐使用[IP 白名单](#ip-whitelist) .

manbetx 客户端打不开提供活跃度和准备情况探针,以指示服务的健康状况和对所需服务的可达性. 这些探针报告数据库连接,Redis 连接和对文件系统的访问状态. [可以将](https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/)这些端点[提供给 Kubernetes 之类的调度程序](https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/)以保持流量,直到系统准备就绪或根据需要重新启动容器.

## IP whitelist[](#ip-whitelist "Permalink")

要访问监视资源,需要将发出请求的客户端 IP 包含在白名单中. 有关详细信息,请参阅[如何将 IP 添加到监视端点的白名单](../../../administration/monitoring/ip_whitelist.html) .

## Using the endpoints locally[](#using-the-endpoints-locally "Permalink")

使用默认白名单设置,可以使用以下 URL 从本地主机访问探针:

```
GET http://localhost/-/health 
```

```
GET http://localhost/-/readiness 
```

```
GET http://localhost/-/liveness 
```

## Health[](#health "Permalink")

检查应用服务器是否正在运行. 它不会验证数据库或其他服务是否正在运行. 该端点绕过了 Rails Controller,并在请求处理生命周期的早期就作为附加的中间件`BasicHealthCheck`实现.

```
GET /-/health 
```

请求示例:

```
curl 'https://gitlab.example.com/-/health' 
```

响应示例:

```
GitLab OK 
```

## Readiness[](#readiness "Permalink")

就绪探针会检查 GitLab 实例是否准备好通过 Rails Controller 接受流量. 默认情况下,该检查仅验证实例检查.

如果指定了`all=1`参数,则检查还将验证相关服务(数据库,Redis,Gitaly 等)并为每个服务提供状态.

```
GET /-/readiness
GET /-/readiness?all=1 
```

请求示例:

```
curl 'https://gitlab.example.com/-/readiness' 
```

Example response:

```
{  "master_check":[{  "status":"failed",  "message":  "unexpected Master check result: false"  }],  ...  } 
```

失败时,端点将返回`503` HTTP 状态代码.

如果通过`token`身份验证,则此检查确实会命中数据库,并且会重做 Redis.

此检查不受机架攻击.

## Liveness[](#liveness "Permalink")

**警告:**在 GitLab [12.4](https://about.gitlab.com/upcoming-releases/)中,"活动性"检查的响应主体已更改为与以下示例匹配.

检查应用服务器是否正在运行. 该探针用于了解 Rails 控制器是否不会由于多线程而死锁.

```
GET /-/liveness 
```

请求示例:

```
curl 'https://gitlab.example.com/-/liveness' 
```

响应示例:

成功后,端点将返回`200` HTTP 状态代码和如下响应.

```
{  "status":  "ok"  } 
```

失败时,端点将返回`503` HTTP 状态代码.

此检查不受机架攻击.

## Access token (Deprecated)[](#access-token-deprecated "Permalink")

**注意:**在 GitLab 9.4 中不赞成使用访问令牌,而推荐使用[IP 白名单](#ip-whitelist) .

访问探针端点时需要提供访问令牌. 当前接受的令牌可以在您的 GitLab 实例的**管理区域>监视>运行状况检查**`admin/health_check` )页面下找到.

[![access token](img/f313f74b73573e7a2449aa6d00ae7934.png)](img/health_check_token.png)

可以将访问令牌作为 URL 参数传递:

```
https://gitlab.example.com/-/readiness?token=ACCESS_TOKEN 
```

**注意:**如果无法访问数据库或 Redis 服务,则不能保证探针端点响应正确. 您应该从已弃用的访问令牌切换到[IP 白名单](#ip-whitelist) ,以避免出现这种情况.