У меня есть сервер на Debian 8, на котором установлен докер. Подход нужен в контейнерах. В контейнере установлен postgres 9.6. Я хочу настроить сбор данных таблицы pg_stat_statements в prometheus через postgres_exporter из PostgreSQL, а затем посмотреть на график через grafana. Развертывание графана и Прометея делали по инструкции:
$ git clone https://github.com/stefanprodan/dockprom
$ cd dockprom
$ docker-compose up -d
В prometheus.yml добавлено:
- job_name: 'postgres-exporter'
scrape_interval: 5s
static_configs:
- targets: ['localhost:9187']
Но у меня проблема с postgres-exporter: Статус цели Прометея
Взял вот такую статистику экспорта для PostgreSQL: ссылка на сайт. Пытался развернуть на докер с разными портами, но Прометей не хотел к нему подключаться. Подскажите, пожалуйста, как правильно установить и развернуть?
Спасибо, сработало!





Если вы хотите очистить только метрики postgresdb, вы можете просто использовать команды docker вместо docker-compose
sudo docker run --name postgres-exporter -e DATA_SOURCE_NAME = "postgresql://<postgresdb_user_name>:<postgres_db_password>@<postgres_vm_ip>:<postgresdb_port>/?sslmode=disable" -p 9187:9187 wrouesnel/postgres_exporter
Для меня полная команда, которую я выполнил, была
sudo docker run --name postgres-exporter -e DATA_SOURCE_NAME = "postgresql://postgres:[email protected]:5432/?sslmode=disable" -p 9187:9187 wrouesnel/postgres_exporter
Затем добавлена точка очистки в файле prometheus.yml
- job_name: postgres_100031
static_configs:
- targets: ['10.0.0.31:9187']
Перезапустите сервис Prometheus
Если вы не используете
network_mode: hostв docker-compose.yml, ваш локальный хост внутри контейнера отличается от локального хоста на вашем хосте. Вы можете определить свою собственную сеть докеров или объявитьnetwork_mode: hostв каждой службе создания докеров для установления связи между ними.