• Aucun résultat trouvé

Prise en main

Dans le document Outils Logiciels Libres (Page 20-32)

Drupal s’av`ere extremement rapide et ais´e `a installer et `a mettre en oeuvre. L’ajout de fonctionnalit´e est ´egalement tr´es intuitif puisqu’il suffit d’ajouter le module dans le r´epertoire module de drupal et activer celui-ci via l’interface d’administration.

15. ´ Evaluation des fonctionnalit´ es :

L’authentification et la gestion des utilisateurs via LDAP s’av´ere relativement simple `a mettre en place. La traduction dans diverses langues ´egalement.

Quant `a l’´edition du contenu, Drupal dispose d’un ´editeur de texte tr`es sommaire, il est n´eanmoins possible d’installer un ´editeur Wysiwyg via un module compl´ementaire.

La connexion `a une base de donn´ees se fait naturellement lors de l’installation, drupal se charge de cr´eer ce qu’il a besoin.

15.1. Gestion du Versionning

Cr´eer du contenu. Modifier le contenu (en cochant la case Information sur les revisions –¿

cr´eer une revision). La liste des revisions est accessible via le menu ”revisions” sur les pages contenant plusieurs revisions.

Troisi` eme partie .

Haute Disponibilit´ e

16. LVS

Linux Virtual Server (LVS) est une solution avanc´ee de r´epartition de charge pour GNU/Linux.

C’est un logiciel libre commenc´e par Wensong Zhang en mai 1998. La mission de ce projet

´

etait de construire un serveur de haute performance pour Linux utilisant la technologie du clustering.

L’´equilibrage de type NAT via LVS que nous allons mettre en place s’appuie essentiellement sur ipvsadm qui est l’outil d’administration d’LVS mais aussi de Ldirectord qui va s’occuper de la configuration et la d´etection de serveurs web down.

Sur le/les ´equilibreur(s) :

Tout d’abord on installe Ldirectord :

sudo apt-get install ldirectord

Ensuite on cr´ee une interface virtuelle, qui sera utilis´ee par le client d´esirant visiter le site web :

sudo ifconfig eth0 :virt 192.168.2.110 Configuration de Ldirectord :

Les fichiers de configurations portent l’extension .cf et ont pour r´epertoire /etc/ha.d/.

Dans ce fichier il faut renseigner plusieurs ´el´ements : virtual=192.168.2.110:80

– Virtual renseigne sur l’adresse ip virtuelle qui sera acc´ed´ee par le client.

– Protocol permettant de d´efinir le type de protocole utilis´e, ici tcp car http est bas´e sur celui-ci.

– Schedulercorrespond a l’agorithme utilis´e pour l’´equilibrage, rr signifiant Round Robin.

real liste les serveurs constituant la pool avec l’adresse ip de chacuns d’eux, sont type de forward et le poid.Le type masq (pour masquerade) correspond au LVS de type NAT et le poid permet de d´efinir une priorit´e de l’aiguillage.

– Request d´efini le nom de la resource qui sera acced´ee pour v´erifier que les serveurs web sont toujours disponibles.

– Receive contient la valeur que devra contenir la resource pour ˆetre consid´er´e comme disponible.

Sur les serveurs web :

Il y a deux petits points `a mettre en place sur les serveurs :

La premi`ere consiste `a changer la passerelle actuelle par l’ip de l’´equilibreur :

/sbin/route add default gw 192.168.10.221

Ensuite il faut cr´eer `a la racine le fichier test.html et y mettre comme contenu ¡¡200¿¿.

Lancement : En mode d´ebug :

/usr/sbin/ldirectord -d /etc/ha.d/www.cf start En mode normal :

/etc/init.d/ldirectord start

17. Heartbeat

La haute disponibilit´e va ˆetre assur´ee par heartbeat, celui-ci doit ˆetre install´e sur chacun des ´equilibreurs. On installe heartbeat :

sudo apt-get install heartbeat

