Récupération d'articles d'archives
This commit is contained in:
@@ -0,0 +1,211 @@
|
||||
---
|
||||
comments_url: https://com.richard-dern.fr/post/524
|
||||
date: '2012-02-13 16:00:00'
|
||||
dossier:
|
||||
- Créer son propre Cloud
|
||||
links:
|
||||
- lang: fr
|
||||
name: Page d'origine sur Archive.org
|
||||
url: https://web.archive.org/web/20120222160009/http://ingnu.fr/2012/02/13/trucs-et-astuces-pour-son-serveur-prive/
|
||||
tags:
|
||||
- Astuces
|
||||
- Trucs
|
||||
title: Trucs et astuces pour son serveur privé
|
||||
weather:
|
||||
humidity: 72
|
||||
illuminance: 14570.5
|
||||
precipitations: false
|
||||
pressure: 1019.2
|
||||
source:
|
||||
- open-meteo
|
||||
temperature: 0.0
|
||||
wind_direction: 266
|
||||
wind_speed: 14.1
|
||||
weight: 13
|
||||
---
|
||||
|
||||
Avant d'aborder un système de sauvegarde et de restauration pour son cloud personnel, je me suis dis que ce serait une bonne idée de compiler dans un article quelques trucs et astuces, relatifs notamment à la surveillance de votre serveur.
|
||||
|
||||
C'est l'occasion d'apprendre ou réapprendre à se servir des outils inclus dans toute bonne distribution qui se respecte, mais aussi comment compléter ces outils.
|
||||
|
||||
## Monitoring "sur site"
|
||||
|
||||
## Journaux
|
||||
|
||||
Ce que j'appelle "monitoring sur site", c'est comment surveiller son système depuis un shell.
|
||||
Un certain nombre de commandes existent pour nous permettre de diagnostiquer le fonctionnement de notre serveur.
|
||||
|
||||
Pour commencer, rien ne vaut les journaux.
|
||||
Concernant notre serveur, voici ceux qui sont principalement à surveiller :
|
||||
|
||||
- */var/log/syslog*, probablement le plus important de tous
|
||||
- */var/log/fail2ban.log*, pour surveiller ce que fail2ban fait
|
||||
- */var/log/mail.log*, pour surveiller le serveur mail
|
||||
- */var/www/*/*/log/*, pour surveiller les accès et erreurs sur l'ensemble de vos sites Internet
|
||||
|
||||
Pour consulter en temps réel un journal, utilisez la commande suivante :
|
||||
|
||||
```bash
|
||||
tail -f /var/log/syslog
|
||||
```
|
||||
|
||||
Pour consulter les X dernières lignes d'un journal :
|
||||
|
||||
```bash
|
||||
tail -X /var/log/syslog
|
||||
```
|
||||
|
||||
## Processus
|
||||
|
||||
Le monitoring sur site implique également la surveillance des processus.
|
||||
La commande suivante :
|
||||
|
||||
```bash
|
||||
ps aux
|
||||
```
|
||||
|
||||
Vous indiquera l'état des processus au moment où vous lancez la commande.
|
||||
Pour consulter l'état des processus en temps réel, utilisez la commande :
|
||||
|
||||
```bash
|
||||
top
|
||||
```
|
||||
|
||||
Cette commande vous informe également de l'état de la mémoire, de l'utilisation CPU, et d'autres choses encore.
|
||||
|
||||
## Matériel
|
||||
|
||||
Si vous hébergez vous-même votre serveur "à la maison", vous pourrez également avoir besoin de quelques capteurs de température :
|
||||
|
||||
```bash
|
||||
apt-get install lm-sensors
|
||||
sensors-detect
|
||||
```
|
||||
|
||||
De même pour les disques durs :
|
||||
|
||||
```bash
|
||||
apt-get install hddtemp
|
||||
hddtemp /dev/sd*
|
||||
```
|
||||
|
||||
D'autres informations relatives à votre matériel peuvent être extraites du pseudo système de fichiers */proc* :
|
||||
|
||||
```bash
|
||||
cat /proc/cpuinfo
|
||||
cat /proc/meminfo
|
||||
```
|
||||
|
||||
## RAID
|
||||
|
||||
Si vous bénéficiez d'un raid logiciel, vous pouvez consulter son état de différentes manières :
|
||||
|
||||
```bash
|
||||
cat /proc/mdstat
|
||||
mdadm --detail /dev/md0
|
||||
```
|
||||
|
||||
## Monitoring distant
|
||||
|
||||
Le monitoring distant est effectué depuis une interface web par exemple.
|
||||
J'ai choisi [phpSysInfo](https://web.archive.org/web/20120222160009/http://phpsysinfo.sourceforge.net/), que je trouve plus agréable à configurer et utiliser que munin, trop centré sur la création de graphs, et relativement compliqué à mettre en œuvre.
|
||||
|
||||
## Hôte virtuel
|
||||
|
||||
Première chose, comme d'habitude, on s'occupe de l'hôte virtuel dans apache :
|
||||
|
||||
```bash
|
||||
mkdir -p /var/www/exemple.fr/system/www
|
||||
nano /etc/apache2/sites-available/system.exemple.fr
|
||||
```
|
||||
|
||||
```text
|
||||
<VirtualHost *:80>
|
||||
ServerName system.exemple.fr
|
||||
Redirect / https://system.exemple.fr/
|
||||
</VirtualHost>
|
||||
|
||||
<VirtualHost *:443>
|
||||
ServerName system.exemple.fr
|
||||
|
||||
DocumentRoot /var/www/exemple.fr/system/www
|
||||
|
||||
SSLEngine On
|
||||
SSLCertificateFile /scripts/certificate_authority/apache/system.exemple.fr.crt
|
||||
SSLCertificateKeyFile /scripts/certificate_authority/apache/system.exemple.fr.key
|
||||
</VirtualHost>
|
||||
```
|
||||
|
||||
Nous avons créé un hôte virtuel non sécurisé redirigeant vers un hôte virtuel sécurisé, nous avons déjà vu le principe.
|
||||
Créons maintenant les certificats :
|
||||
|
||||
```bash
|
||||
/scripts/certificate_authority/make_request apache system.exemple.fr
|
||||
/scripts/certificate_authority/sign_request apache system.exemple.fr
|
||||
chown www-data:www-data /scripts/certificate_authority/apache/*
|
||||
```
|
||||
|
||||
Warning : Lorsque le *Common Name* vous sera demandé, indiquez le nom de domaine !
|
||||
Et dans notre cas, acceptez la création d'une clé sans mot de passe !
|
||||
|
||||
On active le site, et on redémarre apache :
|
||||
|
||||
```bash
|
||||
a2ensite system.exemple.fr
|
||||
/etc/init.d/apache2 restart
|
||||
```
|
||||
|
||||
Dans ce cas, il n'y a pas vraiment besoin de tenir des journaux.
|
||||
|
||||
## Installation de phpSysInfo
|
||||
|
||||
Rien de particulier à signaler : une fois l'application téléchargée et installée dans son répertoire (*/var/www/exemple.fr/system/www*), il suffit juste de la configurer en fonction des blocs que vous souhaitez afficher.
|
||||
|
||||
Certaines dépendances peuvent être nécessaires, en fonction des blocs que vous aurez configuré.
|
||||
L'application vous informera via des messages d'erreurs si des dépendances ne sont pas satisfaites.
|
||||
Vous pourrez alors aisément les installer.
|
||||
|
||||
## Notifications
|
||||
|
||||
Si vous faites appel à crontab pour effectuer des tâches routinières, il peut être intéressant d'avoir des rapports par mail.
|
||||
Il vous suffit d'éditer votre crontab et d'y insérer la ligne suivante :
|
||||
|
||||
```text
|
||||
MAIL="contact@exemple.fr"
|
||||
```
|
||||
|
||||
Nous avons installé [un serveur XMPP](https://web.archive.org/web/20120222160009/http://ingnu.fr/2012/02/08/communiquer-via-xmpp/), on peut également s'en servir comme service de notification.
|
||||
Ainsi, pour toute application qui permet d'exécuter une commande suivant un évènement donné, on peut demander à cette application d'envoyer un message à un compte XMPP que vous aurez créé à cet effet.
|
||||
Nous utiliserons pour cela le script *sendxmpp* :
|
||||
|
||||
```bash
|
||||
apt-get install sendxmpp
|
||||
```
|
||||
|
||||
Que l'on utilisera de la manière suivante :
|
||||
|
||||
```bash
|
||||
echo "Votre message" | sendxmpp -u <utilisateur> -p <mot de passe> -j exemple.fr <destinataire>@exemple.fr
|
||||
```
|
||||
|
||||
## Liste des paquets installés
|
||||
|
||||
Il peut être utile de récupérer la liste de tous les paquets installés, par exemple dans le cas d'une réinstallation ou d'un mirroring.
|
||||
Pour récupérer cette liste, on utilisera la commande suivante :
|
||||
|
||||
```bash
|
||||
dpkg -l | grep ii | awk -F ' ' '{print $2}'
|
||||
```
|
||||
|
||||
On peut, du coup, exporter cette liste dans un fichier :
|
||||
|
||||
```bash
|
||||
dpkg -l | grep ii | awk -F ' ' '{print $2}' > packages.list
|
||||
```
|
||||
|
||||
## Conclusion
|
||||
|
||||
Plein d'autres choses manquent surement à l'appel.
|
||||
On ne peut pas tout voir, mais théoriquement, ce qu'on a vu jusqu'aujourd'hui devrait être suffisant pour que vous puissiez jouer avec votre propre cloud.
|
||||
|
||||
Important : Ceci dit, avant de vraiment jouer avec, attendez au moins l'avant-dernier article (qui est aussi le prochain), consacré à la sauvegarde et à la restauration de son serveur !
|
||||
Reference in New Issue
Block a user