OVH Community, votre nouvel espace communautaire.

serveur sous plesk : fichier error_log de 1.2To ! comment le vider proprement ?


Caviar
04/02/2016, 18h09
ubuntu pour moi merci.
Une fois redémarré il va recréer le error_log tout seul c'est ça ? et dans ce cas je fais ce que je veux de l'autre renommé ?

sich
04/02/2016, 18h05
apachectl stop
mv error.log back_error.log
apachectl start

Enfin du moins sous Debian... A adapter à ta distrib.

Caviar
04/02/2016, 16h42
ok. donc j’arrête le service apache dans plesk (ou en ssh). je clean mon fichier et je relance apache en ssh.
A priori c'est bien le seul service à utiliser ce fichier ?

thanks

sich
04/02/2016, 14h20
Apache va recréer le fichier quand tu vas le redémarrer. Mais il pourrait ne pas aimer le fait que tu manipules un fichier de cette taille alors qu'il écrit dedans.
D'où l'intérêt d'arrêter apache, renommer le fichier, puis relancer apache.
Ce qui te permettra de travailler tranquillement sur le fichier en question.

Caviar
04/02/2016, 14h13
yes merci
C'est pas vraiment la ligne de commande qui me fait peur. c'est son effet
ma grande question, tu l'as compris, c'est si je vide ce fichier est ce que apache va "bien le prendre"

j'ai aussi trouvé cette commande qui à priori à le même effet

echo > /var/www/vhosts/xxxxx.com/logs/error_log
en tout cas merci pour toutes ces infos
++

sich
04/02/2016, 13h45
Citation Envoyé par Caviar
non pas encore testé. mais je pense que je vais faire ça en premier lieu effectivement.
je stresse un peu simplement parce que je me dis que compresser un fichier 1.2To quand il reste que quelques GO de libre sur le serveur ça peut poser un pb ?
comme c'est en prod avec du monde qui bosse sur le serveur je préfère prendre un max de précautions et d'infos en amont pour éviter la casse ...
merki
++
non tu ne pourras pas... Il y'a besoin d'un fichier temporaire pour créer l'archive...
Le mieux étant d'arrêter le serveur web, de renommer le fichier via mv, ensuite tu redémarres apache.
De là soit tu supprimes le fichier, soit tu fais comme dit bbr18.
Il n'y a pas d'obligation conserver les logs d'erreurs. Donc configure ton logrotate pour faire une rotation tous les jours sur 5 jours ça suffira.

bbr18
04/02/2016, 12h20
Tiens voilà un lien avec une réponse pour purger un fichier, ne sachant pas quelle distribution tu utilises (Plesk sur ? ?)
https://forum.ubuntu-fr.org/viewtopic.php?id=585861
en résumé tu tapes en ssh (oui je sais tu n'aimes pas mais c'est un truc incontournable pourtant)
Code:
:>chemin_du_fichier/nom_du_fichier

Nowwhat
04/02/2016, 11h16
Mon config 'logrotate' n'est pas si simple que ça http://www.hostingpics.net/viewer.ph...0203183845.png
C'est plutôt ça : http://pastebin.com/W07gMv92


