blob: fe3fb76b47db77276167b38b07d16d070387fe49 [file] [log] [blame]
---
layout: api
page_title: /sys/health - HTTP API
description: The `/sys/health` endpoint is used to check the health status of Vault.
---
# `/sys/health`
@include 'alerts/restricted-root.mdx'
The `/sys/health` endpoint is used to check the health status of Vault.
## Read health information
This endpoint returns the health status of Vault. This matches the semantics of
a Consul HTTP health check and provides a simple way to monitor the health of a
Vault instance.
| Method | Path |
| :----- | :------------ |
| `HEAD` | `/sys/health` |
| `GET` | `/sys/health` |
The default status codes are:
- `200` if initialized, unsealed, and active
- `429` if unsealed and standby
- `472` if disaster recovery mode replication secondary and active
- `473` if performance standby
- `501` if not initialized
- `503` if sealed
### Parameters
- `standbyok` `(bool: false)` Specifies if being a standby should still return
the active status code instead of the standby status code. This is useful when
Vault is behind a non-configurable load balancer that just wants a 200-level
response. This will not apply if the node is a performance standby.
- `perfstandbyok` `(bool: false)` Specifies if being a performance standby should
still return the active status code instead of the performance standby status code.
This is useful when Vault is behind a non-configurable load balancer that just wants
a 200-level response.
- `activecode` `(int: 200)` – Specifies the status code that should be returned
for an active node.
- `standbycode` `(int: 429)` Specifies the status code that should be returned
for a standby node.
- `drsecondarycode` `(int: 472)` Specifies the status code that should be
returned for a DR secondary node.
- `performancestandbycode` `(int: 473)` Specifies the status code that should be
returned for a performance standby node.
- `sealedcode` `(int: 503)` Specifies the status code that should be returned
for a sealed node.
- `uninitcode` `(int: 501)` Specifies the status code that should be returned
for a uninitialized node.
### Sample request
```shell-session
$ curl \
http://127.0.0.1:8200/v1/sys/health
```
### Sample response
This response is only returned for a `GET` request.
Note: `replication_performance_mode` and `replication_dr_mode` reflect the state of
the active node in the cluster; if you are querying it for a standby that has
just come up, it can take a small time for the active node to inform the
standby of its status.
```json
{
"initialized": true,
"sealed": false,
"standby": false,
"performance_standby": false,
"replication_performance_mode": "disabled",
"replication_dr_mode": "disabled",
"server_time_utc": 1516639589,
"version": "0.9.2",
"cluster_name": "vault-cluster-3bd69ca2",
"cluster_id": "00af5aa8-c87d-b5fc-e82e-97cd8dfaf731"
}
```
### Sample request to customize the status code being returned
```shell-session
$ curl -i https://127.0.0.1:8200/v1/sys/health\?drsecondarycode\=200
HTTP/2 200
cache-control: no-store
content-type: application/json
strict-transport-security: max-age=31536000; includeSubDomains
content-length: 364
date: Wed, 26 Jan 2022 09:21:13 GMT
```
### Sample response
This response is only returned for a `GET` request.
Note: `replication_performance_mode` and `replication_dr_mode` reflect the state of
the active node in the cluster; if you are querying it for a standby that has
just come up, it may take time for the active node to inform the
standby of its status.
```json
{
"initialized": true,
"sealed": false,
"standby": false,
"performance_standby": false,
"replication_performance_mode": "disabled",
"replication_dr_mode": "secondary",
"server_time_utc": 1643188873,
"version": "1.9.0+prem",
"cluster_name": "SECONDARY",
"cluster_id": "d2fbb13b-0830-70a3-4751-57b6b6d95d01",
"last_wal":13,
"license":{"state":"none","expiry_time":"","terminated":false}
}
```