@@ -51,6 +51,7 @@ Have any feedback or questions? [Create a discussion](https://github.com/TwiN/ga
5151 - [ Functions] ( #functions )
5252 - [ Storage] ( #storage )
5353 - [ Client configuration] ( #client-configuration )
54+ - [ Tunneling] ( #tunneling )
5455 - [ Alerting] ( #alerting )
5556 - [ Configuring AWS SES alerts] ( #configuring-aws-ses-alerts )
5657 - [ Configuring Datadog alerts] ( #configuring-datadog-alerts )
@@ -597,24 +598,25 @@ See [examples/docker-compose-postgres-storage](.examples/docker-compose-postgres
597598In order to support a wide range of environments, each monitored endpoint has a unique configuration for
598599the client used to send the request.
599600
600- | Parameter | Description | Default |
601- |:---------------------------------------|:----------------------------------------------------------------------------|:----------------|
602- | `client.insecure` | Whether to skip verifying the server's certificate chain and host name. | `false` |
603- | `client.ignore-redirect` | Whether to ignore redirects (true) or follow them (false, default). | `false` |
604- | `client.timeout` | Duration before timing out. | `10s` |
605- | `client.dns-resolver` | Override the DNS resolver using the format `{proto}://{host}:{port}`. | `""` |
606- | `client.oauth2` | OAuth2 client configuration. | `{}` |
607- | `client.oauth2.token-url` | The token endpoint URL | required `""` |
608- | `client.oauth2.client-id` | The client id which should be used for the `Client credentials flow` | required `""` |
609- | `client.oauth2.client-secret` | The client secret which should be used for the `Client credentials flow` | required `""` |
610- | `client.oauth2.scopes[]` | A list of `scopes` which should be used for the `Client credentials flow`. | required `[""]` |
611- | `client.proxy-url` | The URL of the proxy to use for the client | `""` |
612- | `client.identity-aware-proxy` | Google Identity-Aware-Proxy client configuration. | `{}` |
613- | `client.identity-aware-proxy.audience` | The Identity-Aware-Proxy audience. (client-id of the IAP oauth2 credential) | required `""` |
614- | `client.tls.certificate-file` | Path to a client certificate (in PEM format) for mTLS configurations. | `""` |
615- | `client.tls.private-key-file` | Path to a client private key (in PEM format) for mTLS configurations. | `""` |
616- | `client.tls.renegotiation` | Type of renegotiation support to provide. (`never`, `freely`, `once`). | `"never"` |
617- | `client.network` | The network to use for ICMP endpoint client (`ip`, `ip4` or `ip6`). | `"ip"` |
601+ | Parameter | Description | Default |
602+ |:---------------------------------------|:------------------------------------------------------------------------------|:----------------|
603+ | `client.insecure` | Whether to skip verifying the server's certificate chain and host name. | `false` |
604+ | `client.ignore-redirect` | Whether to ignore redirects (true) or follow them (false, default). | `false` |
605+ | `client.timeout` | Duration before timing out. | `10s` |
606+ | `client.dns-resolver` | Override the DNS resolver using the format `{proto}://{host}:{port}`. | `""` |
607+ | `client.oauth2` | OAuth2 client configuration. | `{}` |
608+ | `client.oauth2.token-url` | The token endpoint URL | required `""` |
609+ | `client.oauth2.client-id` | The client id which should be used for the `Client credentials flow` | required `""` |
610+ | `client.oauth2.client-secret` | The client secret which should be used for the `Client credentials flow` | required `""` |
611+ | `client.oauth2.scopes[]` | A list of `scopes` which should be used for the `Client credentials flow`. | required `[""]` |
612+ | `client.proxy-url` | The URL of the proxy to use for the client | `""` |
613+ | `client.identity-aware-proxy` | Google Identity-Aware-Proxy client configuration. | `{}` |
614+ | `client.identity-aware-proxy.audience` | The Identity-Aware-Proxy audience. (client-id of the IAP oauth2 credential) | required `""` |
615+ | `client.tls.certificate-file` | Path to a client certificate (in PEM format) for mTLS configurations. | `""` |
616+ | `client.tls.private-key-file` | Path to a client private key (in PEM format) for mTLS configurations. | `""` |
617+ | `client.tls.renegotiation` | Type of renegotiation support to provide. (`never`, `freely`, `once`). | `"never"` |
618+ | `client.network` | The network to use for ICMP endpoint client (`ip`, `ip4` or `ip6`). | `"ip"` |
619+ | `client.tunnel` | Name of the SSH tunnel to use for this endpoint. See [Tunneling](#tunneling). | `""` |
618620
619621
620622> 📝 Some of these parameters are ignored based on the type of endpoint. For instance, there's no certificate involved
@@ -705,6 +707,45 @@ endpoints:
705707
706708> 📝 Note that if running in a container, you must volume mount the certificate and key into the container.
707709
710+ # ## Tunneling
711+ Gatus supports SSH tunneling to monitor internal services through jump hosts or bastion servers.
712+ This is particularly useful for monitoring services that are not directly accessible from where Gatus is deployed.
713+
714+ SSH tunnels are defined globally in the `tunneling` section and then referenced by name in endpoint client configurations.
715+
716+ | Parameter | Description | Default |
717+ |:--------------------------------------|:------------------------------------------------------------|:--------------|
718+ | `tunneling` | SSH tunnel configurations | `{}` |
719+ | `tunneling.<tunnel-name>` | Configuration for a named SSH tunnel | `{}` |
720+ | `tunneling.<tunnel-name>.type` | Type of tunnel (currently only `SSH` is supported) | Required `""` |
721+ | `tunneling.<tunnel-name>.host` | SSH server hostname or IP address | Required `""` |
722+ | `tunneling.<tunnel-name>.port` | SSH server port | `22` |
723+ | `tunneling.<tunnel-name>.username` | SSH username | Required `""` |
724+ | `tunneling.<tunnel-name>.password` | SSH password (use either this or private-key) | `""` |
725+ | `tunneling.<tunnel-name>.private-key` | SSH private key in PEM format (use either this or password) | `""` |
726+ | `client.tunnel` | Name of the tunnel to use for this endpoint | `""` |
727+
728+ ` ` ` yaml
729+ tunneling:
730+ production:
731+ type: SSH
732+ host: "jumphost.example.com"
733+ username: "monitoring"
734+ private-key: |
735+ -----BEGIN RSA PRIVATE KEY-----
736+ MIIEpAIBAAKCAQEA...
737+ -----END RSA PRIVATE KEY-----
738+
739+ endpoints:
740+ - name: "internal-api"
741+ url: "http://internal-api.example.com:8080/health"
742+ client:
743+ tunnel: "production"
744+ conditions:
745+ - "[STATUS] == 200"
746+ ` ` `
747+
748+
708749# ## Alerting
709750Gatus supports multiple alerting providers, such as Slack and PagerDuty, and supports different alerts for each
710751individual endpoints with configurable descriptions and thresholds.
0 commit comments