... et dans /etc/logrotate.d/ j'ai un fichier "apache2" qui contient :
Code:
/var/log/apache2/*.log {
	weekly
	missingok
	rotate 52
	compress
	delaycompress
	notifempty
	create 644 root adm
	sharedscripts
	prerotate
		su -l -c /usr/share/awstats/tools/update.sh www-data
	endscript
	postrotate
		/etc/init.d/apache2 reload > /dev/null
	endscript
}
Dès je mise en place, je ne vais pas dire : "ça devrait fonctionner" mais je teste.
Et logrotate donne la possibilité de tester son config ...
Code:
man logrotate
et t'as la réponse.

Code:
logrotate -d /etc/logrotate.conf
qui va tester (mais pas réelement faire) le paramétrage.
Code:
...
rotating pattern: /var/log/apache2/*.log  weekly (52 rotations)
empty log files are not rotated, old logs are removed
considering log /var/log/apache2/access.log
  log does not need rotating
considering log /var/log/apache2/vitruel-domaine1.log
  log does not need rotating
considering log /var/log/apache2/vitruel-domaine1-error.log
  log does not need rotating
considering log /var/log/apache2/vitruel-domaine1.log
  log does not need rotating
etc etc.
...

Ce qui je veux dire : plesk, c'est bien. Mais pour vraiment bien faire les choses, faut passer par l'accès SSH. T'as bien vu pourquoi ... avec des fichiers logs trop grand, c'est tout ton serveur qui plante (et le premier qui tombe, c'est Plesk lui même)

Par contre : mes "error logs" d'apache sont petit - j'aime pas du tout utiliser des scripts PHP bourré d'erreurs. Ça pu, c'est mauvais, ça laisse la place au bugs et autre failles. je répare mes scripts PHP, ou je le vire.

Caviar
04/02/2016, 10h56
non pas encore testé. mais je pense que je vais faire ça en premier lieu effectivement.
je stresse un peu simplement parce que je me dis que compresser un fichier 1.2To quand il reste que quelques GO de libre sur le serveur ça peut poser un pb ?
comme c'est en prod avec du monde qui bosse sur le serveur je préfère prendre un max de précautions et d'infos en amont pour éviter la casse ...
merki
++

bbr18
04/02/2016, 10h45
Citation Envoyé par Caviar
au pire je le télécharge ... mais faut que je le vire quand même c'est ça le but là

++
mais... ! une fois compressé il va maigrir considérablement car les logs c'est du texte brut.
As-tu essayé de changer la config de ton logrotate en le mettant à journalier ? Si logrotate est fonctionnel demain ton fichier aura été compressé, renommé et remplacé par un tout neuf. Tu n'auras rien à bidouiller.

Caviar
04/02/2016, 10h09
on est d'accord que bigBro ça devient n'importe quoi ... mais bon je peux pas laisser un fichier de 1To sur mon serveur...j'ai plus de place !!
au pire je le télécharge ... mais faut que je le vire quand même c'est ça le but là

++

sich
03/02/2016, 21h16
Citation Envoyé par bbr18
c'est une obligation légale de conserver les logs 1 an ^^
et vi, bienvenu dans un état policier.... Après la conservation des logs pour fliquer tout le monde on a l'état d'urgence permanent..... Bien triste tout ça...

bbr18
03/02/2016, 19h32
Perso je m'en fous un peu de conserver les logs... (ceux là en tout cas)
c'est une obligation légale de conserver les logs 1 an ^^
sinon tu peux mettre ta rotation sur : par date, tous les jours, demain il aura fait le boulot tout seul (en principe)

Caviar
03/02/2016, 19h14
hello
merci pour la réponse.
Pas vu d'endroit pour lancer le logrotate directement dans plesk ...
et oui je suis d'accord... il y a un truc qui n'a pas fonctionné dans l'histoire.

Perso je m'en fous un peu de conserver les logs... (ceux là en tout cas)

En fait si je comprends bien c'est risqué de supprimer ce fichier à chaud ou simplement de le vider c'est bien ça ?

thx

bbr18
03/02/2016, 19h07
je ne connais pas Plesk (et aucune envie de connaitre :P ), mais ne pas faire tourner ton logrotate aura comme effet de remplir encore plus ce fichier, donc peur ou pas va falloir le faire et j'ai un doute sur son fonctionnement car s'il était paramétré à 10240 ko de taille maxi avant rotate, ça n'a pas fonctionné.
Dans Plesk tu dois bien avoir moyen de lancer la rotation ?
Edit : oui si tu changes la config de php il faut relancer apache

Caviar
03/02/2016, 18h54
hello merci pour vos réponses.
la rotation des logs est configurée sur le domaine c'est ça que je ne comprends pas ... très étrange... c'est comme si ça avait planté
la config ici : http://www.hostingpics.net/viewer.ph...0203183845.png



ça se règle dans le php.ini oui soit juste pour ce domaine soit pour tout le serveur (et pense à relancer Apache)
ce que je pensais faire niveau php c'est passer par plesk (si je peux éviter les bidouilles en ssh ...)

dans les paramètres php de mon domaine > Directives supplémentaires > champ de texte
et entrer
error_reporting = E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED

j'imagine que ça évitera de loguer toutes ces p*** de notice php (?)
faut redémarrer apache si je modifie qqch à cet endroit où ça se fait tout seul .

______
fais tourner manuellement ton logrotate, il va compresser le fichier et va t'en créer un nouveau
je veux bien faire tourner le log rotate manuellement. mais j'ai peur qu'avec un fichier error_log de 1.2To ça plante ... d'autant que le serveur est full à 84% du coup ... pas sur que ça process quoi que ce soit non ? j'ai un peu peur que le serveur plante sur ce coup.

Autrement c'est quoi la commande ? # /usr/local/psa/admin/sbin/statistics --calculate-one --domain-name=domain.tld chopé sur : http://kb.odin.com/en/111482

_____

D'autre part le paramètre error_reporting est sur default dans la config php du domaine ainsi que log_errors et display_error

si jamais je passe log_errors sur off est-ce qu'à tout hasard ça ferait le ménage tout seul ?

merci pour vos conseils éclairés

bbr18
03/02/2016, 18h49
oui et aussi régler les problèmes php qui génèrent ces erreurs ^^
et paramétrer logrotate pour que ça tourne plus souvent ou mettre une limite de taille

sd82979
03/02/2016, 18h21
Citation Envoyé par bbr18
fais tourner manuellement ton logrotate, il va compresser le fichier et va t'en créer un nouveau
+1 j'allais le suggerer, mais surtout de verifier AVANT que logrotate est configuré pour s'en occuper

bbr18
03/02/2016, 17h54
ça se règle dans le php.ini oui soit juste pour ce domaine soit pour tout le serveur (et pense à relancer Apache)
et pour ton fichier de log, fais tourner manuellement ton logrotate, il va compresser le fichier et va t'en créer un nouveau

Caviar
03/02/2016, 17h49
bonjour à tous
mon fichier error_log est devenu énorme

root@xxxxx:~# du -sh /var/www/vhosts/xxxxx.com/logs
1,2T /var/www/vhosts/xxxxx.com/logs

j'aimerai le vider
pouvez vous m'indiquer la marche à suivre afin de vider proprement ce fichier sans causer de pb avec apache ?
est ce que je peux supprimer ce fichier sur le serveur avec les services activés comme un bourrin ?
est ce que je dois arrêter apache (et/ou autres services) avant ?
est ce qu'il existe une commande propre pour vider le fichier avec apache en prod (genre truncate ?)



d'autre part comment configurer mon domaine dans plesk au niveau de la config php pour éviter de loguer les notice php

en effet si je regarde le fichier j'ai des tonnes de
Undefined variable: _SESSION in /var/www/vhosts/****.com/httpdocs/****.php on line 47

j'aimerai loguer uniquement les erreurs php mais plus les notice afin d'éviter que ce fichier ne gonfle trop
puis-je le faire directement via l'admin plesk ?
et si oui quelle est la marche à suivre
par exemple j'ai vu qu'on pouvait modifier les directives apache au niveau du domaine
si je mets
error_reporting = E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED

est ce que c'est bon ?


merci beaucoup d'avance