Article final de la série : rsyslog et logs PHP.

phpLogCon est une interface web pour consulter des logs au format syslog. Il fonctionne de paire avec rsyslog qui lit peut écrire des logs en base de données.

Sujets précédents :
Introduction à rsyslog : intro à rsyslog
Stocker les logs PHP en fichier : log php
Installation de rsyslog sous CentOS 5 : install de rsyslog

  • Logs PHP remontés par syslog

Modifier la configuration pour que les erreurs remontent par syslog :

# php.ini
error_log = syslog

Générer des messages d’erreurs avec la fonction trigger_error.

trigger_error('Impossible de diviser par zero', E_USER_ERROR);
...
trigger_error('Echec de connexion au site, user: ' . $user, E_USER_NOTICE);
  • Interface phpLogCon

Télécharger la dernière version de la lignée 1 : phpLogCon 1.2.3

tar xzvf phplogcon-1.2.3.tar.gz
chown apache:apache -R phplogcon-v1.2.3/
# config apache, par exemple
Alias /phplog /var/www/phplogcon-v1.2.3

Créer une base de donnée et un utilisateur.

# creer une base
mysqladmin create phplogcon
# creer un utilisateur
echo GRANT SELECT,INSERT,CREATE ON phplogcon.* TO phplogcon@localhost IDENTIFIED BY 'password' | mysql

Aller sur http://adresse_du_site/phplog et suivre la procédure d’installation.

  • Rsyslog lié à une base de données MySQL

Les erreurs PHP ont l’identification php si le script est lancé depuis un shell ou httpd (apache) par le web. Il faut logger les 2 types d’applications.
Fichier /etc/rsyslog.conf :

#### MODULES ####
$ModLoad ommysql.so
...
:programname, contains, "httpd"         :ommysql:localhost,phplogcon,phplogcon,password
:programname, contains, "php"           :ommysql:localhost,phplogcon,phplogcon,password

Remplacer les paramètres serveur, db, user et password par ceux qui conviennent. Faire recharger la configuration de rsyslog :

service rsyslog reload
  • Tests
php -r blabla
php -r "trigger_error('Impossible de diviser par zero', E_USER_ERROR)"

devrait générer des erreurs visibles depuis l’interface web phpLogCon.