Vous n'êtes pas identifié(e).
- Contributions : Récentes | Sans réponse
Pages : 1
#1 11/04/2011 15:41:21
- genio
- Membre
Fichier postgrèsql.log
Bonjour à tous...
Pourquoi quand je code : log_filename = 'postgresql.log' dans mon postgresql.conf, je me retrouve avec un fichier log qui se nomme ainsi : postgresql.log.1302527814
Bizarre non ?
Merci pour vos réponses
Hors ligne
#2 11/04/2011 16:25:48
- gleu
- Administrateur
Re : Fichier postgrèsql.log
Je ne me rappelle plus de la raison pour laquelle ça a été fait ainsi, mais il y a une raison. Ce n'est donc pas un bug
Guillaume.
Hors ligne
#3 11/04/2011 17:00:25
- arthurr
- Membre
Re : Fichier postgrèsql.log
Bonjour,
Vous devez avoir une version inférieure à la 8.4, non ?
Si vous spécifiez un nom de fichier sans échappements, vous devriez prévoir d'utiliser un utilitaire de rotation des journaux pour éviter le risque de remplir le disque entier. Dans les versions précédentes à 8.4, si aucun échappement % n'était présent, PostgreSQL™ aurait ajouté l'epoch de la date de création du nouveau journal applicatif mais ce n'est plus le cas.
1302527814 = lun. 11 avril 2011 15:16:54 CEST
Dernière modification par arthurr (11/04/2011 17:01:51)
Hors ligne
#4 11/04/2011 17:14:55
- genio
- Membre
Re : Fichier postgrèsql.log
Merci à vous...
effectivement, je suis en 8.2 et je suis en train de tester Pgfouine sur un serveur de recette ...
Qu'est-ce qu'un nom de fichier 'sans échappement' (j'ai lu des trucs la dessus sur le paramètre log_line_prefix, mais je n'ai pas tout compris !)
Merci pour vos réponses...
Hors ligne
#5 11/04/2011 17:25:24
- gleu
- Administrateur
Re : Fichier postgrèsql.log
Les échappements, ce sont les % suivi d'une lettre. Ils sont remplacés par une information dépendant du caractère. Par exemple, %H est remplacé par l'heure. On appelle ça aussi des caractères jokers.
Guillaume.
Hors ligne
#6 11/04/2011 17:29:53
- arthurr
- Membre
Re : Fichier postgrèsql.log
http://www.linux-kheops.com/doc/man/man … ime.3.html
Pour ma part, je configure mes logs comme ceci :
logging_collector = on
log_directory = 'pg_log'
log_filename = 'postgresql-%d.log'
log_truncate_on_rotation = on
log_rotation_age = 1d
log_rotation_size = 0
Les fichiers se trouvent dans $PGDATA/pg_log/
Ils se nomment : postgresql-<N° du jour du mois en cours>.log
Ils changent automatiquement de nom tous les jours.
J'ai donc 31 fichiers de logs max sur mon serveur.
Hors ligne
#7 12/04/2011 15:25:14
- genio
- Membre
Re : Fichier postgrèsql.log
Merci à vous pour vos éclaircissements...
Donc, j'avance dans Pgfouine mais je ne comprend pas les erreurs ci-dessous, après exécution de pgfouine :
+ pgfouine.php -file /var/akio/db/aic/pg_log/postgresql-2011-04-12_151348.log -database akio -format html-with-graphs -report /tmp/akio/pgfouine_report.html=overall,bytype,hourly,slowest,n-mosttime,n-mostfrequent,n-slowestaverage,n-mostfrequenterrors
pgFouine did not find any valid PostgreSQL log line in your log file:
* check that PostgreSQL uses an english locale for logging (lc_messages in your postgresql.conf),
* check that you use the -logtype option (syslog, stderr) according to your log file,
* if you use syslog and log_line_prefix, check that your log_line_prefix has a trailing space,
* if you use stderr, check that your log_line_prefix is of the form '%t [%p]: [%l-1] '.
Or j'ai les variables suivantes dans mon postgrès.conf :
lc_messages = 'en_US.UTF-8'
log_destination = 'stderr'
redirect_stderr = on
log_line_prefix = '%t [%p]: [%l-1] '
Pouvez-vous m'aider ?
Hors ligne
#8 12/04/2011 15:28:38
- genio
- Membre
Re : Fichier postgrèsql.log
je vous envoie aussi un extrait de ma log :
2011-04-12 15:13:48 CEST [10694]: [1-1] LOG: database system was shut down at 2011-04-12 15:13:42 CEST
2011-04-12 15:13:48 CEST [10694]: [2-1] LOG: checkpoint record is at 56/30DB05C8
2011-04-12 15:13:48 CEST [10694]: [3-1] LOG: redo record is at 56/30DB05C8; undo record is at 0/0; shutdown TRUE
2011-04-12 15:13:48 CEST [10694]: [4-1] LOG: next transaction ID: 0/10711376; next OID: 106855
2011-04-12 15:13:48 CEST [10694]: [5-1] LOG: next MultiXactId: 50; next MultiXactOffset: 99
2011-04-12 15:13:48 CEST [10694]: [6-1] LOG: database system is ready
2011-04-12 15:14:05 CEST [10759]: [1-1] LOG: duration: 510.231 ms statement: SELECT d.datname as "Name",
r.rolname as "Owner",
pg_catalog.pg_encoding_to_char(d.encoding) as "Encoding"
FROM pg_catalog.pg_database d
JOIN pg_catalog.pg_roles r ON d.datdba = r.oid
ORDER BY 1;
2011-04-12 15:15:06 CEST [10917]: [1-1] LOG: duration: 713.306 ms statement: set datestyle to 'ISO'; select version(), case when pg_encoding_to_char(1) = 'SQL_ASCII' then 'UNKNOWN' else getdatabaseencoding() end;
2011-04-12 15:15:06 CEST [10917]: [2-1] LOG: duration: 161.249 ms statement: set client_encoding = 'UNICODE'
2011-04-12 15:15:07 CEST [10917]: [3-1] LOG: duration: 326.314 ms statement:
Hors ligne
#9 12/04/2011 16:37:12
- gleu
- Administrateur
Re : Fichier postgrèsql.log
Comme indiqué dans le message d'erreur, il vous manque l'option -logtype pour indiquer le format de votre fichier de traces (syslog ou stderr, ce dernier dans votre cas).
Guillaume.
Hors ligne
#10 12/04/2011 17:09:38
- genio
- Membre
Re : Fichier postgrèsql.log
Merci Guillaume, ça fonctionne !
pouvez-vous maintenant me dire quelle est la différence entre une exécution de pgfouine avec l'option -database et sans cette option...
Merci d'avance..
Hors ligne
#11 12/04/2011 17:55:38
- gleu
- Administrateur
Re : Fichier postgrèsql.log
L'option database permet de filtrer les requêtes à traiter par base de données. Par exemple, "-database b1" permet de faire un rapport que pour les requêtes de la base de données b1. Par contre, votre log_line_prefix n'est pas configuré pour permettre ça.
Guillaume.
Hors ligne
#12 13/04/2011 15:20:33
- genio
- Membre
Re : Fichier postgrèsql.log
Merci Gleu...
mais vu que pgfouine fonctionne avec un fichier log en entrée, c'est automatiquement celui de la database que l'on veut surveiller, donc je ne vois pas l'utilité d'un tel paramètre... à moins qu'une log puisse être partagée par deux instances !
A moins que ce paramètre serve à différencier la database 'utilisateur', des base postgrès, template0 et template1... est-ce le cas ?
Hors ligne
#13 13/04/2011 17:51:30
- arthurr
- Membre
Re : Fichier postgrèsql.log
Un cluster = N databases
Tu peux très bien créer plusieurs bases sur un même cluster :
create database test1;
create database test2;
create database test3;
et identifier les requêtes liées à chaque bases de données dans ton "log_line_prefix" : %d = database name
un log_line_prefix du genre "%t : %d (%u)" va te donner qq chose du genre :
2011-04-13 17:16:08 CEST : test1 (postgres) ...
Hors ligne
#14 14/04/2011 15:16:43
- genio
- Membre
Re : Fichier postgrèsql.log
Merci Arthurr...
Effectivement je n'avais pas pensé au cluster, car je n'ai qu'une database sur un serveur...
Donc, vous semblez me dire qu'il n'y aurait qu'une seule arborescence ////pg_log sur une architecture 'cluster' avec plusieurs database ?
Me trompe-je ?
Hors ligne
#15 14/04/2011 18:08:10
- gleu
- Administrateur
Re : Fichier postgrèsql.log
Non, vous ne vous trompez pas. Par contre, il est clair que vous n'avez pas qu'une seule base. Vous devez avoir au moins template0, template1, voire même postgres.
Guillaume.
Hors ligne
#16 15/04/2011 11:48:18
- genio
- Membre
Re : Fichier postgrèsql.log
Oui bien sûr, je ne parlais pas des databases 'systeme' Postgrès (postgrès, template0 etc...), mais bien de databases applicatives !
Merci pour vos éclaircissements...
Hors ligne
Pages : 1