Catégories
Open-source Planet-libre Systeme

Cherche bêta-testeurs pour Glances 1.4

Billet dominical pour lancer une petite annonce: je cherche des bêta-testeurs pour la prochaine version de Glances, mon logiciel de monitoring système.

En effet, la version 1.4 de Glances intégrera la librairie PsUtil lieu et place de StatGrab pour récupérer les informations du système d’exploitation. Ce changement majeur (du moins pour ce modeste logiciel) nécessite une revalidation complète que je n’ai pas le temps de mener sur l’ensemble des système d’exploitation.

Voici un aperçu de cette prochaine version:

En quoi consiste le travail  à faire ?

Installation de la version bêta

Premièrement, récupérer la branche EXPERIMENTAL de Glances (actuellement en 1.4b) de la manière suivante:

[cc]

mkdir ~/tmp

cd ~/tmp

git clone -b experimental git://github.com/nicolargo/glances.git

cd ~/tmp/glances/glances

[/cc]

L’avantage de cette procédure est de pouvoir conserver en parallèle la version stable et la bêta.

Avant de pouvoir lancer la bêta de Glances il faut s’assurer que la librairie PsUtil (version 0.4 ou supérieure) est installé sur votre système.

La version 12.04 inclue cette dernière dans les dépôts officiels.

Pour les autres versions de Debian/Ubuntu, il est possible de suivre la procédure suivante pour l’installer:

[cc]

sudo apt-get install python-dev python-pip

sudo pip install psutil

[/cc]

Test de la version bêta

Pour lancer la version bêta de Glances sur votre système, il suffira ensuite d’utiliser la commande:

[cc]

cd ~/tmp/glances/glances

./glances.py

[/cc]

De qui ai-je besoin ?

Cette version a été testé sous (màj le 21 juin 2012):

  • Ubuntu 10.04 (64 bits), 10.10 (32 bits), 11.04 (64 bits), 11.10 (64 bits), 12.04 (32 bits)
  • Mint 11, Mint 12 et Mint Debian Edition
  • Debian 6 Squeeze et Wheeze (64 bits)
  • Fedora 16, 17
  • CentOS 5, 6
  • Arch 64 bits
  • Gentoo 3.2.5

J’ai donc besoin de toutes les personnes ayant une version d’OS différentes, notamment:

  • RedHat
  • Mandriva (Raymond si tu m’entends)
  • FreeBSD
  • OpenBSD
  • NetBSD

Une fois l’application validée, deux solutions. Si l’application fonctionne correctement, alors un simple message dans ce billet avec le nom de l’OS testé suffira à mon bonheur. En cas de problème, merci d’ouvrir un bug à partir de la page suivante en donnant le maximum d’information: version de Glances, version de PsUtil, version de Python, version du système d’exploitation, description du problème.

Merci à vous !

Catégories
Open-source Planet-libre Systeme

Glances v1.3.7: les nouveautés !

Glances, mon logiciel de supervision système évolue en version 1.3.7.

Pour installer cette dernière version, il suffit de suivre la documentation officielle (ou d’attendre la mise à jour dans les dépôts de votre distribution).

Nouveautés

Cette dernière version propose notamment, en plus de quelques optimisations et corrections de bugs:

  • l’affichage des dernières alertes (historique) en bas de la fenêtre
  • modification interne de la gestion des alertes qui ouvre la porte à leurs paramétrages dans une future version
  • ajout du support des consoles en noir et blanc

Voici un aperçu:

Petites précisions sur la principale nouveauté de cette version: les logs.

Les ‘n’ dernières alertes (nombre limité à 10) sont affichées (si l’espace est libre) en bas de la fenêtre. Seules les alertes WARNING ou CRITICAL  pour la CPU, la charge et la mémoire globale sont prises en compte.

Une ligne de log est décomposé de la manière suivante:

  • le premier caractère, en début de ligne, indique la criticité de l’alerte (couleur violette pour les alertes WARNING et rouge pour le CRITICAL) avec en option le caractère ~ si l’alerte en cours.
  • la date de début de l’alerte
  • la date de fin de l’alerte (si elle n’est pas en cours)
  • la description de l’alerte
  • les valeurs (min/moyenne/max) de la statistique concernée durant l’alerte

Le futur de Glances

La principale évolution sur laquelle je travaille pour la future version majeure de Glances (la 2.0) est le remplacement de la librairie StatGrab (le projet semble peu réactif) par PsUtil. J’ai d’ailleurs commencé à étudier la question dans le Wiki et je suis preneur de toutes les bonnes idées pour améliorer Glances.

Je suis toujours preneur de contributeurs pour « packager » Glances dans un dépôt PPA Ubuntu et des dépôts Debian (j’ai essayé mais je n’ai pas le temps de suivre ces actions).

Catégories
Open-source Planet-libre Reseau Systeme

Installation et configuration de Munin, le maître des graphes

