Développeur Web RoR

Aller au contenu | Aller au menu | Aller à la recherche

Tag - log

Fil des billets

lundi 17 juillet 2017

Find et Grep : quelques exemples pratiques

Voici quelques exemples pratiques de find grep et autres :

grep -v pouet permet de ne selectionner que les lignes ne comportant pas pouet !

find . -mmin -10 permet de récupérer la liste des fichiers modifiés il y a moins de 10 minutes

grep "action" development_error.log -B 2 -A 2 permet de chercher 'action' dans development_error.log avec 2 lignes Avant (Before) et une ligne Après (After)

Ce billet sera mis à jour au fur et à mesure des découvertes.

mercredi 24 novembre 2010

Rotation des logs - Configuration de logrotate sur ubuntu

Logrotate permet de faire une rotation des logs ! C'est certainement déjà utiliser sur votre système. Le but est ici de l'utiliser pour ses logs perso.

Exemple pratique d'utilisation

Actuellement :

Vous avez un fichier de log qui fait 2 Go parce que ça fait 6 mois que vous avez installé votre serveur. Mais l'espace disque vous le payez et ça commence à être lourd de vider les logs tous les matins.

Avec log rotate vous avez ceci

10 fichiers de log (1 par mois) quand on passe au mois n+1 le fichier log n-9 est supprimé et le mois n-8 et renommé en n-9. L'avantage c'est que le nombre de fichier de log ne change pas logrotate peut compresser tous les logs des mois passés. Et quand vous cherchez les logs du mois dernier pas besoin de parser le log de 2 Go. Le découpage des fichiers n'est pas forcément horaire. Ca peut être un découpage par taille (rotation des logs quand le log courant atteint 10 Mo)

Dans la configuration de logrotate ( /etc/logrotate.conf ) il y a :

include /etc/logrotate.d

Donc logrotate charge les fichiers dans /etc/logrotate.d . Donc si vous avez besoin d'un logrotate vous créez un nouveau fichier dans /etc/logrotate.d :

Exemple du fichier /etc/logrotate.d/nginx :

/opt/nginx/logs/error.log {

        daily

        rotate 10

        compress

        delaycompress

        missingok

        notifempty

        create 644 root root

}

/opt/nginx/logs/access.log {

        daily

        rotate 10

        compress

        delaycompress

        missingok

        notifempty

        create 644 root root

}

Rotation journalière avec 10 jours de log (compression) je vous encourage à lire la documentation francaise de logrotate : http://www.delafond.org/traducmanfr/man/man8/logrotate.8.html

Source : http://www.croc-informatique.fr/2009/06/rotation-des-logs-avec-logrotate/

vendredi 22 janvier 2010

Les logs des applications RubyOnRails (logger level, keep_releases capistrano) en production

Quand votre déploiement via Capistrano échoue à cause du disque dur du serveur de production qui est plein à cracker le moment arrive pour vous de trouver un moyen d'économiser de la place !

Ah ! Vous avez oublié de penser à ça ! Bon ben vérifiez !

df -h

Ensuite on va selectionner ce qu'il faut pour les logs en production : Dans environments/production.rb sur la ligne du logger (config.logger = Logger.new("#{RAILS_ROOT}/log/#{RAI......):

Ci-dessous : 20.megabyte et la taille de chaques fichiers log, quand le fichier atteint 20 Mo, il est renommé production.log.0 puis
production.log.1
production.log.2
etc...

50 et le nombre de fichier log à conserver les plus anciens sont supprimés.

config.logger = Logger.new("#{RAILS_ROOT}/log/#{RAILS_ENV}.log", 50, 20.megabyte)

Autre chose, soyons selectif, on production seul les messages d'erreurs nous sont utiles, modifiez le niveau du logger :

#Niveaux: :debug, :info, :warn, :error, :fatal
config.logger.level = Logger::ERROR

Tout cela est aussi valable pour le mode "development" (environments/development.rb)

Bon enfin pour capistrano : deploy.rb :

set :keep_releases, 4

La commande permet lors d'un 'cap deploy:cleanup' de ne conserver que 4 releases. (Supprime les anciennes releases ainsi que les logs associés à chaque release)