- Lokalizowanie pliku konfiguracyjnego
- Znajdź ścieżkę katalogu danych
- Konfigurowanie PostgreSQL do generowania danych wyjściowych dziennika
- Uruchom ponownie usługę PostgreSQL
- Weryfikacja generowania dziennika
Włączenie logowania w PostgreSQL jest dość łatwe poprzez zmianę kilku ustawień konfiguracyjnych, a następnie ponowne uruchomienie serwera. Chociaż te ustawienia można zmienić „w pamięci”, umożliwiając w ten sposób tymczasowe rejestrowanie tylko dla tej konkretnej sesji klienta, w tym samouczku omówimy, jak skonfigurować postgres, aby na stałe tworzyć iteracyjne pliki dziennika dla wszystkich sesji i połączeń.
Lokalizowanie pliku konfiguracyjnego
Jeśli nie masz pewności, gdzie postgresql.conf
znajduje się plik konfiguracyjny, najprostszą metodą znalezienia lokalizacji jest połączenie z klientem postgres (psql
) i wydaj SHOW config_file;
polecenie:
postgres=# SHOW config_file;
config_file
------------------------------------------
/etc/postgresql/9.3/main/postgresql.conf
W tym przypadku możemy zobaczyć ścieżkę do postgresql.conf
plik dla tego serwera to /etc/postgresql/9.3/main/postgresql.conf
. Teraz po prostu otwórz ten plik w swoim ulubionym edytorze tekstu i możemy zacząć zmieniać ustawienia:
$ nano /etc/postgresql/9.3/main/postgresql.conf
Znajdź ścieżkę katalogu danych
Dobrym pomysłem jest również potwierdzenie ścieżki data
katalog dla twojej instalacji postgres. Przyda się to później, a pobranie ścieżki to kwestia innego prostego SHOW
oświadczenie:
postgres=# SHOW data_directory;
data_directory
------------------------------
/var/lib/postgresql/9.3/main
W niektórych instalacjach plik konfiguracyjny i data
katalog będzie miał tę samą ścieżkę, podczas gdy w innych (takich jak ten przykład) będą się różnić. Tak czy inaczej, skopiuj te data
ścieżka katalogu do późniejszego wykorzystania.
Konfigurowanie PostgreSQL do generowania danych wyjściowych dziennika
Z postgresql.conf
otwórz plik, przewiń w dół do ERROR REPORTING AND LOGGING
sekcji i prawdopodobnie zobaczysz wiele opcji konfiguracji zakomentowanych. Najbardziej krytyczne z tych ustawień to log_destination
i logging_collector
. Poniżej znajdują się zalecane ustawienia, ale możesz je zmienić, aby dopasować je do własnych potrzeb:
#------------------------------------------------------------------------------
# ERROR REPORTING AND LOGGING
#------------------------------------------------------------------------------
# - Where to Log -
log_destination = 'csvlog' # Valid values are combinations of
# stderr, csvlog, syslog, and eventlog,
# depending on platform. csvlog
# requires logging_collector to be on.
# This is used when logging to stderr:
logging_collector = on # Enable capturing of stderr and csvlog
# into log files. Required to be on for
# csvlogs.
# (change requires restart)
# These are only used if logging_collector is on:
log_directory = 'pg_log' # directory where log files are written,
# can be absolute or relative to PGDATA
log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log' # log file name pattern,
# can include strftime() escapes
Tutaj mówimy postgresowi, aby generował logi w pliku CSV
formatować i wyprowadzać je do pg_log
katalog (w data
informator). Odkomentowaliśmy także log_filename
ustawienie, aby utworzyć odpowiednią nazwę, w tym znaczniki czasu dla plików dziennika.
Szczegółowe informacje na temat wszystkich tych ustawień znajdziesz w official documentation
.
Ponownie uruchom usługę PostgreSQL
Ostatnim krokiem jest ponowne uruchomienie usługi PostgreSQL, aby te ustawienia, w szczególności logging_collector
, zacznie obowiązywać. Wykonanie restartu postgres będzie się różnić w zależności od systemu, ale zazwyczaj w systemie uniksowym polecenie będzie wyglądać mniej więcej tak:
$ service postgresql restart
* Restarting PostgreSQL 9.3 database server [ OK ]
Weryfikowanie generowania logów
Po ponownym uruchomieniu systemu rejestrowanie powinno rozpocząć się natychmiast. Aby upewnić się, że tak jest, przejdź do data/pg_log
katalog twojej instalacji postgres. Pamiętaj, że zdobyliśmy data
ścieżka do katalogu wcześniej, więc po prostu przejdź do tego katalogu, dodając /pg_log
do końca, aby dostać się do katalogu logów:
$ cd /var/lib/postgresql/9.3/main/pg_log
Teraz wypisz pliki i powinieneś zobaczyć, że plik dziennika został utworzony po poprzednim ponownym uruchomieniu usługi:
$ ls -l
-rw------- 1 postgres postgres 935 Apr 13 20:30 postgresql-2016-04-13_203022.csv
Mamy to; automatycznie generowane pliki dziennika są włączane w PostgreSQL poprzez zmianę zaledwie kilku ustawień konfiguracyjnych.