Articles Taggés ‘maintenance’

warning: database /etc/postfix/*.db is older than source file /etc/postfix/*

21 septembre 2009

Voici la solution à ce genre d’erreurs:

Sep 21 17:32:59 r15868 postfix/trivial-rewrite[8704]: warning: database /etc/postfix/transport.db is older than source file /etc/postfix/transport

Il suffit de resynchroniser la base, avec postmap.

cd /etc/postfix/
postmap transport

(Ici je reprend l’erreur de l’exemple, mais ca peut-être virtual etc..)

C’est tout ! :)

syslog: Log en réseau !

5 juin 2009

logviewer

Récemment j’ai eut à trouver une solution *propre* pour surveiller des emails envoyé par postfix, et récupérer leur statue.

C’est alors que j’ai creusé en profondeur syslog et que j’ai trouvé mon bonheur ! :D

» En lire plus:syslog: Log en réseau !

Optimisation d’un serveur web

28 mai 2009

Par défaut, les applications qui permettent de faire tourner votre serveur LAMP font tourner vos sites wouaibe facilement.
Mais, coté performances, il faut traiter chacun son propre cas.
C’est à dire, que selon votre mémoire, votre CPU, etc… vous devez adapter les paramètres.

Mais il existe quelques optimisations, qui n’en dépendent pas, et qui vous permettrons d’améliorer un p’ti’ peu, la rapidité de réponse de vos sites.

Coté MySQL, il est apparemment utile de désactiver InnoDB… Personnellement je ne l’ai pas fais, car je ne sais pas ce que c’est, et j’ai pas le temps, là tout de suite, de m’y intéresser.

Par-contre, coté PHP, il y a 2 choses faisables :

  1. Augmenter la taille maximal de la mémoire utilisée entre PHP et Apache.
  2. Utiliser memcached, pour gérer d’une autre manière la mémoire.

Le premier point se faire très simplement:

sudo nano /etc/php5/apache2/php.ini

Puis, rechercher (CTRL+W)  »

1
memory_limit

 » et changer la valeur par défaut (16) en 64.

Le second point consiste juste en l’installation de memcached et d’un module pour php pour qu’il utilise ce dernier:

sudo apt-get install php5-memcache memcached

Maintenant, il ne reste plus qu’a redémarrer apache:

sudo /etc/init.d/apache2 restart

Vous devriez voir une amélioration.

Source: http://blog.bodhizazen.net/linux/optimize-wordpress-for-speed/

MySQL: Maintenance automatique avec log

22 avril 2009

Je vient de constater dans mes logs que MySQL râle sur quelques tables…
C’est plus exactement mysqlcheck qui est à l’origine de ces messages.

J’ai donc trouvé comment corriger tout ca en ligne de commande … et comme je n’aime pas faire 2 fois la même chose … ont va laisser notre serveur se débrouiller seul ! :-)
( C’est un grand garçon maintenant !! xD )

Donc, je vais utiliser cron.

Disons que nous l’exécuterons 1 fois tout les jours, à 1h du matin… Ca sera très suffisant.
Je vais demander à mysqlcheck de vérifier toutes les tables (A), de les analyser (a), de les optimiser (o) et surtout de les réparer automatiquement (–auto-repair).

Donc la commande :

[sourcecode language="bash"]
mysqlcheck -Aao –auto-repair -u root -p[password]
[/sourcecode]

La commande retourne des lignes avec OK si il y a eut des changements, et sinon Table is already up to date.
Sachant ceci, il reste plus qu’a utiliser grep ! ;-)

Création du Job Cron !

Rien de bien compliqué !
On ouvre le registre des jobs:
[sourcecode language="bash"]
sudo crontab -e
[/sourcecode]

Là on ajoute cette ligne :
[sourcecode language="bash"]
0 1 * * * mysqlcheck -Aao –auto-repair -u root -pvotre_mot_de_passe | grep OK > /var/log/mysqlcheck.log
[/sourcecode]

Et maintenant, tous les jours, à 1h du matin, il exécutera ma commande, et écrira dans le fichier de log les lignes qui ressortent en OK ! :-)

Surveiller son Load Average, et être alerté par mail

24 mars 2009

Ce matin, un serveur que je gère à ma boite, s’est retrouvé être très lent ( Load Average entre 3 et 5 sur un CPU dual core :-/ ).

J’ai donc mis un en place un script qui vérifie le load average, et si il dépasse la limite fixé, envoie un email.
Ce script je l’ai trouvé dans un article posté par Dimitar Tanev sur le blog tkdev.org.

Avant d’aller plus loin, il est important de savoir comment lire le load average et donc, avant ca, savoir ce qu’est le Load average.

savoir ce qu’est le Load average
Le Load average est la représentation de la charge de la machine sur 5min, 10min et 15min.
Le calcul prend en compte le nombre de processus qui consomme du CPU, ou qui attendent pour avoir du temps d’exécution sur le CPU.

comment lire le load average
Maintenant, tout dépend de l’architecture de votre machine.
Si vous possédez 1 CPU avec 1 seule cœur, le Load average ne doit pas dépasser 1.
Sinon, si vous possédez 1 CPU avec 4 cœurs, votre Load average ne doit pas dépasser 4.
Il faut donc faire l’addition des cœurs pour avoir la limite.

Le script va, donc, lire le fichier /proc/loadavg pour avoir le load average, la valeur est écrite dans le fichier de log /var/log/load.log, puis comparé à la limite fixé dans la variable max_loadavg.
Si la limite est dépassé, un e-mail part.

Voici le script :

# Load average Email ALERT Bash script
# This script is free for ALL
# Visit us at http://www.tkdev.org/articles/ for updates or more information.
#
# Author: Dimitar Tanev, 25th February 2009
#E-Mail: dimitar@linuxdevgroup.org
#

#!/bin/bash

# Load average ALERT value.
max_loadavg=3.5

loadavg=$(cat /proc/loadavg | awk ‘{print $1}’)

# Comment the line below if you do not want to log the load average in a file.
echo « Load Average:$loadavg on `date` » >> /var/log/load.log

# Email subject
SUBJECT= »`hostname` LOAD AVERAGE ALERT $loadavg(>$max_loadavg) »

# Email To?
EMAIL= »mailbox@domain.com »

# Email text/message
EMAILMESSAGE= »Load Average:$loadavg on `date` »

if [ $(echo "$loadavg >= $max_loadavg"|bc) -eq 1 ]

then

# Send an Email using /bin/mail
echo $EMAILMESSAGE | mail -s « $SUBJECT » « $EMAIL »

fi

exit

Coté installation, vous rendez le script exécutable, puis, il suffit de créer une régle cron.
Par exemple, pour l’exécuter toutes les 3 minutes :

*/3 * * * * nice -n 15 /root/loadavr.sh &> /dev/null

Voila, c’est bon, vous devriez être avertis en cas de pépeins ! ;-)