Monitoring Serveur Dédié

De Free 4 Funs
Révision de 6 février 2015 à 13:00 par Let's Go (discuter | contributions) (Requis)

Aller à : navigation, rechercher

Introduction

Vous trouverez dans cette section quelques logiciels qui vous permettrons de surveiller votre serveur dédié / vps avec une interface graphique qui pourra être visualisé depuis votre navigateur ou soit depuis votre terminal.

Warning WARNING
Pensez à sauvegarder vos fichiers avant d'effectuer une modification.

Note.png Note

Pour sauvegarder un fichier avec nano Icon11.gif combiner les touches CTRL + O puis Entrée.


Cacti

Cacti

Software version Cacti
Operating System All
Website Cacti Website
Last Update 0.8.8c
Others n/a


Introduction

Cacti est un logiciel parmi tant d'autres qui vous permettra de surveiller les ressources systèmes de votre serveur avec une interface graphique. Sachez tout de même qu'il est complexe à mettre en œuvre mais beaucoup moins que son confrère Nagios qui lui est une horreur à configurer (encore plus, si comme moi, l'anglais n'est pas votre fort ^^).

Requis

  • RRDTool 1.0.49 ou supérieur mais la version 1.4 (ou supérieur) est recommandé
  • MySQL 5.x ou supérieur
  • PHP 5.1 ou supérieur
  • Net-snmp
  • Serveur web avec php et les modules php-mysql et php-snmp (Apache2, Nginx etc...)

Facultatif

  • LDAP si vous souhaitez gérer les authentifications avec LDAP
  • GD uniquement pour des plugins tiers

Installation via apt-get

Installation via Source

Nagios

Introduction

Linux-Dash

Linux-Dash

Software version Linux-Dash
Operating System Arch, Debian 6, 7, Ubuntu 11.04+, Linux Mint 16+, CentOS 5, 6
Website Linux-Dash Website
Last Update 5.11
Others n/a

Introduction

Linux-Dash permet de suivre en temps réel l'état des ressources de son serveur.

Il est léger, plutôt performant et assez complet. Bien entendu il à ses limitations donc si vous souhaitez gérer un parc ou que vous avez besoin de choses complexes, il vous faudra voir du côté de Nagios ou autres...

Warning WARNING
Ce tutoriel a été réalisé pour Nginx
Free 4 Funs ne pourra être tenue responsable d’une instabilité du système résultant d’une mauvaise installation du système d’exploitation.


Requis

Rien ne vous oblige à passer par git, vous pouvez directement télécharger l'archive sur cette page puis descendez à l'étape de création du vhost.

Il vous faudra juste retirer git de la ligne ci-dessous avant d'installer.

 apt-get install php5-json php5-curl git

ou

 aptitude install php5-json php5-curl git

avec sudo :

 sudo apt-get install php5-json php5-curl git apache2-utils

ou

 sudo aptitude install php5-json php5-curl git apache2-utils


Installation

Avant de commencer, nous mettons à jour la machine :

 apt-get update && apt-get upgrade

ou

 aptitude update && aptitude upgrade

avec sudo :

 sudo apt-get update && sudo apt-get upgrade

ou

 sudo aptitude update && sudo aptitude upgrade

nous allons créer un vhost (pensez à modifier checksys.no-ip.org dans les différentes étapes !) :

 nano /etc/nginx/sites-available/checksys.no-ip.org

ou avec sudo :

sudo nano /etc/nginx/sites-available/checksys.no-ip.org

Copier/coller ceci :

server {
server_name checksys.no-ip.org;
listen 80;
access_log /var/log/nginx/access_linux-dash.log;
error_log /var/log/nginx/error_linux-dash.log;

location /linux-dash {
root /usr/share/nginx/html;
index index.html index.php;

}

location ~* \.(?:xml|ogg|mp3|mp4|ogv|svg|svgz|eot|otf|woff|ttf|css|js|jpg|jpeg|gif|png|ico)$ {
try_files $uri =404;
expires max;
access_log off;
add_header Pragma public;
add_header Cache-Control "public, must-revalidate, proxy-revalidate";
}

location ~ \.php(/|$) {
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_split_path_info ^(.+?\.php)(/.*)$;
#fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_pass 127.0.0.1:9000;
if (!-f $document_root$fastcgi_script_name) {
return 404;
}
try_files $uri $uri/ /index.php?$args;
include fastcgi_params;
}

}


Warning WARNING
Si vous utiliser php-fpm via socket, de commenter la ligne fastcgi_pass unix:/var/run/php5-fpm.sock; et commenter celle-ci : fastcgi_pass 127.0.0.1:9000; en mettant un #.

On active notre vhost :

 ln -s /etc/nginx/sites-available/checksys.no-ip.org /etc/nginx/sites-enabled/

