Re: [MASSMAIL]Re: Log de conexion

From: gilberto(dot)castillo(at)etecsa(dot)cu
To: Jairo Graterón <jgrateron(at)gmail(dot)com>
Cc: Carlos Edward Grajales Marmolejo <cgrajales(at)colombiasoftware(dot)net>, Lista Postgres ES <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: [MASSMAIL]Re: Log de conexion
Date: 2018-05-02 12:10:04
Message-ID: c58557acec2138429085cb3abef88244@etecsa.cu
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Hola,

Existe un modulo pgAudit, revisa por ahí va y hace lo que necesitas.

Saludos,

Gilberto

On 2018-05-01 16:03, Jairo Graterón wrote:
> 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 [1]
>> Cel. 318 359 46 15
>> Tel: (2) 487 64 66
>
>
>
> Links:
> ------
> [1] http://www.colombiasoftware.net/

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Carlos Edward Grajales Marmolejo 2018-05-02 17:28:16 Re: [MASSMAIL]Re: Log de conexion
Previous Message Jairo Graterón 2018-05-02 04:06:31 Re: Diferencia entre timestamp a interval en formato horas