Vous n'êtes pas identifié(e).
- Contributions : Récentes | Sans réponse
Pages : 1
#1 06/02/2012 13:56:04
- mortimer.pw
- Membre
Stratégie de LOG et PGFOUINE
Bonjour,
Je travaille avec une 9.0 sur CentOS 5.
Suite à des problèmes de connexions (too many clients already) et à des fichiers de Log inexploitable (2 Go, tout est tracé, un fichier par jour, avec rotation du 01 au 31), je retravaille la stratégie de tracage, en prenant en compte le fait de pouvoir exploiter les fichiers avec PGFOUINE.
J'ai paramétré mon postgresql.conf avec :
     log_destination = 'csvlog'
     logging_collector = on
     log_directory = '/home/postgres/PG_LOG'
     log_filename = '%u-%H'
     log_truncate_on_rotation = on
     log_rotation_age = 1h
     log_min_duration_statement = 0
     log_connections = on
     log_disconnections = on
     log_line_prefix = '%t [%p]: [%l-1] '     # préconisé pour PGFOUINE
     lc_messages = 'en_US.UTF8'     # préconisé pour PGFOUINE
J'obtiens maintenant 2 fichiers par heure, par exemple : 
     -rw------- 1 postgres postgres      0 fév  6 10:00 1-10
     -rw------- 1 postgres postgres      0 fév  6 10:00 1-10.csv
     -rw------- 1 postgres postgres      0 fév  6 11:00 1-11
     -rw------- 1 postgres postgres      0 fév  6 11:00 1-11.csv