On se place dans le répertoire du serveur web :

 cd /usr/share/nginx/html

ou avec sudo :

 sudo bash -c 'cd /usr/share/nginx/html'

On télécharge Linux-Dash (ceci nous permettra de garder à jour la version ultérieurement) :

 git clone https://github.com/afaqurk/linux-dash.git

ou avec sudo :

 sudo git clone https://github.com/afaqurk/linux-dash.git

Cloning into 'linux-dash'...
remote: Counting objects: 1994, done.
remote: Compressing objects: 100% (39/39), done.
remote: Total 1994 (delta 17), reused 0 (delta 0)
Receiving objects: 100% (1994/1994), 1.19 MiB | 1.09 MiB/s, done.
Resolving deltas: 100% (1139/1139), done.

On redémarre Nginx :

 service nginx restart

Maintenant, dans votre navigateur, allez sur la page http://votre_domaine.fr/linux-dash et admirer :)


Sécurisation

Nous utilisons apache2-utils pour pouvoi générer le htpasswd, si vous avez une autre méthode, vous pouvez ignorer cette étape.

 apt-get install apache2-utils

ou

 aptitude install apache2-utils

avec sudo :

 sudo apt-get install apache2-utils

ou

 sudo aptitude install apache2-utils


Création du fichier .htpasswd avec une encryption en SHA :

 htpasswd -cs /usr/share/nginx/html/linux-dash/.htpasswd VOTRE_LOGIN

ou avec sudo :

 sudo htpasswd -cs /usr/share/nginx/html/linux-dash/.htpasswd VOTRE_LOGIN

Vous devrez saisir votre mot de passe (et le confirmer) :

New password:
Re-type new password:
Adding password for user VOTRE_LOGIN

Éditons notre vhost :

 nano /etc/nginx/sites-enabled/checksys.no-ip.org

ou avec sudo :

 sudo nano /etc/nginx/sites-enabled/checksys.no-ip.org

