From: | Jairo Graterón <jgrateron(at)gmail(dot)com> |
---|---|
To: | Carlos Edward Grajales Marmolejo <cgrajales(at)colombiasoftware(dot)net> |
Cc: | Lista Postgres ES <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | Re: Log de conexion |
Date: | 2018-05-01 20:03:52 |
Message-ID: | CALnU-rMU81gh91LUtWp9PrHNq=h6R40rxrhHKbo5KTY2qRBrSg@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
Saludos,
De repente hay alguna solución más optima pero usé esta manera
primero crear una tabla en una BD distinta a la de producción
create table auditoria_session
(
idauditoria serial not null,
datname name not null,
usename name not null,
application_name text not null,
client_addr inet not null,
client_port integer not null,
backend_start timestamp not null,
primary key(idauditoria),
unique ( datname, usename, application_name, client_addr, client_port,
backend_start)
);
Y en un proceso aparte ( un programa en C, Python) se hace una consulta a
pg_stat_activity cada dos o tres segundos para no crear carga en el
servidor, se guardan los registros que no estén en auditoria_session.
insert into auditoria_session (datname, usename, application_name,
client_addr, client_port, backend_start)
select datname, usename, application_name, client_addr, client_port,
backend_start from pg_stat_activity
where (datname, usename, application_name, client_addr, client_port,
backend_start ) NOT IN
(select datname, usename, application_name, client_addr, client_port,
backend_start from auditoria_session)
Unos cientos de registros diarios no creo que ocupen mucho en el disco,
pero se pueden eliminar algunos datos cada ciertos meses.
El 30 de abril de 2018, 19:19, Carlos Edward Grajales Marmolejo <
cgrajales(at)colombiasoftware(dot)net> escribió:
>
> Buenas tardes.
>
> Alguien de la lista sabe si existe alguna forma de capturar las conexiones
> realizadas a una base de datos?, diferente al log de postgres???
>
> Requiero saber la siguiente informacion:
> 1. ip de conexion
> 2. base de datos de conexion
> 3. fecha y hora de conexion
> 4. cualquier informacion adicional.
>
>
> Se wue mediante el log de porstgres se puede obtener esta informacion, sin
> embargo quisiera saber si existe un metodo alternativo.
>
> Algo asi como un trigger que se dispare al momento de la conexion y poder
> almacenar dicha informacion en una tabla independiente desde que cliente lo
> haga (psql, pgadmin, software, aplicacion, etc).
>
> O si dicha informacion esta presente en alguna tabla para recolectarla..
>
>
> Gracias por la colaboracion.
>
>
>
> --
> ------------------------------------------------------------------
>
>
>
> Cordialmente,
>
> *Carlos Edward Grajales*
> Colombia Software Ltda.
>
> - Calle 26N# 5AN-67
>
> Cali - Colombia
> www.colombiasoftware.net
> Cel. 318 359 46 15
> Tel: (2) 487 64 66
>
From | Date | Subject | |
---|---|---|---|
Next Message | mauricio pullabuestan | 2018-05-02 02:56:57 | Diferencia entre timestamp a interval en formato horas |
Previous Message | Lucas Luengas | 2018-05-01 19:47:27 | Re: Log de conexion |