Munin est un logiciel de supervision permettant de centraliser la gestion des graphes de données RRDTools. Il permet en quelques commandes que nous allons détailler dans ce billet de générer des graphes complexes pour surveiller vous machines et les processus qui tournent dessus.

Voici un exemple de graphe sur les statistiques remontées par un serveur utilisant Varnish:

Introduction

Munin est proposé sous la forme de deux packages complémentaires: munin et munin-node.

Le premier (munin) est à installer sur votre serveur de supervision (appelé maître). Son objectif principal est de récupérer les données venant des machines à surveiller puis de générer des graphes qui seront présentés aux utilisateurs via une interface Web.

Le second  (munin-node) est à installer sur toutes les machines à superviser (appelées noeuds). Son objectif est de collecter les informations systèmes en utilisant des plugins (présent dans le package munin-node et dans munin-plugins-extra).

La communication entre le serveur maître et les machines noeuds utilise, par défaut le protocole TCP/4949 (initialisation de la connexion TCP de la part du serveur maître).

Installation de Munin

Pour la suite de ce billet (et sauf mention spécifique), je partirai sur le principe ou vous utilisez des machines sous Debian/Ubuntu.

Installation de Munin sur le serveur maître

Le serveur maître doit disposer d’un serveur Web (voir ce billet pour installer simplement NGinx sur votre système) configuré avec le répertoire root par défaut: /var/www.

Comme Munin est présent dans les dépôts officiels, il suffit de saisir la commande suivant qui va installer le package maître ainsi que le package esclave histoire de pouvoir superviser son serveur de supervision…:

sudo apt-get install munin munin-node munin-plugins-extra

sudo ln -s /var/cache/munin/www /var/www/munin

sudo /etc/init.d/munin-node restart

En faisant pointer un navigateur Web vers l’URL:

http://votreserveurdesupervision/munin

Vous devriez voir s’afficher les statistiques de votre serveur. Il faut attendre quelques minutes avant de voir les premiers graphes, le temps que les bases de données soient renseignées.

Installation de Munin sur les machines noeuds

Installation des noeuds sous GNU/Linux

Là encore c’est assez simple:

sudo apt-get install munin-node munin-plugins-extra

La configuration de Muni sur les machines noeuds est centralisée dans le fichier /etc/munin/munin-node.conf. Il faut éditer ce fichier pour y configurer l’adresse IP de votre serveur maître à la ligne suivante:

# A list of addresses that are allowed to connect. This must be a

# regular expression, since Net::Server does not understand CIDR-style

# network notation unless the perl module Net::CIDR is installed. You

# may repeat the allow line as many times as you'd like

allow ^192\.168\.1\.200$

Cette configuration (à adapter à votre besoin) va autoriser la machine maître d’adresse IP 192.168.1.200 à se connecter sur cette machine noeud pour y récupérer les données à superviser.

Il faut ensuite relancer le service Munin-node pour faire prendre en compte la nouvelle configuration:

sudo /etc/init.d/munin-node restart

Installation des noeuds sous Windows

Le projet Munin ne fourni pas de « node » pour WIndows, il faut donc se retourner du coté de la communauté pour trouver notre bonheur. En l’occurrence du coté du logiciel Munin-Node-Win32 disponible au téléchargement sur cette page.  Il suffit de lancer l’installer pour que l’installation et le lancement du processus en tache de fond soit effectué (procédure testé sous Windows 7).

Installation des noeuds sous MacOS

Si vous avez à surveiller des machines sous Mac OS X, il va falloir mettre un peu plus les mains dans le cambouis. En effet, il faut obligatoire passer par l’installation des gestionnaires de paquets Fink ou MacPorts. Je vous conseille la lecture du Wiki officiel.

Configuration des plugins sur les machines noeuds

Nous allons voir dans cette sections comment configurer ce que l’on souhaite superviser sur les machines noeuds. Munin utilise le fichier  /etc/munin/plugin-conf.d/munin-node (ainsi que tous les fichiers se trouvant dans le même répertoire) pour configurer les paramètres des plugins (bien souvent de simples script Perl).

Le répertoire /etc/munin/plugins/ contient la liste des plugins utilisables par la machine noeud et le répertoire /usr/share/munin/plugins/ l’ensemble des plugins. En y regardant de plus prêt, le répertoire  /etc/munin/plugins/ fait des liens symboliques vers le répertoire /usr/share/munin/plugins/.

Pour voir la liste des plugins disponibles sur le noeud, on peut utiliser:

# sudo munin-node-configure

Exemple de l’ajout des plugins NGinx (permettant de surveiller un serveur Web NGinx) sur un noeud:

Pour faire prendre en compte un nouveau plugin sur un noeud (node) il faut faire un lien symbolique entre le fichier en question dans ce répertoire et /etc/munin/plugins/. Par exemple pour accéder aux stats de mon serveur NGinx:

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

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

Il est quelquefois necessaire d’installer des dependances pour que le plugin fonctionne.

