semanage подтверждает, что мой хост работает в разрешающем режиме.
Я могу войти в postgresql как пользователь puppetdb, если я не использую такой пароль:
[msk@puppet ~]$ su - postgres
Password:
Last login: Fri Jun 21 14:19:01 EDT 2019 on pts/1
bash-4.2$ psql -d puppetdb -U puppetdb
psql: FATAL: Peer authentication failed for user "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: remaining connection slots are reserved for non-replication superuser connections
Спасибо за любые подсказки.
/var/lib/pgsql/11/data/pg_hba.conf хотел, чтобы эта строка была добавлена в начало.
host puppetdb puppetdb :: 1/24 доверие
Я забыл опубликовать этот вопрос. Спасибо за помощь :)
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 .