Compare commits
4 Commits
1.5.0+v1.8
...
cleanup-do
| Author | SHA1 | Date | |
|---|---|---|---|
| 4e038327b5 | |||
| 7dbe5bf22e | |||
| 89b5fef6ac | |||
| cd42c64544 |
@ -12,6 +12,9 @@ ENABLE_BACKUPS=true
|
|||||||
# COMPOSE_FILE="$COMPOSE_FILE:compose.promtail.yml"
|
# COMPOSE_FILE="$COMPOSE_FILE:compose.promtail.yml"
|
||||||
# LOKI_PUSH_URL=https://loki.monitoring.example.org/loki/api/v1/push
|
# LOKI_PUSH_URL=https://loki.monitoring.example.org/loki/api/v1/push
|
||||||
|
|
||||||
|
## Expose node and cadvisor ports instead of traefik
|
||||||
|
# COMPOSE_FILE="$COMPOSE_FILE:compose.expose-ports.yml"
|
||||||
|
|
||||||
# Monitoring Server
|
# Monitoring Server
|
||||||
#
|
#
|
||||||
## Prometheus
|
## Prometheus
|
||||||
|
|||||||
43
README.md
43
README.md
@ -18,47 +18,37 @@ It's based heavily on the [monitoring-lite](https://git.coopcloud.tech/coop-clou
|
|||||||
|
|
||||||
<!-- endmetadata -->
|
<!-- endmetadata -->
|
||||||
|
|
||||||
## Setup a Metrics Gathering
|
## Setup Metrics Gathering
|
||||||
|
|
||||||
Where gathering.org is the node you want to gather metrics from.
|
Where gathering.org is the node you want to gather metrics from.
|
||||||
|
|
||||||
1. Configure DNS
|
1. Configure DNS
|
||||||
- monitoring.gathering.org
|
|
||||||
- cadvisor.monitoring.gathering.org
|
- cadvisor.monitoring.gathering.org
|
||||||
- node.monitoring.gathering.org
|
- node.monitoring.gathering.org
|
||||||
1. Configure Traefik to use BasicAuth
|
2. [Configure Traefik to use BasicAuth](https://git.coopcloud.tech/coop-cloud/traefik#configuring-wildcard-ssl-using-dns)
|
||||||
* `abra app config traefik.gathering.org`
|
3. `abra app new monitoring-ng`
|
||||||
uncomment
|
4. `abra app config monitoring.gathering.org` (for gathering only the main `compose.yml` is needed, nothing more.)
|
||||||
```
|
5. `abra app deploy monitoring.gathering.org`
|
||||||
# BASIC_AUTH
|
6. check that endpoints are up and basic-auth works
|
||||||
COMPOSE_FILE="$COMPOSE_FILE:compose.basicauth.yml"
|
|
||||||
BASIC_AUTH=1
|
|
||||||
SECRET_USERSFILE_VERSION=v1
|
|
||||||
```
|
|
||||||
- Generate userslist with httpasswd hashed password
|
|
||||||
`abra app secret insert traefik.gathering.org userslist v1 'admin:<hashed-secret>'`
|
|
||||||
make sure there is no whitespace in between `admin:<hashed-secret>`, it seems to break stuff...
|
|
||||||
- `abra app deploy -f traefik`
|
|
||||||
1. `abra app new monitoring-ng`
|
|
||||||
1. `abra app config monitoring.gathering.org`
|
|
||||||
for gathering only the main `compose.yml` is needed, nothing more.
|
|
||||||
1. `abra app deploy monitoring.gathering.org`
|
|
||||||
1. check that endpoints are up and basic-auth works
|
|
||||||
- cadvisor.monitoring.gathering.org
|
- cadvisor.monitoring.gathering.org
|
||||||
- node.monitoring.gathering.org
|
- node.monitoring.gathering.org
|
||||||
|
|
||||||
|
### Expose node and cadvisor via ports instead of traefik
|
||||||
|
|
||||||
|
In case you have no traefik running on the machine, you can expose the ports directly by uncommenting the following line:
|
||||||
|
```
|
||||||
|
# COMPOSE_FILE="$COMPOSE_FILE:compose.expose-ports.yml"
|
||||||
|
```
|
||||||
|
|
||||||
## Setup Metrics Browser
|
## Setup Metrics Browser
|
||||||
|
|
||||||
|
This builds upon [Setup Metrics Gathering](#setup-metrics-grathering) so make sure you did that first.
|
||||||
|
|
||||||
1. Configure DNS
|
1. Configure DNS
|
||||||
- monitoring.example.org
|
- monitoring.example.org
|
||||||
- prometheus.monitoring.example.org
|
|
||||||
- loki.monitoring.example.org
|
|
||||||
2. Setup monitoring stack
|
2. Setup monitoring stack
|
||||||
- `abra app new monitoring-ng`
|
- `abra app config monitoring.example.org` Uncomment prometheus, loki and grafana
|
||||||
- `abra app config monitoring.example.org`
|
- `abra app secret insert monitoring.example.org basic_auth v1 <password>`
|
||||||
Uncomment all the stuff
|
|
||||||
- `abra app secret insert monitoring.example.org basic_auth v1 <secret>`
|
|
||||||
this needs the plaintext traefik basic-auth secret, not the hashed one!
|
this needs the plaintext traefik basic-auth secret, not the hashed one!
|
||||||
- `abra app secret ls monitoring.example.org`
|
- `abra app secret ls monitoring.example.org`
|
||||||
- `abra app deploy monitoring.example.org`
|
- `abra app deploy monitoring.example.org`
|
||||||
@ -85,7 +75,6 @@ Where gathering.org is the node you want to gather metrics from.
|
|||||||
| Cadvisor | traefik basic-auth | cadvisor.monitoring.example.org |
|
| Cadvisor | traefik basic-auth | cadvisor.monitoring.example.org |
|
||||||
| Node Exporter | traefik basic-auth | node.monitoring.example.org |
|
| Node Exporter | traefik basic-auth | node.monitoring.example.org |
|
||||||
|
|
||||||
|
|
||||||
### Logging from a docker host to loki server without anything else
|
### Logging from a docker host to loki server without anything else
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|||||||
13
compose.expose-ports.yml
Normal file
13
compose.expose-ports.yml
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
---
|
||||||
|
version: "3.8"
|
||||||
|
|
||||||
|
services:
|
||||||
|
app:
|
||||||
|
ports:
|
||||||
|
- "9100:9100"
|
||||||
|
deploy:
|
||||||
|
|
||||||
|
cadvisor:
|
||||||
|
ports:
|
||||||
|
- "9101:8080"
|
||||||
|
deploy:
|
||||||
@ -48,6 +48,7 @@ services:
|
|||||||
deploy:
|
deploy:
|
||||||
labels:
|
labels:
|
||||||
- "traefik.enable=true"
|
- "traefik.enable=true"
|
||||||
|
- "traefik.docker.network=proxy"
|
||||||
- "traefik.http.services.${STACK_NAME}-grafana.loadbalancer.server.port=3000"
|
- "traefik.http.services.${STACK_NAME}-grafana.loadbalancer.server.port=3000"
|
||||||
- "traefik.http.routers.${STACK_NAME}-grafana.rule=Host(`${GRAFANA_DOMAIN:-$DOMAIN}`)"
|
- "traefik.http.routers.${STACK_NAME}-grafana.rule=Host(`${GRAFANA_DOMAIN:-$DOMAIN}`)"
|
||||||
- "traefik.http.routers.${STACK_NAME}-grafana.entrypoints=web-secure"
|
- "traefik.http.routers.${STACK_NAME}-grafana.entrypoints=web-secure"
|
||||||
|
|||||||
@ -27,6 +27,7 @@ services:
|
|||||||
condition: on-failure
|
condition: on-failure
|
||||||
labels:
|
labels:
|
||||||
- "traefik.enable=true"
|
- "traefik.enable=true"
|
||||||
|
- "traefik.docker.network=proxy"
|
||||||
- "traefik.http.services.${STACK_NAME}-loki.loadbalancer.server.port=3100"
|
- "traefik.http.services.${STACK_NAME}-loki.loadbalancer.server.port=3100"
|
||||||
- "traefik.http.routers.${STACK_NAME}-loki.rule=Host(`loki.${DOMAIN}`)"
|
- "traefik.http.routers.${STACK_NAME}-loki.rule=Host(`loki.${DOMAIN}`)"
|
||||||
- "traefik.http.routers.${STACK_NAME}-loki.entrypoints=web-secure"
|
- "traefik.http.routers.${STACK_NAME}-loki.entrypoints=web-secure"
|
||||||
@ -48,4 +49,4 @@ volumes:
|
|||||||
# secrets:
|
# secrets:
|
||||||
# loki_aws_secret_access_key:
|
# loki_aws_secret_access_key:
|
||||||
# external: true
|
# external: true
|
||||||
# name: ${STACK_NAME}_loki_aws_secret_access_key_${SECRET_LOKI_AWS_SECRET_ACCESS_KEY_VERSION}
|
# name: ${STACK_NAME}_loki_aws_secret_access_key_${SECRET_LOKI_AWS_SECRET_ACCESS_KEY_VERSION}
|
||||||
|
|||||||
@ -24,6 +24,7 @@ services:
|
|||||||
condition: on-failure
|
condition: on-failure
|
||||||
labels:
|
labels:
|
||||||
- "traefik.enable=true"
|
- "traefik.enable=true"
|
||||||
|
- "traefik.docker.network=proxy"
|
||||||
- "traefik.http.services.${STACK_NAME}-prometheus.loadbalancer.server.port=9090"
|
- "traefik.http.services.${STACK_NAME}-prometheus.loadbalancer.server.port=9090"
|
||||||
- "traefik.http.routers.${STACK_NAME}-prometheus.rule=Host(`prometheus.${DOMAIN}`)"
|
- "traefik.http.routers.${STACK_NAME}-prometheus.rule=Host(`prometheus.${DOMAIN}`)"
|
||||||
- "traefik.http.routers.${STACK_NAME}-prometheus.entrypoints=web-secure"
|
- "traefik.http.routers.${STACK_NAME}-prometheus.entrypoints=web-secure"
|
||||||
|
|||||||
@ -17,6 +17,7 @@ services:
|
|||||||
condition: on-failure
|
condition: on-failure
|
||||||
labels:
|
labels:
|
||||||
- "traefik.enable=true"
|
- "traefik.enable=true"
|
||||||
|
- "traefik.docker.network=proxy"
|
||||||
- "traefik.http.services.${STACK_NAME}-pushgateway.loadbalancer.server.port=9191"
|
- "traefik.http.services.${STACK_NAME}-pushgateway.loadbalancer.server.port=9191"
|
||||||
- "traefik.http.routers.${STACK_NAME}-pushgateway.rule=Host(`pushgateway.${DOMAIN}`)"
|
- "traefik.http.routers.${STACK_NAME}-pushgateway.rule=Host(`pushgateway.${DOMAIN}`)"
|
||||||
- "traefik.http.routers.${STACK_NAME}-pushgateway.entrypoints=web-secure"
|
- "traefik.http.routers.${STACK_NAME}-pushgateway.entrypoints=web-secure"
|
||||||
|
|||||||
@ -32,13 +32,14 @@ services:
|
|||||||
labels:
|
labels:
|
||||||
- "backupbot.backup=${ENABLE_BACKUPS:-true}"
|
- "backupbot.backup=${ENABLE_BACKUPS:-true}"
|
||||||
- "traefik.enable=true"
|
- "traefik.enable=true"
|
||||||
|
- "traefik.docker.network=proxy"
|
||||||
- "traefik.http.services.${STACK_NAME}-node.loadbalancer.server.port=9100"
|
- "traefik.http.services.${STACK_NAME}-node.loadbalancer.server.port=9100"
|
||||||
- "traefik.http.routers.${STACK_NAME}-node.rule=Host(`node.${DOMAIN}`)"
|
- "traefik.http.routers.${STACK_NAME}-node.rule=Host(`node.${DOMAIN}`)"
|
||||||
- "traefik.http.routers.${STACK_NAME}-node.entrypoints=web-secure"
|
- "traefik.http.routers.${STACK_NAME}-node.entrypoints=web-secure"
|
||||||
- "traefik.http.routers.${STACK_NAME}-node.tls=true"
|
- "traefik.http.routers.${STACK_NAME}-node.tls=true"
|
||||||
- "traefik.http.routers.${STACK_NAME}-node.tls.certresolver=${LETS_ENCRYPT_ENV}"
|
- "traefik.http.routers.${STACK_NAME}-node.tls.certresolver=${LETS_ENCRYPT_ENV}"
|
||||||
- "traefik.http.routers.${STACK_NAME}-node.middlewares=basicauth@file"
|
- "traefik.http.routers.${STACK_NAME}-node.middlewares=basicauth@file"
|
||||||
- "coop-cloud.${STACK_NAME}.version=1.5.0+v1.8.1"
|
- "coop-cloud.${STACK_NAME}.version=1.6.0+v1.8.1"
|
||||||
- "coop-cloud.${STACK_NAME}.timeout=${TIMEOUT:-120}"
|
- "coop-cloud.${STACK_NAME}.timeout=${TIMEOUT:-120}"
|
||||||
|
|
||||||
cadvisor:
|
cadvisor:
|
||||||
@ -63,6 +64,7 @@ services:
|
|||||||
condition: on-failure
|
condition: on-failure
|
||||||
labels:
|
labels:
|
||||||
- "traefik.enable=true"
|
- "traefik.enable=true"
|
||||||
|
- "traefik.docker.network=proxy"
|
||||||
- "traefik.http.services.${STACK_NAME}-cadvisor.loadbalancer.server.port=8080"
|
- "traefik.http.services.${STACK_NAME}-cadvisor.loadbalancer.server.port=8080"
|
||||||
- "traefik.http.routers.${STACK_NAME}-cadvisor.rule=Host(`cadvisor.${DOMAIN}`)"
|
- "traefik.http.routers.${STACK_NAME}-cadvisor.rule=Host(`cadvisor.${DOMAIN}`)"
|
||||||
- "traefik.http.routers.${STACK_NAME}-cadvisor.entrypoints=web-secure"
|
- "traefik.http.routers.${STACK_NAME}-cadvisor.entrypoints=web-secure"
|
||||||
|
|||||||
1
release/1.6.0+v1.8.1
Normal file
1
release/1.6.0+v1.8.1
Normal file
@ -0,0 +1 @@
|
|||||||
|
Adds option to expose ports for node and cadvisor service
|
||||||
Reference in New Issue
Block a user