Pour voir les dépendances nécessaire il suffit de saisir la commande:

sudo munin-node-configure --suggest | grep nginx

nginx_request | yes | no [LWP::UserAgent not found]

nginx_status | yes | no [LWP::UserAgent not found]

Il faut donc installer la librairie perl contenant le module LWP qui est présente dans le package libwww-perl sur Debian/Ubuntu:

sudo apt-get install libwww-perl

Cela a l’air OK:

sudo munin-node-configure --suggest

nginx_request | yes | yes

nginx_status | yes | yes

On peut faire prendre en compte la configuration par Munin-node:

sudo /etc/init.d/munin-node restart

Configuration du maître pour prendre en compte les machines noeuds

Une fois toutes vos machines noeuds configurés (voir le chapitre précédant), il faut maintenant modifier la configuration du serveur maître pour les prendre en compte. Là encore, fidèle à la philosophie Unix, la configuration est centralisé dans le fichier /etc/munin/munin.conf.

En plus des répertoires systèmes en début de fichier:

# The next three variables specifies where the location of the RRD

# databases, the HTML output, logs and the lock/pid files. They all

# must be writable by the user running munin-cron. They are all

# defaulted to the values you see here.

#

dbdir /var/lib/munin

htmldir /var/cache/munin/www/

logdir /var/log/munin

rundir /var/run/munin

Il faut configurer la liste des noeuds de la manière suivante:

# A simple host tree for mondomaine.com

[maitre.mondomaine.com]

address 127.0.0.1

[noeud1.mondomaine.com]

address noeud1.mondomaine.com

[noeud2.mondomaine.com]

address noeud2.mondomaine

Reste à relancer le serveur Munin pour prendre en compte la configuration:

su - munin --shell=/bin/bash

/usr/share/munin/munin-update

exit

En faisant pointer un navigateur Web vers l’URL:

http://votreserveurdesupervision/munin

Puis par exemple les graphes sur l’occupation mémoire:

Pour voir une démonstration en ligne des capacités de Munin, vous pouvez consulter ce serveur maître qui est en accès libre.

Plus de plugins ?

Un des gros avantage de Munin est le fait de pouvoir simplement écrire de nouveaux plugins en utilisant votre langage favori (nous reviendrons bientôt sur ce sujet dans un prochain billet).  Pas mal d’exemples sont proposés  dans le dépôt GitHub suivant (vous devriez trouver votre bonheur).
Catégories
Open-source Planet-libre Systeme Web

NGinx – Protéger son site avec une authentification simple HTTP

Un petit billet « flash express » pour  protéger son site (ou un répertoire de son site) avec une authentification simple (type login/password) sur un serveur NGinx.

Pré-requis

Il faut disposer d’un serveur NGinx bien configuré (par exemple en utilisant ce script d’auto-installation pour Debian ou Ubuntu) puis du logiciel htpasswd que l’on peut installer sous Debian/Ubuntu avec la commande suivante:

[cc]

sudo apt-get install apache2-utils

[/cc]

Création du fichier .htpasswd

Ce fichier va contenir, de manière chiffré, le mot de passe associé à l’utilisateur. La commande à utiliser pour créer ce fichier est la suivante:

[cc]

sudo htpasswd -c /var/www/.htpasswd nicolargo

New password:

Re-type new password:

Adding password for user nicolargo

[/cc]

Ou:

  • -c est une option pour créer le fichier (sans cette option, le couple login/password est ajouté)
  • /var/www/ est l’emplacement du fichier .htpasswd. Le contenu du répertoire /var/www/ (donc la racine de mon site Web) sera donc protégée par le couple login/password
  • nicolargo est le nom de l’utilisateur (login)
  • ilfaut sasir deux fois le mot de passe (password)

Configuration de NGinx

Pour que NGinx puisse gérer les fichiers .htpasswd, il faut ajouter modifier la configuration de son site (à  adapter selon votre configuration):

[cc]

server {

listen 80;

server_name localhost;

root /var/www;

# Static

location / {

index index.html index.htm;

auth_basic « Login »;

auth_basic_user_file /var/www/.htpasswd;

}

# Protect hidden file to read/write access

location ~ /\. {

deny all;

}

}

[/cc]

Après avoir rechargé la configuration:

[cc]

sudo /etc/init.d/nginx restart

[/cc]

Il ne reste plus qu’à…

Tester

En pointant un navigateur sur le site en question, une bannière d’authentification va apparaitre:

 

Note sur la sécurité

Attention de ne PAS utiliser se mécanisme pour protéger des informations sensibles. En effet il n’y a pas de chiffrement des données lors de la transmission en HTTP entre le navigateur et le serveur et le fichier .htpasswd peut être récupéré en cas de corruption de votre serveur…

Catégories
Developpement Open-source Planet-libre Systeme

Les nouveautés de Glances 1.3.6

Glances, mon logiciel de supervision système en mode console vient de sortir en version 1.3.6.

