Создаем необходимые каталог для контейнера и переходим в папку
mkdir -p ./data/prometheus && cd $_
Записываем содержимое в фаил docker-compose.yml
cat > docker-compose.yml
version: '3.3'
services:
prometheus:
container_name: prometheus
restart: always
image: prom/prometheus:v2.30.0
ports:
- 9090:9090
volumes:
- /data/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml
command:
--config.file=/etc/prometheus/prometheus.yml
--storage.tsdb.path=/prometheus
--web.console.libraries=/etc/prometheus/console_libraries
--web.console.templates=/etc/prometheus/consoles
--web.enable-lifecycle
network_mode: traefik_network
При необходимости добавляем лейблы для работы через traefik и не забываем закоментировать секцию порты
labels:
- traefik.enable=true
- traefik.http.middlewares.prometheus_https.redirectscheme.scheme=https
- traefik.http.routers.prometheus.entrypoints=web
- traefik.http.routers.prometheus.middlewares=prometheus_https@docker
- traefik.http.routers.prometheus.rule=Host(`prometheus.{youdomaine}`)
- traefik.http.routers.prometheus_https.entrypoints=websecure
- traefik.http.routers.prometheus_https.rule=Host(`prometheus.{youdomaine}`)
- traefik.http.routers.prometheus_https.tls=true
- traefik.http.routers.prometheus_https.tls.certresolver=le
- traefik.http.services.prometheus.loadbalancer.server.port=9090
Меняем {youdomaine} на доменное имя присвоенное серверу
Добавляем файл конфигурации
cat > prometheus.yml
global:
scrape_interval: 15s
evaluation_interval: 15s
external_labels:
monitor: 'prometheus-monitor'
rule_files:
- 'prometheus.rules.yml'
scrape_configs:
- job_name: 'prometheus'
scrape_interval: 5s
static_configs:
- targets: ['localhost:9090']
- job_name: 'traefik'
scrape_interval: 5s
static_configs:
- targets: ['traefik:8081']
labels:
group: 'traefik'