Configuration : Il y a 3 fichiers `a configurer pour qu’heartbeat fonctionne comme d´esir´e : /etc/ha.d/ha.cf :

bcast eth0 <= Interface utilis´ee pour le battement debugfile /var/log/ha-debug <= fichier de d´ebug

logfile /var/log/ha-log <= fichier de log logfacility local0 <= Log utilisant syslog-ng

keepalive 2 <= temps (en s) entre chaque battement

deadtime 10 <= temps au bout du quel on consid`ere une machine morte

warntime 6 <= on consid`ere que la machine met du temps `a r´epondre apr`es 6s initdead 60 <= temps avant de lancer le premier battement au d´emarrage udpport 694 <= port utilis´e pour l’envoi du battement

node equ1 <= d´eclaration des machines devant ^etre surveill´ees

node equ2

auto_failback on <= r´eintegre une machine qui repasse en ´etat de marche /etc/had.d/haresources :

equ1

| {z }

Ipaddr :: 192.168.10.221

| {z }

Node Ip virt `a attribuer /etc/ha.d/authkeys :

auth 1 <= on utilise la m´ethode d’authentification 1

1 sha1 CleSecrete <= Num´ero de m´ethode, Type de cryptage et cl´e Ensuite il ne nous reste plus qu’a lancer heartbeat sur les machines :

/etc/init.d/heartbeat start

18. Zabbix

Pr´erequis avant installation :

Il faut disposer d’un serveur Web g´erant le PHP avec une base de donn´ees MySql ou PostgreSQL.

Installation :

Il y a trois paquet `a installer :

– zabbix-server-mysql pour utiliser une base MySQL ou zabbix-server-pgsql pour utiliser une base PostGRES

– zabbix-frontend-php : l’interface PHP pour le serveur – zabbix-agent : pour pouvoir monitorer le serveur lui-mˆeme Dans php.ini, il faut changer quelques options :

L’option max execution time qui fixe le temps maximal d’ex´ecution d’un script, en secondes doit ˆetre mise `a 600 pour l’installation de zabbix.

Il y a aussi l’option date.timezone qui doit ˆetre renseigner pour pouvoir afficher un temps correct sur le frontend en php.

La configuration de l’agent est tr`es simple car il y a trois directives `a renseigner dans les fichiers zabbix agent.conf zabbi agentd.conf. Dans le premier il faut pr´eciser l’adresse du ser-veur ”Server=localhost”. Dans l’autre fichier, il faut renseigner deux champs. L’un pr´ecisant aussi l’adresse du serveur et l’autre indiquant le nom de machine qui sera utilis´e par le fron-tend : ”Server=127.0.0.1” et ”Hostname=ZabbixServ”.

Pour ajouter une machine :

Menu ”Configuration -> Hotes -> Cr´eer un h^ote”

Figure 1: Ajout d’une machine

Voici le menu pour ajouter une machine. Il faut pr´eciser son nom, son adresse IP, son statut,

et pour pouvoir monitorer des services, par exemples snmp, il faut lui ajouter le template snmp (il faut bien entendu que snmp soit installer sur cette machine).

Pour afficher l’occupation du disque par exemple :

Menu ”Configuration -> Graphiques -> Cr´eation de graphiques”

Figure 2: Ajout d’un graphique

Comme on le voit sur l’image, on peut selectionner diff´erents items pour la machine. Ici, on selectionne ”Free disk space on /”. On peut choisir la couleur afficher sur le graphique, le style de dessin affich´e ...

Pour voir par exemple qu’un serveur Web est tomb´e :

Menu ”Configuration -> Actions -> Cr´eer une action”

Figure 3: Ajout d’un graphique

