Monitoring Serveur Dédié
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.
Cacti
Introduction
Nagios
Introduction
Linux-Dash
Introduction
| 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...
| |
| 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;
}
| |
| 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 :
et si vous n'indiquez pas le bon identifiant :
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.
| |
| 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 :
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
![]() |
|
| 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).
| |
| Pensez à sauvegarder vos fichiers avant d'effectuer une modification. |
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.
| |
| apt-get update && apt-get upgrade -y |
ou
| |
| aptitude update && aptitude upgrade -y |
On installe Monit :
| |
| apt-get install monit -y |
ou
| |
| 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.
| |
| nano /etc/monit/monitrc |
Rechercher ## Check filesystem permissions et dans une nouvelle ligne, copier/coller :
<syntaxhighlight lang="text">
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
</syntaxhighlight>
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.
| |
| 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="txt"> 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 :
| |
| 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].
Introduction Monit via Bitbucket
Avant de commencer, nous commençons par mettre à jour notre Debian en ROOT.
| |
| apt-get update && apt-get upgrade -y |
ou
| |
| aptitude update && aptitude upgrade -y |
On installe Monit :
| |
| apt-get install monit -y |
ou
| |
| aptitude install monit -y |