Voici les nouveautés:

  • Les statistiques du panneau de gauche peuvent être masqués ou affichés à la demande en cliquant sur les touches ‘n‘ (interfaces réseau), ‘d‘ (entrées/sorties disques) et ‘f‘ (espaces disques).
  • Un panneau d’aide s’affiche quand on clique sur la touche ‘h‘.
  • En plus du « man », il est possible d’afficher le manuel en lançant glances avec les options -h ou –help.
  • Glances est maintenant disponible en Anglais (langue par défaut), en Français ou en Espagnol grâce à la contribution de Jean Bob.
  • Optimisation de l’affichage sur des terminaux > 80×24 caractères.
  • … et bien sûr son lot de corrections de bugs et ajout de contrôles lors du lancement de l’application.

Voici un aperçu de l’interface de la version 1.3.6 de Glances:

Vous trouverez plus d’informations ainsi que la procédure d’installation dans le billet suivant.

Catégories
Open-source Planet-libre Systeme

Créer un dépôt Debian local sans liaison Internet

Vous êtes sur un réseau sans accès Internet et vous devez installer et maintenir plusieurs machines Debian ?

Ce scénario s’étant présenté à moi, j’ai décidé d’installer sur ce réseau isolé  un dépôt Debian local que j’ai construit à partir des 8 DVD d’installation de la version 6.0.3 de Debian Squeeze.  Nous allons donc dans ce billet voir la marche à suivre, étape par étape.

Construction du dépôt local

Pour effectuer cette action, il faut:

  • les DVD d’installation de la Debian 6.0.x ou toutes les images ISO des DVD d’installation de Debian 6.0.x (à télécharger ici)
  • une machine sous Debian qui hébergera le dépôt local (donc avec un minimum de 50 Go de disque disponible)
  • du temps…

On commence par faire une installation standard de Debian 6.

On créé ensuite un répertoire qui contiendra le dépôt local (/data/debian dans mon exemple qui est en fait un point de montage sur un deuxième disque dur):

mkdir /data/debian

Si vous avez les DVD…

On copie les fichiers .deb des DVD dans ce répertoire en utilisant insérant le DVD dans le lecteur puis en saisissant la commande suivante (action à répéter pour les 8 DVD):

for f in $(find /media/cdrom/debian/pool/ -type f); do cp $f -t /data/debian; done

Si vous avez les images ISO…

Si comme moi vous avez copié les images ISO des DVD sur un NAS (monté dans le répertoire /mnt/nas/iso/debian) alors vous pouvez utiliser cette commande en lieu et place de la précédante:

mkdir -p /mnt/iso
for i in `ls /mnt/nas/iso/debian`
do
  mount -o loop /mnt/nas/iso/debian/$i /mnt/iso
  for f in $(find /mnt/iso/debian/pool -type f)
  do 
    echo $f
    cp $f -t /data/debian
  done
  umount /mnt/iso
done

A la fin de ces opérations, le répertoire /data/debian devrait contenir l’ensemble des paquets .deb constituant la distribution stable de Debian Squeeze (pour une taille d’environ 35 Go).

On passe ensuite à la création des deux fichiers qui vont permettre de transformer ce répertoire en un dépôt Debian: les fichiers Release et Packages.gz.

Le fichier Release

On commence par le fichier Release (à mettre dans le répertoire /data/debian) qui décrit le le dépôt. C’est un fichier texte à créer avec votre éditeur favori:

Archive: squeeze

Component: main

Origin: Nicolargo

Label: Le depot de Nicolargo

Architecture: amd64

Les lignes importantes sont:

Archive: squeeze > Ce dépôt sera utilisable par des machines sous Debian 6 (nom de code Squeeze)

Component: main > Ce dépôt contient les composant principaux de la distribution Debian 6

Architecture: amd64 > Ce dépôt sera utilisable par des machines 64 bits

Le fichier Packages.gz

On continu ensuite avec le fichier Packages (compressé avec Gzip) qui contiendra la description (nom, version , description, dépendances…) de tous les paquets .deb se trouvant dans le répertoire. Il est bien sur impossible de construire ce fichier à la mimine. Nous allons donc utiliser l’utilitaire dpkg-scanpackages.

cd /data/debian

dpkg-scanpackages ./ /dev/null | gzip -9c > Packages.gz

Cette opération va prendre un certain temps… Soyez patient…

Test local du dépôt

Avant d’utiliser ce dépôt sur d’autres machines, il faut dans un premier temps le tester sur notre machine hébergeant le dépôt. Pour cela il faut éditer le fichier /etc/apt/sources.list pour y laisser seulement la ligne suivante:

deb file:///data/debian ./

On met ensuite à jour la base APT de notre machine:

apt-get update

Installation du serveur Web pour proposer le dépôt à d’autres machines