Ici, on peut choisir diff´erent services `a monitorer. On clique sur le nom du service pour le monitorer. Dans le menu ”M´etriques -> Evennements”, on peut voir le status des services monitorer ainsi que les actions li´ees au changement de status de certains services.

Par exemple si on veut envoyer un mail `a l’administrateur quand le serveur web d’une machine tombe, il faut configurer zabbix de la mani`ere suivante :

Menu ”Administration -> Types Media -> Email” Donc dans l’onglet Administration / Media Type)

Figure 4: Configuration mail

SMTP server : l’adresse IP ou le nom DNS de ton serveur de mail (SMTP) exemple :

”smtp.free.fr” ici ”localhost”

SMTP helo : c’est la chaine qu’il va renvoyer au serveur pour s’identifier ; en g´en´eral ce n’est pas tr`es important ; par exemple ”zabbixserver” ici ”localhost”

SMTP email : Email avec laquelle les mails sont envoy´e (le ”From”) ; exemple ”zabbixser-ver@free.fr” ici julien@xionis.home

Ensuite, il faut associer un media ”Email” (une adresse Email de destination) `a l’utilisateur Zabbix qui va envoyer les mail. La configuration des emails `a envoyer se passe dans le menu

”"Configuration -> Actions” qui est d´ecrit au dessus.

Figure 5: Configuration mail

Ici on voit que si Apache tombe sur le serveur ldap, alors un mail sera envoy´e `a l’utilisateur Admin dont l’adresse a ´et´e pr´ecis´e dans le menu ”Administration -> Utilisateurs”.

19. Mon

Installation de mon via :

sudo apt-get install mon

Configuration pour surveillance du service http et envoi de mail en cons´equent : hostgroup local localhost equ1 <=d´efinition des h^otes

watch local <= surveillance du groupe local service http <= surveillance http

monitor http.monitor

interval 2m <= On v´erifire toutes les 2 min depend SELF::fping

period wd {Sun-Sat} <= p´eriode de v´erification

alert mail.alert remi@localhost <= envoi de mail en cas de soucis alertafter 10m <= alert apr`es n minutes

\begin{verbatim}

On recharge la configuration :

\begin{center}sudo /etc/init.d/mon reload\end{center}

En utilisant la command monshow on peut v´erifier l’´etat actuel des ´el´ements surveill´es:

\begin{verbatim}

GROUP SERVICE STATUS LAST NEXT ALERTS SUMMARY

D local http - 9s 0s none 127.0.0.1 equ1

Ici pas de soucis avec http. Maintenant arretons Apache : sudo /etc/init.d/apache2 stop

Apr`es quelques secondes en retestant monshow on s’aper¸coit qu’il y a un probl`eme (FAIL) : D local http FAIL 2s 0s none 127.0.0.1 equ1

Red´emarrage en cas d’Apache d´esactiv´e : En cas d’un apache qui venait `a tomber, il peut ˆ

etre interessant de tenter de relancer celui-ci avec mon. Pour cel`a nous allons cr´eer un script dans /etc/ha.d/mon/alert.d/ que nous nommeront Apache UpDown. Celui-ci contient :

20. Mysql

Configuration du maˆıte Il faut tout d’abord ´editer le fichier /etc/mysql/my.cnf. L’´etape consistant a activer l’´ecoute autre que sur localhost via :

#skip-networking

#bind-address = 127.0.0.1

Maintenant il est n´ecessaire d’indiquer `a MySQL pour quel base les logs seront ´ecrits (ces logs seront utilis´e par le serveur esclave afin de d´et´ecter des changements). On lui indique le chemin des log et nous sp´ecifions que le serveur jouera le rˆole de maˆıtre :

log-bin = /var/log/mysql/mysql-bin.log binlog-do-db=drupal

server-id=1

Ensuite on red´emarre Mysql :

/etc/init.d/mysql restart

Nous allons maintenant cr´eer un utilisateur avec les droits de r´eplications via mysql mysql -u root -p

On attibue les droits :

GRANT REPLICATION SLAVE ON *.* TO ’serv esclace’@’%’ IDENTIFIED BY

’¡motdepass¿’ ;FLUSH PRIVILEGES ;

Nous allons maintenant bloquer la table qui nous int´eresse : USE drupal;

FLUSH TABLES WITH READ LOCK;

SHOW MASTER STATUS;

Ce qui devrait nous afficher :

+---+---+---+---+

| File | Position | Binlog_do_db | Binlog_ignore_db | +---+---+---+---+

| mysql-bin.006 | 183 | drupal | |

+---+---+---+---+

1 row in set (0.00 sec)

Il est n´ecessaire de garder ces informations pour le serveur esclave.

On cr´ee maintenant un dump de la table :

mysqldump -u root -p –opt drupal ¿ drupal.sql Une fois le dump ´etabli nous pouvons d´ebloquer la base :

mysql -u root -p Enter password:

UNLOCK TABLES;

quit;

La configuration du maˆıtre est d´esormais termin´ee.

Configuration de l’esclave :

On cr´ee tout d’abord la base `a r´epliquer : mysql -u root -p

