<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Forum PostgreSQL - Monitorowanie zdarzeń]]></title>
	<link rel="self" href="http://forum.postgresql.org.pl/extern.php?action=feed&amp;tid=14385&amp;type=atom"/>
	<updated>2017-06-29T07:01:07Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.postgresql.org.pl/viewtopic.php?id=14385</id>
		<entry>
			<title type="html"><![CDATA[Odp: Monitorowanie zdarzeń]]></title>
			<link rel="alternate" href="https://forum.postgresql.org.pl/viewtopic.php?pid=18026#p18026"/>
			<content type="html"><![CDATA[wszystko co można wyciągnąć z logów masz opisane w pliku postgresql.conf
Ciebie chyb najbardziej będą interesowały parametry:
log_connnetions = on
log_disconnetions = on
log_hostname = on
i powinieneś poczytać o log_line_prefix

PS O ile dobrze pamiętam każda zmiana powoduje,konieczność zmiany tabeli obcej do pliku z logami, bo zmienia się ilość i kolejność kolumn]]></content>
			<author>
				<name><![CDATA[c_michal]]></name>
				<uri>https://forum.postgresql.org.pl/profile.php?id=627</uri>
			</author>
			<updated>2017-06-29T07:01:07Z</updated>
			<id>https://forum.postgresql.org.pl/viewtopic.php?pid=18026#p18026</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Odp: Monitorowanie zdarzeń]]></title>
			<link rel="alternate" href="https://forum.postgresql.org.pl/viewtopic.php?pid=18025#p18025"/>
			<content type="html"><![CDATA[Ok, włączyłem audyt oraz logowania zdarzeń i podłączyłem to pod foreign table.
Jedyne czego mi brakuje to nazwa użytkownika i hosta zdalnego. Z tego co widzę postgres daje tylko informację o adresie IP i sockecie z którego było połączenie. Czy jest jakaś możliwość uzyskania takiej informacji czy to jest nie do przeskoczenia?]]></content>
			<author>
				<name><![CDATA[kostek]]></name>
				<uri>https://forum.postgresql.org.pl/profile.php?id=2549</uri>
			</author>
			<updated>2017-06-28T07:25:00Z</updated>
			<id>https://forum.postgresql.org.pl/viewtopic.php?pid=18025#p18025</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Odp: Monitorowanie zdarzeń]]></title>
			<link rel="alternate" href="https://forum.postgresql.org.pl/viewtopic.php?pid=18024#p18024"/>
			<content type="html"><![CDATA[Suuuuper! 
Dzięki ogromne Michał, zabieram się do lektury.]]></content>
			<author>
				<name><![CDATA[kostek]]></name>
				<uri>https://forum.postgresql.org.pl/profile.php?id=2549</uri>
			</author>
			<updated>2017-05-15T21:57:45Z</updated>
			<id>https://forum.postgresql.org.pl/viewtopic.php?pid=18024#p18024</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Odp: Monitorowanie zdarzeń]]></title>
			<link rel="alternate" href="https://forum.postgresql.org.pl/viewtopic.php?pid=18023#p18023"/>
			<content type="html"><![CDATA[Poczytaj poniższą dokumentacje do logów systemowych:
[url]https://www.postgresql.org/docs/9.1/static/runtime-config-logging.html[/url]

Proponuję zmienić format logów na CSV i podpinać sobie dynamicznie pliki logów jako tabele obce przy wykorzystaniu rozszerzenie FILE_FDW (polecenie CREATE EXTENSION file_fdw), które umożliwia podpięcie pliku tekstowego jako tabeli (struktura tabeli będzie wyglądała jak w punkcie 18.8.4. Using CSV-Format Log Output)

Pliki z logami możesz wyświetlić poleceniem select * from pg_ls_dir('pg_log')

Co i jak zbierasz w logach, a więc co będziesz analizował musisz poustawiać w pliku postgresql.conf

PS
O ile pamiętam analiza nie udanych logować jest możliwa ale PG rozróżnia dwa zdarzenia logowania 
1. rozpoczęcie procesu 
2. wynik pozytywny dla logowania
więc najpierw musisz sobie te zdarzenia połączyć by widzieć czy zadana sesja została zakończona sukcesem czy nie.]]></content>
			<author>
				<name><![CDATA[c_michal]]></name>
				<uri>https://forum.postgresql.org.pl/profile.php?id=627</uri>
			</author>
			<updated>2017-05-15T12:26:38Z</updated>
			<id>https://forum.postgresql.org.pl/viewtopic.php?pid=18023#p18023</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Monitorowanie zdarzeń]]></title>
			<link rel="alternate" href="https://forum.postgresql.org.pl/viewtopic.php?pid=18022#p18022"/>
			<content type="html"><![CDATA[Cześć wszystkim

Ze względów bezpieczeństwa muszę "wyłapywać" pewne zdarzenia na bazie danych, które potem będą przekazywane dalej i analizowane przez system do wykrywania nieprawidłowości. Do tych zdarzeń należą:
1. operacje DDL - create, alter, drop
2. logowania(w tym nieudane próby), wylogowania
3. nadawanie uprawnień grant/revoke
4. restart bazy danych

Mam coś takiego zrobione już dla baz ORACLE - tam jest to bardzo proste gdyż ORACLE dla każdego z powyższych zdarzeń pozwala zdefiniować trigger i odpowiednie info zapisać w tabeli. Teraz muszę w analogiczny sposób podłączyć bazy postgresowe. Z tego co czytałem od wersji 9.3 "weszly" event_triggery ale jest to dość mocno ograniczone. Wyczytałem też że postgres nie loguje historii SQL'i w tabelach systemowych, które ewentualnie mógłbym potem "przeczesać" w poszukiwaniu tych, które mnie interesują. Czy może da się to załatwić jakimś audytem ?

Bardzo proszę o jakieś pomysły

pozdrawiam]]></content>
			<author>
				<name><![CDATA[kostek]]></name>
				<uri>https://forum.postgresql.org.pl/profile.php?id=2549</uri>
			</author>
			<updated>2017-05-15T08:21:32Z</updated>
			<id>https://forum.postgresql.org.pl/viewtopic.php?pid=18022#p18022</id>
		</entry>
</feed>
