Официальный сайт студ.городка НГТУ
Программирование и БД » можно как-то логировать запросы psql клиента. 

#1  05.05.12 11:38

можно как-то логировать запросы psql клиента.

т.е. стоит задача именно выделить забросы инициированные пользователями через psql клиент, исключая запросы java приложений и т.д.

Offline

#2  06.05.12 22:35

Re: можно как-то логировать запросы psql клиента.

C postgre не работал. Но вообще наверняка принцип то же. Если на определенные таблицы надо то вешаем триггера и мониторим в них select SESSION_USER();. Что надо сливаем в лог. Тобишь мониторим по именам пользователей, соответственно должно быть введено соглашение, что они должны быть разные для разных приложений. В случае, когда триггеров нет, делаем класс-провайдер, ну и мониторим там.

Offline

#3  06.05.12 23:47

Re: можно как-то логировать запросы psql клиента.

ItStorm, много бд и много таблиц=) Приложение под своим пользователем заходит, а человек может, теоретически под любым пользователем из этих, и не отличишь. Т.е. как раз нужно человеческие запросы определять.

Offline

#4  07.05.12 00:37

Re: можно как-то логировать запросы psql клиента.

Tinkoff, ну покопай в эту сторону может че придумаешь. Допустим в mysql можно SHOW PROCESSLIST; там по полю host смотреть на каком порту крутится само приложение и именно приложение, а не клиент.
К примеру:

Код::

SHOW PROCESSLIST;
>>> '181', 'root', 'localhost:51502', NULL, 'Query', '0', NULL, 'SHOW PROCESSLIST'

Смотрим localhost:51502.
Далее:

Код::

netstat -tp | grep 51502
>>>tcp        0      0 PkBell:51502            PkBell:mysql            ESTABLISHED 13303/mysql-workben

Смотрим mysql-workben - значит человек. Ну принцип думаю понятен. По сути перед тобой задача сделать профайлер. Вполне возможно что есть смысл поискать, нормальный профайлер, который может фильтровать вывод и писать лог. В MS SQL вообще красота с этим. ))

Еще как вариант использовать прокси+LUA. Но не знаю есть ли он для postgre, но это уже из разряда особых извращений.

Исправлено ItStorm (07.05.12 00:40)

Offline

Программирование и БД » можно как-то логировать запросы psql клиента. 

ФутЕр:)

© Hostel Web Group, 2002-2025.   Сообщить об ошибке

Сгенерировано за 0.030 сек.
Выполнено 11 запросов.