Chercher location /linux-dash {, sur une nouvelle ligne, ajouter (Ce code devra être inséré avant l'accolade de fermeture du bloc location linux-dash):


       auth_basic "Linux Dash";
       auth_basic_user_file "/usr/share/nginx/html/linux-dash/.htpasswd";


Le vhost complet devra ressembler à :

server {
server_name checksys.no-ip.org;
listen 80;
access_log /var/log/nginx/access_linux-dash.log;
error_log /var/log/nginx/error_linux-dash.log;

location /linux-dash {
root /usr/share/nginx/html;
index index.html index.php;
auth_basic "Linux Dash";
auth_basic_user_file "/usr/share/nginx/html/linux-dash/.htpasswd";
}

location ~* \.(?:xml|ogg|mp3|mp4|ogv|svg|svgz|eot|otf|woff|ttf|css|js|jpg|jpeg|gif|png|ico)$ {
try_files $uri =404;
expires max;
access_log off;
add_header Pragma public;
add_header Cache-Control "public, must-revalidate, proxy-revalidate";
}

location ~ \.php(/|$) {
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_split_path_info ^(.+?\.php)(/.*)$;
#fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_pass 127.0.0.1:9000;
if (!-f $document_root$fastcgi_script_name) {
return 404;
}
try_files $uri $uri/ /index.php?$args;
include fastcgi_params;
}

}

On redémarre Nginx :

 service nginx restart

Maintenant, dans votre navigateur, rendez-vous sur la page :

Nginx htpasswd.jpg

et si vous n'indiquez pas le bon identifiant :

Nginx 401 htpasswd.jpg


F.A.Q

Q Comment mettre à jour Linux-Dash ?

R cd /chemin_Linux-Dash && git pull

ou avec sudo :

 cd /chemin_Linux-Dash && sudo git pull

Glances

Introduction

Glances vous permet de suivre en temps réel l'état des ressources de son serveur.

Warning WARNING
Free 4 Funs ne pourra être tenue responsable d’une instabilité du système résultant d’une mauvaise installation du système d’exploitation.


Requis

 apt-get install python-dev python-pip

ou

 aptitude install python-dev python-pip

avec sudo :

 sudo apt-get install python-dev python-pip

ou

 sudo aptitude install python-dev python-pip


Installation Python

Avant de commencer, nous mettons à jour la machine :

 apt-get update && apt-get upgrade

ou

 aptitude update && aptitude upgrade

avec sudo :

 sudo apt-get update && sudo apt-get upgrade

ou

 sudo aptitude update && sudo aptitude upgrade


On télécharge Glances (ceci nous permettra de garder à jour la version ultérieurement) :

 pip install Glances

ou avec sudo :

 sudo pip install Glances

une fois installé, il vous suffira d'exécuter glances en SSH pour voir les différentes informations.

Une capture décran d'un VPS gratuit :

F4f glances.jpg

Il n'y a rien de compliqué, cependant voici la légende des couleurs :

   VERT : la statistique est OK
   BLEU : la statistique est CAREFUL (prudence donc à surveiller...)

VIOLET: la statistique est WARNING (en alerte)

   ROUGE : la statistique est CRITICAL (critique)

Si vous souhaitez vous amuser à modifier la configuration, vous trouverez le fichier de configuration dans /etc/glances/glances.conf.

A ce jour où nous écrivons ce tutoriel, glances est en version 2.2.1.

L'aide de glances :

  glances -h
 usage: glances [-h] [-V] [-d] [-C CONF_FILE] [--disable-network]
              [--disable-diskio] [--disable-fs] [--disable-sensors]
              [--disable-left-sidebar] [--disable-process] [--disable-log]
              [--disable-bold] [--enable-process-extended] [--enable-history]
              [--path-history PATH_HISTORY] [--output-csv OUTPUT_CSV]
              [-c CLIENT] [-s] [--browser] [--disable-autodiscover] [-p PORT]
              [-B BIND_ADDRESS] [--password-badidea PASSWORD_ARG]
              [--password] [--snmp-community SNMP_COMMUNITY]
              [--snmp-port SNMP_PORT] [--snmp-version SNMP_VERSION]
              [--snmp-user SNMP_USER] [--snmp-auth SNMP_AUTH] [--snmp-force]
              [-t TIME] [-w] [-f PROCESS_FILTER] [--process-short-name]
              [--hide-kernel-threads] [--tree] [-b] [-1] [--fs-free-space]
              [--theme-white]
 optional arguments:
 -h, --help            show this help message and exit
 -V, --version         show program's version number and exit
 -d, --debug           Enable debug mode
 -C CONF_FILE, --config CONF_FILE
                       path to the configuration file
 --disable-network     disable network module
 --disable-diskio      disable disk I/O module
 --disable-fs          disable filesystem module
 --disable-sensors     disable sensors module
 --disable-left-sidebar
                       disable network, disk io, FS and sensors modules
 --disable-process     disable process module
 --disable-log         disable log module
 --disable-bold        disable bold mode in the terminal
 --enable-process-extended
                       enable extended stats on top process
 --enable-history      enable the history mode
 --path-history PATH_HISTORY
                       Set the export path for graph history
 --output-csv OUTPUT_CSV
                       export stats to a CSV file
 -c CLIENT, --client CLIENT
                       connect to a Glances server by IPv4/IPv6 address or
                       hostname
 -s, --server          run Glances in server mode
 --browser             start the client browser (list of servers)
 --disable-autodiscover
                       disable autodiscover feature
 -p PORT, --port PORT  define the client/server TCP port [default: 61209]
 -B BIND_ADDRESS, --bind BIND_ADDRESS
                       bind server to the given IPv4/IPv6 address or hostname
 --password-badidea PASSWORD_ARG
                       define password from the command line
 --password            define a client/server password from the prompt or
                       file
 --snmp-community SNMP_COMMUNITY
                       SNMP community
 --snmp-port SNMP_PORT
                       SNMP port
 --snmp-version SNMP_VERSION
                       SNMP version (1, 2c or 3)
 --snmp-user SNMP_USER
                       SNMP username (only for SNMPv3)
 --snmp-auth SNMP_AUTH
                       SNMP authentication key (only for SNMPv3)
 --snmp-force          force SNMP mode
 -t TIME, --time TIME  set refresh time in seconds [default: 3 sec]
 -w, --webserver       run Glances in web server mode
 -f PROCESS_FILTER, --process-filter PROCESS_FILTER
                       set the process filter pattern (regular expression)
 --process-short-name  force short name for processes name
 --hide-kernel-threads
                       hide kernel threads in process list
 --tree                display processes as a tree
 -b, --byte            display network rate in byte per second
 -1, --percpu          start Glances in per CPU mode
 --fs-free-space       display FS free space instead of used
 --theme-white         optimize display for white background

Vous trouverez un tutoriel complet de l'auteur sur cette page.


Mettre à jour Glances avec PIP

 pip install --upgrade Glances
 ou avec sudo :
 sudo pip install --upgrade Glances
 

Installation Github

Avant de commencer, nous mettons à jour la machine :

 apt-get update && apt-get upgrade

ou

 aptitude update && aptitude upgrade

avec sudo :

 sudo apt-get update && sudo apt-get upgrade

ou

 sudo aptitude update && sudo aptitude upgrade


On télécharge Glances (ceci nous permettra de garder à jour la version ultérieurement) :

 git clone https://github.com/nicolargo/glances.git

ou avec sudo :

 sudo git clone https://github.com/nicolargo/glances.git

une fois installé, il vous suffira d'exécuter glances en SSH pour voir les différentes informations.


Mettre à jour Glances avec Github

R cd /chemin_glances && git pull

ou avec sudo :

cd /chemin_glances && sudo git pull


Monit

Monit

Software version Monit
Operating System FreeBSD, Linux (x86 & x64), MacOS, OpenBSD et Solaris
Website Monit Website
Last Update 5.11
Others n/a

Introduction

Monit est un logiciel qui surveillera les instances (processus, fichiers, charge cpu etc...) de votre machine. Il est efficace et puissant.
Dans ce tutoriel, nous vous proposerons deux installations différentes, la première consistera à installer
Monit via apt-get et la seconde via Bitucket (ce qui vous permettra de garder Monit à jour facilement).

Installation Monit via apt-get

Sachez quand même que la version installé sera la 5.4 et que Monit est en version 5.11 donc si vous êtes comme moi (toujours avoir la dernière version), descendez au tutoriel via Bitbucket. ;)

Avant de commencer, nous commençons par mettre à jour notre Debian en ROOT.

Command
apt-get update && apt-get upgrade -y

ou

Command
aptitude update && aptitude upgrade -y

On installe Monit :

Command
apt-get install monit -y

ou

Command
aptitude install monit -y

Côté configuration, je préfère vous laissez regarder car chaque SysAdmin aura sa propre configuration et vu qu'elle n'a rien de complexe.

J'y reviendrais prochainement pour détailler la configuration mais pour le moment, cela attendra. :)


Ajouter un processus à surveiller

Avec votre éditeur de texte, éditez le fichier /etc/monit/monitrc.

Command
nano /etc/monit/monitrc

Rechercher ## Check filesystem permissions et dans une nouvelle ligne, copier/coller :

 check process proftpd with pidfile /var/run/proftpd.pid
  start program = "/etc/init.d/proftpd start"
  stop program  = "/etc/init.d/proftpd stop"
  if failed port 21 protocol ftp then restart
  if 5 restarts within 5 cycles then timeout


Ceci proviens de la [mmonit.com/wiki/Monit/ConfigurationExamples documentation officielle] que je vous invite à consulter pour ajouter d'autres processus.

Configuration Monit pour Ngix

Avec votre éditeur de texte, éditez le fichier /etc/monit/monitrc.

Command
nano /etc/monit/monitrc

Rechercher set httpd port 2812 and (ligne 118 dans la version 5.11) puis au dessus de ## Services, copier/coller : <syntaxhighlight lang="php">

 set httpd port 2812
   use address ADRESSE_IP_DEDIE  # accepte uniquement les connexions localhost
   allow 0.0.0.0/0.0.0.0        # Autorise localhost à se connecter au serveur
   allow admin:monit      # On protège l'accès de l'interface web avec l'utilisateur admin qui a pour mot de passe monit

</syntaxhighlight>

Sauvegarder la modification puis on recharge Monit :

Command
monit reload

Accéder avec votre navigateur, identifier vous et c'est fini. :)

L'inconvénient est qu'il ne peut gérer qu'un serveur, après il vous faudra installer M/Monit et payer une https://mmonit.com/shop licence].

Instalaltion Monit Complexe

Ce tutoriel vas vous montrer comment installer Monit depuis les sources.

Avant de commencer, nous commençons par mettre à jour notre Debian en ROOT.

Command
apt-get update && apt-get upgrade -y

ou

Command
aptitude update && aptitude upgrade -y


Requis

  • Le paquet build-essentials pam libpam0g-dev


Installation

On télécharge et on décompresse l'archive :

Command
cd /opt && wget http://mmonit.com/monit/dist/monit-5.11.tar.gz && tar -xvzf monit-5.11.tar.gz

Warning WARNING
Avant de copier/coller ce que vous lisez à la lettre, vous pouvez configurer l'installation de Monit ! Faites ./configure --help pour avoir les options de configuration.

On installe Monit :

Command
cd monit-5.11 && ./configure

puis :

Command
make && make install

L'exécutable de monit est placé dans /usr/local/bin/ ce qui fait que lorsqu'on exécute monit dans un terminal :

 bash: /usr/bin/monit: Aucun fichier ou dossier de ce type

Nous allons créer un lien symbolique tout simplement :

Command
ln -s /usr/local/bin/monit /usr/bin/

On vérifie :

Command
monit

 Monit daemon with PID 19256 awakened


Pour la configuration, veuillez vous référer à la documentation de Monit en attendant que je le fasse en Français.

Requis

Systat

Introduction

Icinga

Introduction