Enter password:

CREATE DATABASE drupal;

quit;

On importe ensuite la base pr´ecedement copi´ee :

mysql -u root -p drupal ¡ drupal.sql

Il faut maintenant indiquer `a Mysql qu’il sera l’esclave, que le maitre est 192.168.0.100 et que la base se nomme drupal. Pour cel`a on modifie le fichier /etc/mysql/my.cnf

server-id=2

On r´edemarre Mysql :

/etc/init.d/mysql restart Ensuite on lance Mysql pour les derniers r´eglages :

mysql -u root -p On stoppe le mode esclave :

SLAVE STOP ;

CHANGE MASTER TO MASTER HOST=’192.168.0.100’, MASTER USER=’drupal’, MASTER PASSWORD=’motdepass’, MASTER LOG FILE=’mysql-bin.006’,

MASTER LOG POS=183 ;

– MASTER HOST is the IP address or hostname of the master (in this example it is 192.168.0.100).

– MASTER USER is the user we granted replication privileges on the master.

– MASTER PASSWORD is the password of MASTER USER on the master.

– MASTER LOG FILE is the file MySQL gave back when you ran SHOW MASTER STATUS ; on the master.

– MASTER LOG POS is the position MySQL gave back when you ran SHOW MASTER STATUS ; on the master.

On relance le mode esclave :

SLAVE START ;

On constate que la r´eplication est bien op´erationnelle (v´erification via phpmyadmin).

21. Monitoring

Feedback n’´etant plus maintenu nous avons d´ecid´e de tester une autre solution nous eprmet-tant de suivre le status du cluster. MRTG et RRDTOOL sont les leaders dans ce domaine.

N´eanmoins la mise en place/configuration n’est pas rapide. C’est pourquoi des outils plus sp´ecifiques doivent ˆetre utilis´es.

Apr`es plusieurs recherches Ganglia semble tout indiqu´es. Apr`es quelques tests il a ´et´e d´ecid´e de choisir Ganglia de part ses nombreux graphiques fournis mais aussi le d´etail des

´

evenements pas heure (sur munin on ne peut zoomer au d´el`a des jours).

Installation/Configuration

Ganglia se d´ecompose en deux parties, un serveur et un client. Le serveur est `a installer sur chaque machine `a surveiller au travers de la commande :

apt-get install gmetad

Puis il faut configurer divers ´el´ements dans le fichier /etc/gmetad.conf : Les serveurs `a questionner :

data source ”Mon Cluster” localhost 192.168.10.222 192.168.10.91 192.168.10.110 Le nom de la grid :

gridname ASRALL

Il est ensuite n´ecessaire d’installer un client qui va s’occuper de r´ecup´erer toutes les infor-mations sur les diff´erents serveurs :

apt-get install ganglia-monitor

On attribue le nom de la grid via le fichier de configuration /etc/gmond.conf :

Name ASRALL

Ganglia est packag´e par d´efaut mais ne contient pas le frontend web, pour cel`a il suffit de t´el´echarger le tar.gz sur le site officiel et copier le r´epertoire ¡¡web¿¿ `a l’emplacement du serveur web.

Dans le document Outils Logiciels Libres (Page 20-32)

Documents relatifs