semanage подтверждает, что мой хост работает в разрешающем режиме .
Я могу войти в postgresql как пользователь puppetdb, если я не использую такой пароль:
[msk @ puppet ~] $ su - postgres
Пароль:
Последний вход: Пт 21 июн 14:19:01 EDT 2019 на pts / 1
bash-4.2 $ psql -d puppetdb -U puppetdb
psql: FATAL: Ошибка аутентификации однорангового узла для пользователя «puppetdb»
netstat -tlpn | grep postmaster показывает
tcp 0 0 127.0.0.1:5432 0.0.0.0:* LISTEN 22948 / postmaster
Ошибка Я вижу в /var/log/puppetlabs/puppetdb/puppetdb.log сотнями:
Pool - Connection is not available, request timed out after 3012ms.
2019-06-21T13:36:50.267-04:00 ERROR [p.p.c.services] Will retry database connection after temporary failure: java.sql.SQLTransientConnectionException: PDBMigrationsPool - Connection is not available, request timed out after 3000ms.
/var/lib/pgsql/11/data/pg_hba.conf содержит:
local all all peer
host all all 127.0.0.1/32 ident
host puppetdb puppetdb 127.0.0.1/32 peer
postgresql-Fri.log полон
FATAL: оставшиеся слоты подключения зарезервированы для суперпользовательских подключений без репликации.
Спасибо за любые подсказки.
PuppetDB не может подключиться к базе данных. Сначала проверьте файл database.ini
, возможно, в: /etc/puppetlabs/puppetdb/conf.d/database.ini
. Он должен содержать что-то вроде этого:
classname = org.postgresql.Driver
subprotocol = postgresql
subname = //localhost:5432/puppetdb
username = puppetdb
conn-max-age = 60
conn-keep-alive = 45
conn-lifetime = 0
Убедитесь, что в вашем экземпляре PostgreSQL установлено соответствующее количество подключений, то есть postgresql.conf
:
max_connections = 64
Перезапустите PostgreSQL.
Теперь проверьте как пользователь puppetdb
, что соединение действительно работает:
su - puppetdb -s /bin/sh -c "psql -h localhost puppetdb"
Если вы используете SSL, обязательно ознакомьтесь с руководством PostgreSQL SSL .
При отладке проблем с базой данных может быть полезна конечная точка состояния:
curl -X GET http://localhost:8080/status/v1/services | jq .