Serveurs Dédiés

Logo LinuxDans cette catégorie, vous retrouverez essentiellement des articles sur la configuration des serveurs webs linux et des services liés au fonctionnement d’un site internet :

  • Php
  • Mysql
  • Configuration ftp
  • Configuration apache

Backup manager : Exclure des fichiers ou des dossiers

Afin de sauvegarder mon serveur dédié j’utilise le script Backup-manager qui fait très bien son rôle de sauvegarde.
( Si vous souhaitez le mettre en place c’est par ici : Sauvegarder serveur dédié )

Cependant j’ai eut récemment des problèmes d’espace disque et je me suis rendu compte que de nombreux fichiers inutiles étaient sauvegardés.
( Fichiers de cache magento et prestashop )

Voici donc comment exclure des données de la sauvegarde.

Ouvrir le fichier de configuration de backup manager

sudo vim /etc/backup-manager.conf

et rechercher la ligne suivante :

export BM_TARBALL_BLACKLIST= ""

Rajouter ensuite les dossiers à exclure de votre sauvegarde, séparés par des espaces

ex :

export BM_TARBALL_BLACKLIST= "/var/www/magentosite/var/ /var/www/magentosite/media/catalog/cache/ /var/www/prestashopsite/cache/"

Sauvegarder votre fichier.
Lors des prochaines sauvegardes ces dossiers seront exclus, ce qui vous permettra de réduire la taille de celles-ci.…

Backup manager : Exclure des fichiers ou des dossiers Lire la suite »

Corriger les arrêts intempestifs de Proftpd

Sur mon serveur dédié qui tourne sous ubuntu 14.04* j’avais depuis longtemps un problème avec le serveur proftpd qui redémarrait de manière intempestive.
Ce qui nécessitait à chaque fois un redémarrage via ssh pour pouvoir à nouveau se connecter.

Après quelques recherches j’ai trouvé que la cause était la rotation des logs.
Celle-ci nécessite l’arrêt et le redémarrage du serveur, et le redémarage ne fonctionnait pas, du coup le service ne fonctionnait plus.

Voici comment faire pour corriger cela :
Editez le fichier : /etc/init.d/proftpd

Remplacer la ligne suivante :

start-stop-daemon --stop --signal $SIGNAL --quiet --pidfile "$PIDFILE"

Par le contenu suivant :

start-stop-daemon --stop --signal $SIGNAL --retry 1 --quiet --pidfile "$PIDFILE"

 

Une fois cette modification effectuée, le problème ne devrait plus survenir 🙂

* Le problème était également présent sur ubuntu 12.04…

Corriger les arrêts intempestifs de Proftpd Lire la suite »

Monitorer sites mutualisés avec Nagios

Si vous gérez plusieurs hébergements mutualisé et que vous souhaitez les monitorer facilement depuis votre serveur dédié, voici comment procéder avec Nagios.
Pour l’installation qui est assez complexe je vous laisse consulter l’article suivant qui est très bien réalisé :

http://www.unixmen.com/how-to-install-nagios-4-1-in-ubuntu-15-04/

Une fois l’installation effectuée nous allons créer un dossier « websites » dans « /usr/local/nagios/etc/ » dans lequel nous placerons toutes nos nouvelles configurations.
Pour charger automatiquement ces configurations il faut rajouter la ligne suivante dans le fichier :
/usr/local/nagios/etc/nagios.cfg

cfg_dir=/usr/local/nagios/etc/websites

Voici ensuite un fichier template qui vous servira de configuration pour vos sites

################ 
# Groupe des hotes : ( UN groupe par client )
###############
define hostgroup{
        hostgroup_name  Google
        alias           Google
}
 
################ 
# Définitions des hotes à tester
###############
 