Pour quelle raison, je ne trouve pas ?
J'ai vu que pour PGFOUINE, il fallait modifier le fichier CsvlogLogReader.class.php pour gérer une version 9. J'ai donc remplacé la ligne indiqué (if((count($csvLine) == 22) || (count($csvLine) == 23)) {).
J'exécute la commande :  pgfouine.php -file /home/postgres/PG_LOG/1-11.csv -format text -logtype csvlog > pierre.txt
et je reçois : 
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] '.
If you think your log file and your options are correct, please contact the author (gsmet on #postgresql@freenode or guillaume-pg at smet dot org).
Quelqu'un peut-il m'aider ?
Hors ligne
#2 06/02/2012 20:01:44
- cedric
- Membre
Re : Stratégie de LOG et PGFOUINE
Bonjour,
Je travaille avec une 9.0 sur CentOS 5.
Suite à des problèmes de connexions (too many clients already) et à des fichiers de Log inexploitable (2 Go, tout est tracé, un fichier par jour, avec rotation du 01 au 31), je retravaille la stratégie de tracage, en prenant en compte le fait de pouvoir exploiter les fichiers avec PGFOUINE.
J'ai paramétré mon postgresql.conf avec :
log_destination = 'csvlog'
logging_collector = on
log_directory = '/home/postgres/PG_LOG'
log_filename = '%u-%H'
log_truncate_on_rotation = on
log_rotation_age = 1h
log_min_duration_statement = 0
log_connections = on
log_disconnections = on
log_line_prefix = '%t [%p]: [%l-1] ' # préconisé pour PGFOUINE
lc_messages = 'en_US.UTF8' # préconisé pour PGFOUINEJ'obtiens maintenant 2 fichiers par heure, par exemple :
-rw------- 1 postgres postgres 0 fév 6 10:00 1-10
-rw------- 1 postgres postgres 0 fév 6 10:00 1-10.csv
-rw------- 1 postgres postgres 0 fév 6 11:00 1-11
-rw------- 1 postgres postgres 0 fév 6 11:00 1-11.csvPour quelle raison, je ne trouve pas ?
J'ai vu que pour PGFOUINE, il fallait modifier le fichier CsvlogLogReader.class.php pour gérer une version 9. J'ai donc remplacé la ligne indiqué (if((count($csvLine) == 22) || (count($csvLine) == 23)) {).
J'exécute la commande : pgfouine.php -file /home/postgres/PG_LOG/1-11.csv -format text -logtype csvlog > pierre.txt
et je reçois :
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] '.
If you think your log file and your options are correct, please contact the author (gsmet on #postgresql@freenode or guillaume-pg at smet dot org).Quelqu'un peut-il m'aider ?
étrange, les fichier sont manifestement vides.
Pouvez-vous vérifier les paramètres en cours avec la requete suivante:
 select name,setting,context,source from pg_settings where source != 'default' order by 1;
Cédric Villemain +33 (0)6 20 30 22 52
http://2ndQuadrant.fr/
PostgreSQL: Support 24x7 - Développement, Expertise et Formation
Hors ligne
#3 07/02/2012 09:01:23
- mortimer.pw
- Membre
Re : Stratégie de LOG et PGFOUINE
Bonjour Cédric,
Je suis sur une base de test, donc effectivement les fichiers étaient vides au moment de ma requête.
Mais si je créé de l'activité, ils se remplissent, pas de souci de ce côté.
J'ai modifié mon paramétrage pour rediriger vers stderr au lieu de csvlog et là tout fonctionne.
Est-il préférable de rester en stderr ou le csvlog apporte t'il un plus ? et est-ce qu'il fonctionne réellement avec PgFouine ?
Ma stratégie d'un fichier par heure et par jour de la semaine est-elle bonne ?
Le fait de modifier le paramètre lc_messages de 'fr_FR.UTF8' vers 'en_US.UTF8' peut-il avoir un impact sur une base de production ?
Est-ce que j'ai maintenant suffisamment d'infos pour analyser (connexions, performances, requêtes lentes, ...) ?
Le résultat de la requête demandé :
geo=# select name,setting,context,source from pg_settings where source != 'default' order by 1;
              name              |                     setting                      |  context   |        source
--------------------------------+--------------------------------------------------+------------+----------------------
 application_name               | psql                                             | user       | client
 archive_command                | (disabled)                                       | sighup     | configuration file
 archive_mode                   | off                                              | postmaster | configuration file
 autovacuum_naptime             | 60                                               | sighup     | configuration file
 checkpoint_completion_target   | 0.9                                              | sighup     | configuration file
 checkpoint_segments            | 32                                               | sighup     | configuration file
 config_file                    | /home/postgres/PG_DATA/postgresql.conf           | postmaster | override
 data_directory                 | /home/postgres/PG_DATA                           | postmaster | override
 DateStyle                      | ISO, DMY                                         | user       | configuration file
 default_tablespace             |                                                  | user       | configuration file
 default_text_search_config     | pg_catalog.french                                | user       | configuration file
 effective_cache_size           | 349440                                           | user       | configuration file
 hba_file                       | /home/postgres/PG_DATA/pg_hba.conf               | postmaster | override
 ident_file                     | /home/postgres/PG_DATA/pg_ident.conf             | postmaster | override
 lc_collate                     | fr_FR.UTF8                                       | internal   | override
 lc_ctype                       | fr_FR.UTF8                                       | internal   | override
 lc_messages                    | en_US.UTF8                                       | superuser  | configuration file
 lc_monetary                    | fr_FR.UTF8                                       | user       | configuration file
 lc_numeric                     | fr_FR.UTF8                                       | user       | configuration file
 lc_time                        | fr_FR.UTF8                                       | user       | configuration file
 listen_addresses               | *                                                | postmaster | configuration file
 log_autovacuum_min_duration    | 300                                              | sighup     | configuration file
 log_connections                | on                                               | backend    | configuration file
 log_destination                | stderr                                           | sighup     | configuration file
 log_directory                  | /home/postgres/PG_LOG                            | sighup     | configuration file
 log_disconnections             | on                                               | backend    | configuration file
 log_filename                   | %u-%H.log                                        | sighup     | configuration file
 logging_collector              | on                                               | postmaster | configuration file
 log_line_prefix                | %t [%p]: [%l-1] user=%u %h %s                    | sighup     | configuration file
 log_min_duration_statement     | 0                                                | superuser  | configuration file
 log_rotation_age               | 60                                               | sighup     | configuration file
 log_timezone                   | Europe/Paris                                     | sighup     | command line
 log_truncate_on_rotation       | on                                               | sighup     | configuration file
 maintenance_work_mem           | 524288                                           | user       | configuration file
 max_connections                | 100                                              | postmaster | configuration file
 max_stack_depth                | 2048                                             | superuser  | environment variable
 random_page_cost               | 2                                                | user       | configuration file
 search_path                    | geo, sas, igeo_pack, cgu_pack, j_geo, jrn_center | user       | user
 server_encoding                | UTF8                                             | internal   | override
 shared_buffers                 | 131072                                           | postmaster | configuration file
 superuser_reserved_connections | 6                                                | postmaster | configuration file
 temp_tablespaces               |                                                  | user       | configuration file
 TimeZone                       | Europe/Paris                                     | user       | command line
 timezone_abbreviations         | Default                                          | user       | command line
 transaction_isolation          | read committed                                   | user       | override
 transaction_read_only          | off                                              | user       | override
 wal_buffers                    | 2048                                             | postmaster | configuration file
 wal_level                      | minimal                                          | postmaster | configuration file
 work_mem                       | 10240                                            | user       | configuration file
(49 rows)
Merci pour votre aide.
Hors ligne
#4 07/02/2012 10:14:20
- Marc Cousin
- Membre
Re : Stratégie de LOG et PGFOUINE
En ce qui me concerne, aucune idée de si cvslog fonctionne. Je le fais toujours en stderr ou syslog 
Marc.
Hors ligne
#5 07/02/2012 13:20:57
- mortimer.pw
- Membre
Re : Stratégie de LOG et PGFOUINE
Bonjour Marc,
Je voulais faire du CSV car dans la doc postgresql on parle de mettre les logs dans une table.
J'imagine que c'est pour faciliter l'exploitation ??
Pouvez-vous jeter un oeil aux autres questions ci-dessus ?
D'avance merci.
Hors ligne
#6 07/02/2012 13:49:10
- Marc Cousin
- Membre
Re : Stratégie de LOG et PGFOUINE
Les logs dans une table c'est pour faciliter l'exploitation… si on veut exploiter les logs dans la base (ce qui n'est pas le cas le plus fréquent).
Pour ce qui est du nombre de fichiers et de la stratégie par heure, ce n'est pas un problème: pgfouine peut travailler sur de grosses logs, mais c'est vrai que d'avoir des plus petits fichiers vous permettra de plus facilement cibler ce que vous voulez: plutôt que de demander à pgfouine de filtrer des millions de lignes qui ne l'intéressent pas, autant lui donner tout de suite seulement la période qui l'intéresse.
Marc.
Hors ligne
#7 07/02/2012 14:49:04
- mortimer.pw
- Membre
Re : Stratégie de LOG et PGFOUINE
Merci Marc.
Puis-je abuser en vous demandant si le fait de modifier le paramètre lc_messages de 'fr_FR.UTF8' vers 'en_US.UTF8' peut avoir un impact autre que le fait de retourner les messages en anglais plutôt qu'en français ?
Hors ligne
#8 07/02/2012 15:32:56
- Marc Cousin
- Membre
Re : Stratégie de LOG et PGFOUINE
Aucun autre impact.
Marc.
Hors ligne
#9 08/02/2012 09:11:19
- mortimer.pw
- Membre
Re : Stratégie de LOG et PGFOUINE
Merci encore Marc pour toute l'aide que vous m'apportez.
Hors ligne
Pages : 1