prometheus 生产环境部署


https://prometheus.io/docs/introduction/overview
https://docs.timescale.com/timescaledb/latest/tutorials/promscale

1. TimescaleDB

2. Promscale

3. node_exporter

4. Prometheus



docker network create --driver bridge promscale-timescaledb

docker run --name timescaledb \
    --network promscale-timescaledb \
    -e POSTGRES_PASSWORD=abcd1234 -d -p 5432:5432 \
    192.168.100.198:5000/timescale/timescaledb-ha:pg13-latest

docker run --name promscale -d -p 9201:9201 \
    --network promscale-timescaledb \
    192.168.100.198:5000/timescale/promscale:0.6.2 \
    -db-uri postgres://postgres:abcd1234@timescaledb:5432/postgres?sslmode=allow

docker run --name node_exporter -d -p 9100:9100 \
    --network promscale-timescaledb \
    192.168.100.198:5000/prometheus/node-exporter:1.2.2

mkdir -p /etc/prometheus
cat > /etc/prometheus/prometheus.yml << EOF
global:
 scrape_interval:     10s
 evaluation_interval: 10s
scrape_configs:
 - job_name: prometheus
   static_configs:
     - targets: ['localhost:9090']
 - job_name: node-exporter
   static_configs:
     - targets: ['node_exporter:9100']
remote_write:
  - url: "http://promscale:9201/write"
remote_read:
  - url: "http://promscale:9201/read"
    read_recent: true
EOF

docker run --name prometheus -d \
  --network promscale-timescaledb \
  -p 9090:9090 \
  -v /etc/prometheus:/etc/prometheus \
  192.168.100.198:5000/prometheus/prometheus:2.31.1


cat > docker-compose.yaml << EOF
version: '3.0'

services:
  db:
    image: timescaledev/timescaledb-ha:pg12-latest
    ports:
      - 5432:5432/tcp
    environment:
      POSTGRES_PASSWORD: password
      POSTGRES_USER: postgres

  prometheus:
    image: prom/prometheus:latest
    ports:
      - 9090:9090/tcp
    volumes:
      - ${PWD}/prometheus.yml:/etc/prometheus/prometheus.yml

  promscale:
    image: timescale/promscale:latest
    ports:
      - 9201:9201/tcp
    restart: on-failure
    depends_on:
      - db
      - prometheus
    environment:
      PROMSCALE_DB_CONNECT_RETRIES: 10
      PROMSCALE_WEB_TELEMETRY_PATH: /metrics-text
      PROMSCALE_DB_URI: postgres://postgres:password@db:5432/postgres?sslmode=allow

  node_exporter:
    image: quay.io/prometheus/node-exporter
    ports:
      - "9100:9100"
EOF

docker-compose up