Pour que votre dépôt soit visible depuis les autres machines de votre réseau, le plus simple est d’y installer un serveur Web qui va présenter le répertoire /data/debian en utilisant le protocole HTTP.

Personnellement, j’utilise le serveur Web NGinx:

apt-get install nginx

Puis en éditant le fichier /etc/nginx/sites-enabled/defaults:

server {

listen 80;

server_name localhost;

access_log logs/debianrepos.access.log main;

location /debian {

root /data;

autoindex on;

}

}

On relance NGinx pour prendre en compte la configuration:

/etc/init.d/nginx restart

Utilisation du dépôt local

Pour utiliser notre beau dépôt local sur une autre machine Debian Squeeze, il suffit d’éditer le fichier /etc/apt/sources.list pour y laisser seulement la ligne suivante:

deb http://192.168.1.100/debian ./

Ou 192.168.1.100 est à remplacer par l’adresse IP du serveur hébergeant votre dépôt.

On met ensuite à jour la base APT de notre machine:

apt-get update

Il ne reste plus qu’a installer vos logiciels en utilisant la commande apt-get install !

Sources pour la rédaction de ce billet:

Catégories
Open-source Planet-libre Systeme

Pense-bête: un deuxième disque dur pour votre GNU/Linux

Petit pense-bête à usage interne pour installer (= partitionner & formater) un deuxième disque dur au format ext4 sur une distribution GNU/Linux.

Notes: les commandes suivantes doivent être effectuées depuis un compte root.

Préparation

On commence par vérifier la liste des disques disponibles avec la commande:

[cc]
# fdisk -l
[/cc]

J’obtiens:

Disk /dev/sda: 17.2 GB, 17179869184 bytes
255 heads, 63 sectors/track, 2088 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0000f7a3

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1        1998    16043008   83  Linux
/dev/sda2            1998        2089      731137    5  Extended
/dev/sda5            1998        2089      731136   82  Linux swap / Solaris

Disk /dev/sdb: 34.4 GB, 34359738368 bytes
255 heads, 63 sectors/track, 4177 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

Disk /dev/sdb doesn't contain a valid partition table

J’ai donc deux disques disponibles (je suis sur une VM donc ne vous étonnez pas des tailles):

  • /dev/sda: d’une taille de 17.2 GB avec 3 partitions (sda1, sda2, sda5)
  • /dev/sdb: d’une taille de 34.4 GB sans partition

C’est ce deuxième disque (sdb) que l’on souhaite installer

Partitionnement

On commence donc par partitionner le disque en question:

[cc]
# fdisk /dev/sdb
[/cc]

Notes: Faites bien attention à lancer la commande fdisk sur le bon disque…

une seule grosse partition qui utilisera la totalité de l’espace disque:

Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
Building a new DOS disklabel with disk identifier 0x852ed7ac.
Changes will remain in memory only, until you decide to write them.
After that, of course, the previous content won't be recoverable.

Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)

WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
         switch off the mode (command 'c') and change display units to
         sectors (command 'u').

Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-4177, default 1): 
Using default value 1
Last cylinder, +cylinders or +size{K,M,G} (1-4177, default 4177): 
Using default value 4177

Puis on demande à fdisk de lui affecter le type ‘Linux’

Command (m for help): t
Selected partition 1
Hex code (type L to list codes): 83

Puis on valide:

Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.

La partition que l’on vient de créer portera le nom sdb1.

Formatage en ext4

On utilise ensuite la commande mkfs.ext4 pour formater la partition au format EXT4

[cc]
# mkfs.ext4 -b 4096 /dev/sdb1
[/cc]

mke2fs 1.41.12 (17-May-2010)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
2097152 inodes, 8387930 blocks
419396 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=4294967296
256 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks: 
	32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 
	4096000, 7962624

Writing inode tables: done                            
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 34 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.

Vérification

On vérifie que tout c’est bien passé:

[cc]
# fdisk -l
[/cc]

Disk /dev/sda: 17.2 GB, 17179869184 bytes
255 heads, 63 sectors/track, 2088 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0000f7a3

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1        1998    16043008   83  Linux
/dev/sda2            1998        2089      731137    5  Extended
/dev/sda5            1998        2089      731136   82  Linux swap / Solaris

Disk /dev/sdb: 34.4 GB, 34359738368 bytes
255 heads, 63 sectors/track, 4177 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x852ed7ac

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1        4177    33551721   83  Linux

Nous disposons donc bien d’une disque (/dev/sdb1) de 34.4 GB

Utilisation de la nouvelle partition

Pour utiliser ce nouveau disque, il faut le monter (« mount »).

On commence donc par créer un répertoire (/mnt/data) dans lequel le contenu du disque sera visible:

[cc]
# mkdir /mnt/data
[/cc]

Puis on édite le fichier /etc/fstab pour lui ajouter la ligne suivante:

/dev/sdb1             /mnt/data    ext4  defaults   1 1

On monte le disque:

[cc]
# mount /mnt/data
[/cc]

