Files
Ubuntu_docs/PostgreSQL_Exporter.md
2025-04-07 07:46:21 +05:00

3.6 KiB
Raw Blame History

Устанавливаю согласно инструкции из:

https://github.com/prometheus-community/postgres_exporter

Подключаюсь к нужной машине

ssh igor@ccalm.org -p 2200

Configure postgresql.conf

  shared_preload_libraries = 'pg_stat_statements'
  pg_stat_statements.track = all

1. Установка Docker и Docker Compose

Если Docker не установлен, установим его:

    sudo apt update && sudo apt upgrade -y &&
    sudo apt install -y docker.io docker-compose &&
    sudo systemctl enable --now docker

2. Установка postgres-exporter в докере из заранее подготовленного образа

sudo mkdir -p /opt/postgres-exporter &&
sudo chown $USER:$USER /opt/postgres-exporter &&
cd /opt/postgres-exporter

Создаю файл с настройками

cd /opt/postgres-exporter/ &&
cat > docker-compose.yml <<'EOF'
services:
  postgres-exporter:
    image: quay.io/prometheuscommunity/postgres-exporter
    container_name: postgres-exporter
    restart: unless-stopped
    network_mode: "host"
    environment:
      DATA_SOURCE_URI: "postgresql://postgres:309A86FF65A78FB428F4E38DFE35F730@localhost:5432/postgres?sslmode=disable"
    volumes:
      - ./postgres_exporter.yml:/etc/postgres_exporter.yml
    command:
      - "--config.file=/etc/postgres_exporter.yml"

EOF

Создаём файл с настройками

cd /opt/postgres-exporter/ &&
cat > postgres_exporter.yml <<'EOF'
collectors:
  - database
  - index
  - query
  - table
EOF

Запускаю:

  cd /opt/postgres-exporter &&
  sudo docker-compose up -d

Проверяю запущен ли докер

  sudo docker ps

Testing with:

curl "http://127.0.0.1:9187/metrics"

Посмотреть журнал за сегодня:

journalctl --since today

Настраиваем простую авторизацию при помощи HAProxy для скачивания при помощи удаленного сервера

sudo mcedit /etc/haproxy/haproxy.cfg

Настраиваем:

    acl v_metrics_nd path_beg /metrics_nd
    acl v_basic_auth http_auth(prometheus_list)
    http-request auth realm Metrics_org_ccalm_nd if v_metrics_nd !v_basic_auth
    use_backend b_metrics_nd if v_metrics_nd v_basic_auth

backend b_metrics_nd
    mode http
    option http-keep-alive
    http-request replace-path .* /metrics
    server web1 127.0.0.1:9100 check

Проверяем

  haproxy -f /etc/haproxy/haproxy.cfg -c

Перезагружаем:

  sudo systemctl restart haproxy

Подключаюсь к машине где Prometeus:

ssh igor@192.168.200.84 -p 22

Перезагружаем prometheus чтобы он начал собирать метрики

	sudo systemctl restart prometheus

Теперь можно настраивать графану, вот готовыдашбоард Открыть Grafana Перейти в Dashboards → Import Вставить ID: 9628 Выбрать источник данных Prometheus (с PostgreSQL Exporter) Нажать Import

Теперь можно настраивать графану, вот готовыдашбоард Открыть Grafana Перейти в Dashboards → Import Вставить ID: 12273 Выбрать источник данных Prometheus (с PostgreSQL Exporter) Нажать Import