Vous n'êtes pas identifié(e).
Pages : 1
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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