et on vérifie que le système le détecte:

[cc]
# df -k
[/cc]

Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/sda1             15791024   2446256  12542620  17% /
tmpfs                   513604         0    513604   0% /lib/init/rw
udev                    508732       116    508616   1% /dev
tmpfs                   513604         0    513604   0% /dev/shm
/dev/sdb1             33025240    180152  31167504   1% /mnt/data

Bingo, il ne reste plus qu’à écrire/lire vos données dans le répertoire /mnt/data !

Catégories
Blog Open-source Planet-libre Systeme

Résultats du sondage sur les systèmes d’exploitation

Je viens de clôturer le sondage que j’avais mis en ligne dimanche dernier et qui avait pour objectif de connaître les systèmes d’exploitation que vous, lecteurs du blog, utilisez au quotidien.

Quelques 638 réponses plus tard, voici le résultat des courses !

Question 1: Quel système d’exploitation utilisez vous chez vous ?

Pas de grosses surprise, les distributions basées sur Debian (Ubuntu/Debian/Mint) arrive en tête pour le monde GNU/Linux. Windows est encore bien présent mais souvent en deuxième machine (c’est pour cela que la somme des réponses dépassent les 100%). A noter que Mac OS X arrive en 4em place.

Les lecteurs de ce blog sont donc bien équipés avec une moyenne de 2.06 OS par domicile.

Question 2: Quel système d’exploitation utilisez vous au boulot ?

Le lobbying|vente forcée de Microsoft marche encore bien dans nos entreprises puisque Windows arrive en deuxième position (419) derrière les « Debian like » (492).  Il est par contre assez étonnant de voir le relatif faible score de la distribution Redhat pour qui l’entreprise est clairement la cible. Il faut cependant relativiser ces chiffres par le fait que les lecteurs de ce blog ne sont pas des utilisateurs lambda…

L’utilisation de plusieurs systèmes est aussi important (2.02 OS par utilisateur).

Question 3: Si vous êtes sous GNU/Linux, quel est votre environnement graphique ?

Question un peu à part, mais d’actualité, sur l’utilisation des environnements graphiques GNU/Linux. Gnome 2 (le classique) arrive en tête mais il est suivi le prêt par Gnome 3 (Shell) qui semble enfin prendre son envol. Unity qui a pas mal fait parlé de lui arrive en 3em place alors qu’il est seulement pré-installé sur les dernières distributions Ubuntu.

Question 4: Sur quel système d’exploitation installez vous vos serveurs (dédiés ou virtuels) ?

Il est intéressant de voir que pour vos serveurs, Debian largement en tête des votes. La stabilité de ce système est rassurante pour des machines qui sont critiques. Ubuntu Server arrive en deuxième place devant Fedora/Redhat.

Que pensez-vous de ces résultats ? Des surprises ?

Vous pouvez consulter les résultats complets sur cette page.

Catégories
Open-source Planet-libre Systeme

Présentation complète de Glances

Il y a quelques jours, je vous avez présenté la première version de Glances, mon logiciel pour surveiller simplement ses systèmes en mode texte à partir d’une console ou d’un terminal. Quelques versions plus tard (Glances est actuellement disponible en version 1.3.7), il était temps pour moi de vous en faire une présentation un peu plus complète.

Introduction

Glances est un logiciel libre (distribué sous licence LGPL) permettant de surveiller votre système d’exploitation GNU/Linux ou BSD à partir d’une interface texte. Glances utilise la librairie libstatgrab pour récupérer les informations de  votre système. Il est développé en langage Python.

Installation

Depuis le gestionnaire de paquet de votre système

Des paquets existent pour plusieurs distributions: Arch, Fedora/Redhat…

Le processus de packaging est actuellement en cours sur d’autres distribs, je vous conseille donc de rechercher Glances (avec un s !) sur votre gestionnaire de package avant de faire une installation depuis les sources.

Merci de laisser un commentaire dans ce billet si vous trouvez Glances sur votre système 🙂

Depuis le PPA

Pour les distributions Ubuntu (et dérivées) depuis la 9.10 jusqu’à la 12.04, il est possible d’utiliser le PPA généreusement maintenu par Arnaud Hartmann.

[cc lang=bash »]

sudo add-apt-repository ppa:arnaud-hartmann/glances-stable

sudo apt-get update

sudo apt-get install glances

[/cc]

Depuis les sources

Le projet Glances est hébergé sur GitHUB.

Pour l’installer, il suffit de suivre les instructions suivantes depuis un terminal.

Récupération de la dernière version (1.3.7):

[cc]

$ wget https://github.com/downloads/nicolargo/glances/glances-1.3.7.tar.gz

[/cc]

Procédez ensuite à l’installation:

[cc]

$ tar zxvf glances-1.3.7.tar.gz
$ cd glances-1.3.7
$ ./configure
$ make
$ sudo make install

[/cc]

