#postgresql #logging #orm #database-administration #application-server
Вопрос:
После включения log_connection
файл журнала postgres начинает регистрировать множество строк , подобных этим:
19:2021-09-17 00:00:00 CEST [26025]: user=[unknown],db=[unknown],app=[unknown],client=192.168.7.61 LOG: connection received: host=192.168.7.61 port=56911
22:2021-09-17 00:00:00 CEST [26026]: user=[unknown],db=[unknown],app=[unknown],client=192.168.7.61 LOG: connection received: host=192.168.7.61 port=56912
25:2021-09-17 00:00:00 CEST [26027]: user=[unknown],db=[unknown],app=[unknown],client=192.168.7.61 LOG: connection received: host=192.168.7.61 port=56913
28:2021-09-17 00:00:00 CEST [26028]: user=[unknown],db=[unknown],app=[unknown],client=192.168.7.61 LOG: connection received: host=192.168.7.61 port=56914
31:2021-09-17 00:00:00 CEST [26029]: user=[unknown],db=[unknown],app=[unknown],client=192.168.7.61 LOG: connection received: host=192.168.7.61 port=56915
34:2021-09-17 00:00:00 CEST [26030]: user=[unknown],db=[unknown],app=[unknown],client=192.168.7.61 LOG: connection received: host=192.168.7.61 port=56916
37:2021-09-17 00:00:00 CEST [26031]: user=[unknown],db=[unknown],app=[unknown],client=192.168.7.61 LOG: connection received: host=192.168.7.61 port=56917
40:2021-09-17 00:00:00 CEST [26032]: user=[unknown],db=[unknown],app=[unknown],client=192.168.7.61 LOG: connection received: host=192.168.7.61 port=56918
43:2021-09-17 00:00:00 CEST [26033]: user=[unknown],db=[unknown],app=[unknown],client=192.168.7.61 LOG: connection received: host=192.168.7.61 port=56919
46:2021-09-17 00:00:00 CEST [26034]: user=[unknown],db=[unknown],app=[unknown],client=192.168.7.61 LOG: connection received: host=192.168.7.61 port=56920
49:2021-09-17 00:00:00 CEST [26035]: user=[unknown],db=[unknown],app=[unknown],client=192.168.7.61 LOG: connection received: host=192.168.7.61 port=56921
Параметрами клиента/хоста являются IP-адреса сервера приложений.
Вчера я нашел 452,583 таких строк.
В чем может быть причина?
Спасибо
фрагмент файлов журнала
2021-09-17 01:55:04 CEST [3093]: user=[unknown],db=[unknown],app=[unknown],client=192.168.7.61 LOG: connection received: host=192.168.7.61 port=54868
2021-09-17 01:55:04 CEST [3094]: user=[unknown],db=[unknown],app=[unknown],client=192.168.7.61 LOG: connection received: ho/st=192.168.7.61 port=54869
2021-09-17 01:55:04 CEST [3093]: user=xxxxxxx,db=xxxxx,app=[unknown],client=192.168.7.61 LOG: connection authorized: user=xxxxxxxdatabase=xxxxxxx
2021-09-17 01:55:04 CEST [3094]: user=xxxxxxx,db=xxxxxxx,app=[unknown],client=192.168.7.61 LOG: connection authorized: user=xxxxxxxdatabase=xxxxxxx
2021-09-17 01:55:04 CEST [3093]: user=xxxxxxx,db=xxxxxxx,app=[unknown],client=192.168.7.61 LOG: disconnection: session time: 0:00:00.013 user=supreme_web database=xxxxxxxhost=192.168.7.61 port=54868
2021-09-17 01:55:04 CEST [3094]: user=xxxxxxx,db=xxxxxxx,app=[unknown],client=192.168.7.61 LOG: disconnection: session time: 0:00:00.014 user=xxxxxxxdatabase=xxxxxxxhost=192.168.7.61 port=54869
2021-09-17 01:55:04 CEST [3095]: user=[unknown],db=[unknown],app=[unknown],client=192.168.7.61 LOG: connection received: host=192.168.7.61 port=54870
2021-09-17 01:55:04 CEST [3095]: user=xxxxxxx,db=xxxxxxx,app=[unknown],client=192.168.7.61 LOG: connection authorized: user=xxxxxxxdatabase=xxxxxxx
2021-09-17 01:55:04 CEST [3095]: user=xxxxxxx,db=xxxxxxx,app=[unknown],client=192.168.7.61 LOG: disconnection: session time: 0:00:00.062 user=xxxxxxxdatabase=xxxxxxxhost=192.168.7.61 port=54870
Комментарии:
1. Этот журнал предполагает, что у вас нет эффективного пула соединений. Используйте его для повышения производительности!
2. Да, в данный момент нет пула соединений. Я хотел бы использовать PgBouncer. Что вы думаете о pgbouncer и, по вашему мнению, какова его лучшая установка, серверный узел Postgres, на клиентских узлах или в автономном кластере ? Спасибо за ваше предложение
3. pgBouncer заслуживает похвалы. Обычно проще всего запустить его на компьютере с сервером баз данных.
Ответ №1:
Если вы log_connections
включили эту опцию, то при успешной попытке подключения вы увидите две записи в журнале.
Первый-это когда клиент пытается установить соединение tcp/ip с сокетом PostgreSQL. Второй-это когда он подключается к базе данных и аутентифицируется.
Это первая запись в журнале, и процесс разделен на два этапа, чтобы вы могли дешево запретить подключения в pg_hba.conf, прежде чем создавать новый серверный сервер.
Комментарии:
1. таким образом, это означает, что это приложение устанавливает такое огромное количество соединений. Верно? Спасибо
2. да — каждое «полученное соединение» — это одно соединение