#Modele de verification
define host{
 name google-host ;Changer le nom du host
 use generic-host
 hostgroups  Google ;Prendre le nom du hostgroup defini plus haut
 check_command check_http!

Monitorer sites mutualisés avec Nagios Lire la suite »

Magento : email queue non envoyée

J’ai rencontré récemment un problème avec l’envoi des emails de confirmation de commande sur magento version 1.9.0.1.
Contrairement à de plus anciennes versions de magento (et c’est mieux ainsi 🙂 ), les emails ne sont plus envoyés directement après le passage d’une commande.

Ils sont stockés dans la table core_email_queue .

Puis il sont envoyés 100 par 100 via la tâche cron core_email_queue_send_all toutes les minutes.

Sur le serveur hébergeant le site Magento ( dans un environnement chrooté) , cette tâche cron ne fonctionnait pas et le fichier exception.log était remplis de messages de ce type :

exception 'Zend_Mail_Transport_Exception' with message 'Unable to send mail. ' in /www/lib/Zend/Mail/Transport/Sendmail.php:137
Stack trace:
#0 /www/lib/Zend/Mail/Transport/Abstract.php(348): Zend_Mail_Transport_Sendmail->_sendMail()
#1 /www/lib/Zend/Mail.php(1194): Zend_Mail_Transport_Abstract->send(Object(Zend_Mail))
#2 /www/app/code/core/Mage/Core/Model/Email/Queue.php(241): Zend_Mail->send()
#3 [internal function]: Mage_Core_Model_Email_Queue->send(Object(Mage_Cron_Model_Schedule))
#4 /www/app/code/core/Mage/Cron/Model/Observer.php(325): call_user_func_array(Array, Array)
#5 /www/app/code/core/Mage/Cron/Model/Observer.php(72): Mage_Cron_Model_Observer->_processJob(Object(Mage_Cron_Model_Schedule), Object(Mage_Core_Model_Config_Element))
#6 /www/app/code/core/Mage/Core/Model/App.php(1338): Mage_Cron_Model_Observer->dispatch(Object(Varien_Event_Observer))
#7 /www/app/code/core/Mage/Core/Model/App.php(1317): Mage_Core_Model_App->_callObserverMethod(Object(Mage_Cron_Model_Observer), 'dispatch', Object(Varien_Event_Observer))
#8 /www/app/Mage.php(448): Mage_Core_Model_App->dispatchEvent('default', Array)
#9 /www/cron.php(77):

Magento : email queue non envoyée Lire la suite »

Déplacer les fichiers mysql vers un nouvel emplacement

Par défaut sur les serveurs kimsufi livré par ovh, la partition « / » allouée au système est relativement réduite. ( 20 Go  dans mon cas )
Sur mon serveur cette partition était quasiment pleine, et une grande partie de l’espace était occupée par les fichiers des bases de données.
( dossier /var/lib/mysql/)

Voici donc comment procéder pour déplacer ces fichiers et libérer de l’espace pour votre système.

Nous allons déplacer les fichiers de /var/lib/mysql/ vers /home/mysql/

Pour commencer il faut arrêter mysql

sudo service mysql stop

Nous pouvons ensuite déplacer les fichiers vers le nouvel emplacement ( Cette opération peut être assez longue en fonction du volume de données à transférer)

sudo mv /var/lib/mysql/ /home/mysql/

Puis mettre un lien symbolique de /home/mysql/ vers /var/lib/mysql/

sudo ln -s /home/mysql /var/lib/mysql

Il faut ensuite attribuer les droits du dossier à l’utilisateur mysql

sudo chown mysql:mysql /home/mysql

Il ne vous reste plus qu’a redémarrer msyql

sudo service mysql start

Les fichiers de mysql sont à présent à l’emplacement « home/mysql » et votre partition système retrouve de la place !…

Déplacer les fichiers mysql vers un nouvel emplacement Lire la suite »

Sécuriser l’accès à jenkins

Cet article fait suite à l’article suivant : Mise en place d’une plateforme d’intégration continue ( partie 2)

Une fois jenkins installé, celui-ci est disponible pour tout le monde et par défaut via l’ip de votre serveur sur le port 8080
En tapant http://ip-de-votre-serveur:8080 , n’importe qui visualisera donc les projets jenkins.

Pour sécuriser cela, nous allons mettre en place un reverse-proxy apache, qui communiquera avec le serveur jenkins.
Nous pourrons ainsi mettre en place une authentification basique htaccess / htpassword pour limiter les accès.
( Cela nécessite donc l’installation d’apache au préalable)

Dans mon exemple, je souhaite que le sous-domaine http://ci.example.com renvoie vers jenkins.
(Il faut donc au préalable faire pointer ce sous-domaine sur votre serveur )

Configuration du proxy

Pour commencer il faut activer le mode proxy et proxy_http d’apache, en saisissant les commandes suivantes

sudo a2enmod proxy
sudo a2enmod proxy_http

Passons ensuite à la création du fichier de notre vhost dans /etc/apache2/sites-availables/ créons un fichier jenkins.conf…

Sécuriser l’accès à jenkins Lire la suite »

Mise en place d’une plateforme d’intégration continue ( Partie 1 )

Afin de suivre le bon déroulement de vos projets, il est important de pouvoir tester de manière régulière que votre applications fonctionne bien.
Ceci peut être réalisé via la mise en place de tests unitaires et fonctionnels, d’analyse de code etc…

Pour suivre cela de manière optimale, la mise en place d’une plateforme d’intégration continue est la suite logique de l’évolution de votre projet dès lors qu’il atteint une taille importante, ou qu’il comporte de nombreuses fonctionnalités spécifiques.

Il existe plusieurs plateforme pour réaliser cela, mais je vais me baser sur la plus connue : Jenkins (ex Hudson )

L’objectif à la fin de ce guide est d’avoir une plateforme de tests fonctionnels opérationnelle.
Celle ci-sera basée sur phpunit et selenium et firefox en mode headless
La procédure étant assez longue, ce sujet va être séparé en 2 articles :

– Installation des éléments nécessaires aux tests fonctionnels
– Installation et configuration de jenkins pour l’exécution des tests fonctionnels

Installation des éléments nécessaires aux tests fonctionnels.

Mise en place d’une plateforme d’intégration continue ( Partie 1 ) Lire la suite »

Munin : Ajouter des plugins complémentaires

Après avoir installé munin, il y’a quelques semaines et afin d’optimiser le monitoring de mon serveur, j’ai souhaité installer des modules complémentaires.

Voici donc comment procéder pour installer des plugins sur munin.

Pour voir la liste des modules complémentaires de munin, entrez la commande suivante :

sudo munin-node-configure

Pour ma part j’ai activé le modules suivants : ( lié aux programmes fai2ban, postfix et à mysql )
– fail2ban
– postfix_mailqueue
– postfix_mailstats
– postfix_mailvolume
– mysql_queries
– mysql_slowqueries
– mysql_threads

Voici comment les activer

Fail2ban :

sudo  ln -s /usr/share/munin/plugins/fail2ban /etc/munin/plugins/fail2ban

Postfix :

sudo  ln -s /usr/share/munin/plugins/postfix_mailqueue /etc/munin/plugins/postfix_mailqueue
sudo  ln -s /usr/share/munin/plugins/postfix_mailvolume /etc/munin/plugins/postfix_mailvolume
sudo  ln -s /usr/share/munin/plugins/postfix_mailstats /etc/munin/plugins/postfix_mailstats

Pour Mysql il est nécessaire d’installer des packets complémentaires de cache via la commande suivante

sudo apt-get install libcache-{perl,cache-perl}

Puis

sudo  ln -s /usr/share/munin/plugins/mysql_queries /etc/munin/plugins/mysql_queries
sudo  ln -s /usr/share/munin/plugins/mysql_slowqueries /etc/munin/plugins/mysql_slowqueries
sudo  ln -s /usr/share/munin/plugins/mysql_threads /etc/munin/plugins/mysql_threads

Editez ensuite le fichier /etc/munin/plugin-conf.d/munin-node…

Munin : Ajouter des plugins complémentaires Lire la suite »

Sécuriser votre serveur dédié : installation de fail2ban

Votre serveur web, comme toutes les machines connectées à internet et soumis en permanence à des tentatives d’intrusions.
Le votre n’échappe n’y échappe sans doute pas…
Pour le constater il vous suffit de consulter le fichier d’authentification

sudo vim /var/log/auth.log

En parcourant son contenu de nombreuses lignes comme sur la capture ci-dessous apparaissent :

Logs authentification

Ces lignes sont les signes de tentative d’intrusions sur votre serveur, via une connexion ssh.

Ces tentatives sont quasiment impossible à éviter, cependant pour limiter au maximum ces désagréments, il est donc conseillé d’installer un outil tel que Fail2ban.
Celui-ci étudie les logs de votre serveur et vous permet de bloquer les utilisateurs qui tentent d’exploiter les failles de votre serveur.
Sa modularité lui permets de s’adapter à l’ensemble des besoins de sécurité de vos serveur.

Pour l’installer il faut exécuter la commande suivante :

sudo apt-get install fail2ban

Une fois fail2ban installé, nous pouvons consulter sa configuration située dans le fichier /etc/fail2bn/jail.conf

Sécuriser votre serveur dédié : installation de fail2ban Lire la suite »

Sauvegarder son serveur dédié

Une fois votre serveur installé, il est indispensable de mettre en place une procédure de sauvegarde pour ne pas perdre vos données.
L’offre Kimsufi ne comprenant pas d’espace de backup, je vais détailler comment sauvegarder les données sur un espace ftp.
( Dans mon cas j’utilise une offre mutualisé perso d’ovh, qui comprends 100 go d’espace ce qui est largement suffisant )

Installation de backup-manager

Pour réaliser les sauvegardes je vais utiliser backup-manager, qui permets de sauvegarder les contenus des dossiers de votre choix, mais également le contenu de vos bases de données.

Pour commencer installer backup-manager

sudo apt-get install backup-manager

L’installation vous demande ensuite dans quel dossier seront générées les sauvegardes.
Par défaut « var/archives/ »

backup-manager-1

Si l’espace disque de votre serveur vous le permets conserver cet emplacement, sinon indiquez un emplacement sur une partition avec suffisamment de place

Préciser ensuite les dossiers que vous souhaitez sauvegarder

backup-manager-2

Pour ma part j’ai sauvegardé les fichiers de configuration système ( /etc/ ), les contenus des utilisateurs ( /home/) et les bases mysql ( /var/lib/mysql/ )

L’installation de backup-manager est terminée, nous allons à présent configurer l’export de ces sauvegardes vers un ftp distant

Configuration des sauvegardes

Entrer la commande

sudo vim /etc/backup-manager.conf

Sauvegarder son serveur dédié Lire la suite »