Glances a besoin des dépendances suivantes:

  • Python 2.6+ (non testé avec Python 3+)
  • libstatgrab 0.16+
  • python-statgrab 0.5+ (ne marchera PAS avec python-statgrab 0.4)

Notes specifiques pour une installation sous Debian 6.

Debian Squeeze met à disposition la version 0.4 de python-statgrab. Il faut donc installer la version 0.5 à la main:

[cc]

$ sudo apt-get install libstatgrab-dev pkg-config python-dev make
$ wget http://ftp.uk.i-scream.org/sites/ftp.i-scream.org/pub/i-scream/pystatgrab/pystatgrab-0.5.tar.gz
$ tar zxvf pystatgrab-0.5.tar.gz
$ cd pystatgrab-0.5/
$ ./setup.py build
$ sudo ./setup.py install

[/cc]

Notes specifiques pour une installation sous Ubuntu 10.04 et 10.10.

Ces versions d’Ubuntu mettent à disposition la version 0.4 de python-statgrab. Il faut donc installer la version 0.5 à la main:

[cc]

$ sudo apt-get update
$ sudo apt-get install pkg-config build-essential autoconf automake python libstatgrab-dev python-all-dev
$ sudo apt-get remove python-statgrab
$ wget http://ftp.uk.i-scream.org/sites/ftp.i-scream.org/pub/i-scream/pystatgrab/pystatgrab-0.5.tar.gz
$ tar zxvf pystatgrab-0.5.tar.gz
$ cd pystatgrab-0.5/
$ ./setup.py build
$ sudo ./setup.py install

[/cc]

Lancement de Glances

Il suffit de saisir la commande suivante dans une console ou un terminal:

[cc]

$ glances.py

[/cc]

Note: sur certaines distributions, il faut saisir glances en lieu et place de glances.py.

Guide d’utilisation

Par défaut, l’affichage des statistiques est rafraichi toute les secondes.

Il est possible de changer cette valeur en utilisant l’option -t. Par exemple pour fixer un taux de rafraichissement à 5 secondes:

[cc]

$ glances.py -t 5

[/cc]

Les statistiques jugées importantes sont affichées en couleur:

  • VERT: la statistique est « OK »
  • BLEU: la statistique est « CAREFUL » (à surveiller)
  • VIOLET: la statistique est « WARNING » (en alerte)
  • ROUGE: la statistique est « CRITICAL » (critique)

Quand Glances est lancé, il est possible d’utiliser les touches suivantes:

a‘ pour trier la liste des processus de manière automatique:

  • Si la CPU totale > 70% alors le tri se fait pas consommation CPU
  • si la mémoire total > 70% alors le tri se fait pas consommation MEMOIRE

c‘ pour forcer le tri par consommation CPU

d‘ pour desactiver ou activer l’affichage des entrées/sorties disques

f‘ pour desactiver ou activer l’affichage de l’occupation des FS

h‘ pour afficher ou cacher l’aide en ligne

m‘ pour forcer le tri par consommation MEMOIRE

n‘ pour desactiver ou activer l’affichage des interfaces réseau

q‘ pour quitter Glances (il est également possible d’utiliser CTRL-C)

Passons ensuite à la description de la fenêtre de Glances:

En-tête

L’en-tête montre la version de Glances, le nom de la machine (FQND) ainsi qu’une information sur le système d’exploitation (nom, version).

CPU

L’état de la CPU est affiché par un pourcentage de l’utilisation globale.

  • Si user|kernel|nice CPU est < 50%, alors le status est « OK ».
  • Si user|kernel|nice CPU est > 50%, alors le status est « CAREFUL ».
  • Si user|kernel|nice CPU est > 70%, alors le status est « WARNING ».
  • Si user|kernel|nice CPU est > 90%, alors le status est « CRITICAL ».

Charge moyenne (aka Average Load)

Il est assez difficile de donner une définition claire de la charge d’une machine (load average). Sur le blog Nosheep, Zach en donne la définition suivante:

 » C’est la somme moyenne du nombre de processus en attente dans la queue d’execution plus le nombre de processus actuellement en train d’être executés sur une période de temps de 1, 5 et 15 minutes. »

Glances permet d’afficher les alertes en tenant compte du nombre de coeurs de votre processeur. Par exemple, le seuil WARNING sera de 2 pour un processeur  Bi-Core alors qu’il sera de 4 sur un Quad-Core.

  • Si la charge moyenne est < O.7*Core, alors le status est « OK ».
  • Si la charge moyenne est > O.7*Core, alors le status est « CAREFUL ».
  • Si la charge moyenne est > 1*Core, alors le status est « WARNING ».
  • Si la charge moyenne est > 5*Core, alors le status est « CRITICAL ».

Mémoire

Glances affiche 3 types d’informations pour la mémoire: RAM, SWAP et réelle (un peu à la manière de la commande « free -h »).

La mémoire réelle occupée est calculée ainsi = used – cache.

La mémoire réelle libre est calculée ainsi = free + cache.

