Software /
code /
prosody-modules
Annotate
mod_http_health/README.md @ 6120:bd3ff802d883
mod_anti_spam: Fix another traceback for origin sessions without an IP
This is likely to be the case for stanzas originating from local hosts, for
example (so not true s2s). It should be safe to bypass the IP check for those.
author | Matthew Wild <mwild1@gmail.com> |
---|---|
date | Sat, 28 Dec 2024 21:02:08 +0000 |
parent | 5712:09233b625cb9 |
rev | line source |
---|---|
5690
9bcd257dea4e
mod_http_health: Provide a health check HTTP endpoint
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
1 Simple module adding an endpoint meant to be used for health checks. |
9bcd257dea4e
mod_http_health: Provide a health check HTTP endpoint
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
2 |
9bcd257dea4e
mod_http_health: Provide a health check HTTP endpoint
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
3 # Configuration |
9bcd257dea4e
mod_http_health: Provide a health check HTTP endpoint
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
4 |
9bcd257dea4e
mod_http_health: Provide a health check HTTP endpoint
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
5 After installing, enable by adding to [`modules_enabled`][doc:modules_enabled] like many other modules: |
9bcd257dea4e
mod_http_health: Provide a health check HTTP endpoint
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
6 |
9bcd257dea4e
mod_http_health: Provide a health check HTTP endpoint
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
7 ``` lua |
9bcd257dea4e
mod_http_health: Provide a health check HTTP endpoint
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
8 -- in the global section |
9bcd257dea4e
mod_http_health: Provide a health check HTTP endpoint
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
9 modules_enabled = { |
9bcd257dea4e
mod_http_health: Provide a health check HTTP endpoint
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
10 -- Other globally enabled modules here... |
9bcd257dea4e
mod_http_health: Provide a health check HTTP endpoint
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
11 "http_health"; -- add |
9bcd257dea4e
mod_http_health: Provide a health check HTTP endpoint
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
12 } |
9bcd257dea4e
mod_http_health: Provide a health check HTTP endpoint
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
13 ``` |
9bcd257dea4e
mod_http_health: Provide a health check HTTP endpoint
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
14 |
5712
09233b625cb9
mod_http_health: Copypaste IP access control code
Kim Alvefur <zash@zash.se>
parents:
5690
diff
changeset
|
15 ## Access control |
09233b625cb9
mod_http_health: Copypaste IP access control code
Kim Alvefur <zash@zash.se>
parents:
5690
diff
changeset
|
16 |
09233b625cb9
mod_http_health: Copypaste IP access control code
Kim Alvefur <zash@zash.se>
parents:
5690
diff
changeset
|
17 By default only access via localhost is allowed. This can be adjusted with `http_health_allow_ips`. The following example shows the default: |
09233b625cb9
mod_http_health: Copypaste IP access control code
Kim Alvefur <zash@zash.se>
parents:
5690
diff
changeset
|
18 |
09233b625cb9
mod_http_health: Copypaste IP access control code
Kim Alvefur <zash@zash.se>
parents:
5690
diff
changeset
|
19 ``` |
09233b625cb9
mod_http_health: Copypaste IP access control code
Kim Alvefur <zash@zash.se>
parents:
5690
diff
changeset
|
20 http_health_allow_ips = { "::1"; "127.0.0.1" } |
09233b625cb9
mod_http_health: Copypaste IP access control code
Kim Alvefur <zash@zash.se>
parents:
5690
diff
changeset
|
21 ``` |
09233b625cb9
mod_http_health: Copypaste IP access control code
Kim Alvefur <zash@zash.se>
parents:
5690
diff
changeset
|
22 |
09233b625cb9
mod_http_health: Copypaste IP access control code
Kim Alvefur <zash@zash.se>
parents:
5690
diff
changeset
|
23 Access can also be granted to one IP range via CIDR notation: |
09233b625cb9
mod_http_health: Copypaste IP access control code
Kim Alvefur <zash@zash.se>
parents:
5690
diff
changeset
|
24 |
09233b625cb9
mod_http_health: Copypaste IP access control code
Kim Alvefur <zash@zash.se>
parents:
5690
diff
changeset
|
25 ``` |
09233b625cb9
mod_http_health: Copypaste IP access control code
Kim Alvefur <zash@zash.se>
parents:
5690
diff
changeset
|
26 http_health_allow_cidr = "172.17.2.0/24" |
09233b625cb9
mod_http_health: Copypaste IP access control code
Kim Alvefur <zash@zash.se>
parents:
5690
diff
changeset
|
27 ``` |
09233b625cb9
mod_http_health: Copypaste IP access control code
Kim Alvefur <zash@zash.se>
parents:
5690
diff
changeset
|
28 |
09233b625cb9
mod_http_health: Copypaste IP access control code
Kim Alvefur <zash@zash.se>
parents:
5690
diff
changeset
|
29 The default for `http_health_allow_cidr` is empty. |
09233b625cb9
mod_http_health: Copypaste IP access control code
Kim Alvefur <zash@zash.se>
parents:
5690
diff
changeset
|
30 |
5690
9bcd257dea4e
mod_http_health: Provide a health check HTTP endpoint
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
31 # Details |
9bcd257dea4e
mod_http_health: Provide a health check HTTP endpoint
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
32 |
9bcd257dea4e
mod_http_health: Provide a health check HTTP endpoint
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
33 Adds a `http://your.prosody.example:5280/health` endpoint that returns either HTTP status code 200 when all appears to be good or 500 when any module |
9bcd257dea4e
mod_http_health: Provide a health check HTTP endpoint
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
34 [status][doc:developers:moduleapi#logging-and-status] has been set to `error`. |
9bcd257dea4e
mod_http_health: Provide a health check HTTP endpoint
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
35 |
9bcd257dea4e
mod_http_health: Provide a health check HTTP endpoint
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
36 # See also |
9bcd257dea4e
mod_http_health: Provide a health check HTTP endpoint
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
37 |
9bcd257dea4e
mod_http_health: Provide a health check HTTP endpoint
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
38 - [mod_measure_modules] provides module statues via OpenMetrics |
9bcd257dea4e
mod_http_health: Provide a health check HTTP endpoint
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
39 - [mod_http_status] provides all module status details as JSON via HTTP |