Les alertes utilisent les seuils suivants:

  • Si la mémoire est < 50%, alors le status « OK ».
  • Si la mémoire est > 50%, alors le status « CAREFUL ».
  • Si la mémoire est > 70%, alors le status « WARNING ».
  • Si la mémoire est > 90%, alors le status « CRITICAL ».

Débits des interfaces réseau

Glances affiche les débits des interfaces réseau en adaptant dynamiquement l’unité à utiliser (bits par seconde).

Les alertes ne sont affichées que pour les interfaces dont les informations sur la vitesse maximale sont disponibles (cela dépend des distributions):

  • Si le débit < 50%, alors le status est « OK ».
  • Si le débit > 50%, alors le status est « CAREFUL ».
  • Si le débit > 70%, alors le status est « WARNING ».
  • Si le débit > 90%, alors le status est « CRITICAL ».

Par exemple, sur une interface Ethernet Fast Ethernet (100 Mbps), le status passera à WARNING si le débit dépasse les 70 Mbps.

Entrées/Sorties disque

Glances permet d’afficher les débits en lecture et écriture sur les disques en adaptant dynamiquement l’unité à utiliser (octets par seconde).

Il n’y a pas d’alerte remontée pour ce type d’information.

Espace sur les systèmes de fichiers

Glances affiche par système de fichiers l’espace disque total et utilisé. L’unité est automatiquement adaptée (octets par seconde).

Les alertes sont remontées sur l’espace disque utilisé:

  • Si l’espace disque utilisé est < 50%, alors le status est « OK ».
  • Si l’espace disque utilisé est > 50%, alors le status est « CAREFUL ».
  • Si l’espace disque utilisé est > 70%, alors le status est « WARNING ».
  • Si l’espace disque utilisé est > 90%, alors le status est « CRITICAL ».

Les processus

Glances affiche un résumé sur l’état des processus ainsi qu’une liste détaillé (CPU, MEMOIRE et nom du processus).

Le nombre des processus affichés est adapté à la taille de la fenêtre.

Les logs

Nouveauté de la version 1.3.7.

Lire le billet suivant pour une description de la fonction logs.

 

Pied de page

Glances y affiche la légende (rappel des codes des couleurs) ainsi que la date et l’heure courante.

A faire…

J’ai besoin de contributeurs pour faire évoluer Glances.

Notamment:

  • Packaging pour Debian, Ubuntu, BSD et toutes autres distributions
  • Controle de la présence des librairie dans le fichier configure.ac
  • Inclure les stats de FS directement dans python-statgrab
  • Ajout d’une fenêtre d’aide
  • Optimisation du code

Pour toutes remarques, bugs, demande d’évolution sur Glances, merci d’utiliser le formulaire GitHub.

Catégories
Open-source Planet-libre Reseau Systeme

Debian et les mails depuis la ligne de commande

Suite à l’installation d’un serveur Kimsufi 16G sous Debian 6.0 puis configuré avec mon script de post installation spécial serveur, j’ai attendu en vain la réception des premiers apports de Fail2ban qui devaient être envoyés par mail.

Une petit visite des fichiers de logs me montre rapidement d’ou vient le problème:

… Can’t exec /usr/lib/sendmail: No such file or directory…

Par défaut, il n’y a donc pas de brique système permettant d’envoyer des mails.

Installation de Postfix

Pour résoudre cela, j’ai donc exécuté la commande suivante qui va installer le serveur de messagerie Postfix:

[cc lang= »bash »]

sudo apt-get install postfix

[/cc]

Puis configuré Postfix de la manière suivante:

Puis:

Configure le Firewall

Cette section est optionnelle et ne concerne que les serveurs qui embarque un Firewall système (Iptables).

Si vous avez un Firewall sur votre serveur (j’utilise ce script que je place dans /etc/init.d/), il faut autoriser les flux sortant sur le port SMTP (TCP/25) sous risque d’avoir le message suivant dans votre fichier syslog:

Dec 11 08:46:00 ks387949 kernel: IN= OUT=eth0 SRC=176.31.252.29 DST=217.70.184.162 LEN=60 TOS=0x00 PREC=0x00 TTL=64 ID=30778 DF PROTO=TCP SPT=59718 DPT=25 WINDOW=14600 RES=0x00 SYN URGP=0

Pour cela, il faut éditer le script puis ajouter le port 25 dans la variable REMOTE_TCP_SERVICES:

REMOTE_TCP_SERVICES= »22 25 80 443″

Et enfin relancer le script:

[cc lang= »bash »]

sudo /etc/init.d/firewall.sh restart

[/cc]

On teste

Le plus simple est d’utiliser la ligne de commande et la commande mail:

[cc lang= »bash »]

$ mail contact@nicolargo.com

Subject: Test

Test de 09:27

.

[/cc]

Quelques secondes plus tard, vous devriez recevoir le mail:

A vous les rapports Fail2ban