iftop monitorer votre trafic réseau en temps réel

Article publiée le 26 Septembre 2013

 

Tout ceux qui sont habitués à lire mes articles  savent que je suis très friand des petits outils de monitoring. Et aujourd’hui encore je me permet d’en rajouter un à la liste: iftop.

iftop vous permet d’avoir en temps réel votre trafic réseau (bande passante, connexion etc…)

En cas de problème réseau sur l’une de vos machine, cette outil pourra se révéler extrêmement utile.

Pour l’installer:

apt-get install iftop (sous debian/Ubuntu) yum install iftop (sous RedHat)

Pour la distribution Centos le paquet n’est pas présent dans les dépots, je vous invite donc à faire un wget sur un des packages présents sur ce site http://pkgs.repoforge.org/iftop/

Exemple: wget http://pkgs.repoforge.org/iftop/<nom du package>

Capture d’écran de iftop:

Les parties floutées correspondent aux ip des machines.

Si votre machine possède plusieurs interfaces réseau vous pouvez faire un iftop -i <nom de l’interface> afin de voir le trafic uniquement sur cette interface.

Enjoy

 




Tutoriel | Consolidation des logs avec Rsylog, Mysql et Loganalyzer

Article publié le 23 Septembre 2013

Le tutoriel ci-dessous vous propose une solution permettant de centraliser et de consolider vos logs.

Grâce à ce petit tuto vous pourrez stocker tout les logs de vos serveurs dans une seule base MySQL. Cette solution ne pourra que vous faciliter la vie!

 

1) Configuration du serveur de logs

– Dans un premier temps installez Rsyslog:

yum install rsyslog rsyslog-mysql

Rsyslog est le daemon de journalisation par défaut de Debian 7 donc inutile de tenter de l’installer par contre n’oubliez pas d’installer rsyslog-mysql : apt-get install rsyslog-mysql / yum install

Afin que Rsyslog fonctionne sous Red-Hat/Centos n’oubliez pas de stopper syslog-ng et de démarrer rsyslog:

service syslog stop && service rsylog start

Puis de désactiver le lancement automatique de syslog au démarrage de la machine et d’activer celui de rsyslog:

chkconfig syslog off

chkconfig rsylog on

 

– Installez Mysql-server et démarrez le:

yum install mysql-server (sous Red-Hat/CentOS) ou apt-get install mysql-server (sous Debian/Ubuntu)

/etc/init.d/mysql-server start

– Démarrer Mysql

/etc/init.d/mysqld start

– Création de la base:

Sous debian la création de la base donnée se fait automatiquement grâce à l’outil DB-config. Renseignez juste le mot de passe mysql du user user de MySQL

Pour les utilisateurs de Red-Hat/Centos, vous devez exécuter un script de création de base:

cd /usr/share/doc/rsyslog-mysql-<version>

mysql -u root -p[votre mot de passe] < createDB.sql

(Rien ne vous empêche de modifier le script afin de modifier le nom de la base de donnée!)

– Checker que votre base ait bien été créée:

mysql -u root -p

Je vous conseille d’initialiser un mot de passe pour l’utilisateur root de votre base mysql:

mysqladmin -u root password ‘<votre password>’;
– Donnez les privilèges au user mysql rsyslog:

La partie flouté correspond au mot de passe que vous voulez attribuer au user Syslog

– Editez le fichier /etc/rsyslog.conf

Décommentez ces lignes:

$ModLoad ommysql

$ModLoad imudp
$UDPServerRun 514

$ModLoad imtcp
$InputTCPServerRun 514

Ajoutez ces lignes qui correspondent aux paramètres de connexions de la base de donnée ainsi qu’à la restriction de connexion par sous réseau (pour plus de sécurité):
*.*           😮 mmysql:127.00.1,<nom de la base>,<login>,<mot de passe>

le 😮 sans les guillemets
$AllowedSender UDP, 127.0.0.1, 192.168.1.0/24   #liste des sous réseaux autorisés à se connecter
$AllowedSender TCP, 127.0.0.1, 192.168.1.0/24    #liste des sous réseaux autorisés à se connecter

 

Redémarrez rsyslog en vous assurant qu’aucun autre daemon de journalisation est en cours d’exécution:

service rsyslog restart

 2) Parti client

Ajoutez juste la ligne suivante à la fin du fichier /etc/rsyslog.conf

*.*       @<ip du serveur>:514

Si vous voulez que rsyslog gère d’autre log (par exemple apache, mysql etc…)

Ajoutez cette ligne

$InputFileName <chemin du log a géré>

3) Installation de logAnalyzer

– Installez  apache et PHP5

yum install httpd php php-mysql (sous Centos/RedHat)  ou apt-get install apache php php-mysql  (sous debian)

– Telechargez le package d’installation:

http://loganalyzer.adiscon.com/downloads

– Decompressez l’archive

tar -xvf <package>

– Copier les sources vers votre répertoire apache:

mkdir /var/www/loganalyzer/ (pour debian)

mkdir /var/www/loganalyser/ (pour Centos/Debian

cp <repertoire de loganalyser>/src/*<repertoire apache>

cp <repertoire de loganalyser>/contrib/* <repertoire apache>

– Exécutez le script configure.sh (sans oublier de le rendre executable via la commande chmod 700 configure.sh)

./configure.sh

– Connectez vous via votre navigateur à l’interface web de loganalyser (URL: <ip ou dns de la machine>/loganalyser):

Cliquez sur « here »

 

 

Cliquez sur next

Cliquez sur next

 

Cliquez sur « yes » à « enable user database » et remplissez les informations de connexion de votre base de donnée rsyslog. Cliquez sur « yes » à « require user to be logged in ».

Cliquez sur next

Cliquez sur next

Créez le user avec lequel vous vous connecterez sur la gui de loganalyser puis cliquez sur next

Sélectionnez « MYSQL Native » via le menu déroulant de « Source Type » puis renseignez les informations de connexions de la base de donnée de rsyslog et cochez yes à « enable row counting »  puis cliquez sur next.

 

Cliquez sur finish.

Maintenant il ne vous reste plus qu’à vous connecter à loganalyser depuis votre navigateur et enjoy!!!!




tutoriel | installer un domaine nis

 Article publiée le 14 Septembre 2013

 

La difficulté du métier d’admin système dépend toujours de la grandeur de son infrastructure. Plus il y a de serveurs à administrer plus il faut-être malin.

Prenons le simple exemple de l’administration des utilisateurs. Si vous avez 1000 serveurs à votre actif je vous vois mal faire des useradd pendant deux jours!

Soit vous faite un script SHELL de déploiement, soit …

Vous utilisez NIS!

Si vous en avez jamais entendu parlé, NIS est un protocole client/serveur permettant la centralisation des informations sur un réseau UNIX.

En gros vous pouvez centraliser tout les fichiers de configuration de vos serveurs UNIX.

Pratique me direz vous!

Ci-dessous la procédure d’installation de NIS adaptée pour Debian/Ubuntu et RedHat/Centos:

 Faites très attention avec ce protocole, pensez à sécuriser votre infrastructure car une tel mise en place peut également représenter une faille de sécurité…

 

1) Installation partie serveur sous Centos/RedHat

– Installez les paquets:

yum install ypserv rpccind

 

– Initialisez votre domaine NIS

ypdomainname <nom de domaine>

– Editez le fichier /var/yp/Makefile

Remplacez « ALL =   passwd  group hosts rpc services netid protocols netgrp » par « ALL =   passwd shadow  group hosts rpc services netid protocols netgrp »

Exemple : ypdomainname vince.domain

– Ajoutez votre serveur NIS dans son propre domaine

vi /etc/sysconfig/network

 

 Verifiez bien que vos machines disposent bien d’un DNS (via les fichiers hosts ou serveurs DNS)

– On démarre les services:

/etc/init.d/rpcbind start

/etc/init.d/ypserv start

/etc/init.d/yppasswdd start

– On fait en sorte que ces services soient démarrés au démarrage de la machine

chkconfig rpcbind on

chkconfig ypserv on

chkconfig yppasswdd on

 

– On initialise la base nis avec la commande /usr/lib64/yp/ypinit -m

Comme vous pouvez le constater c’est ici que vous entrez le nom des autres serveurs NIS si vous voulez mettre en place des slave (utile uniquement si vous avez une grosse infrastructure)

2) Installation partie serveur sous Debian/Ubuntu

– Installez les paquets:

apt-get install nis

Si cette écran apparaît renseignez le nom de votre domaine NIS

– Éditez le fichier /etc/default/nis

Remplacez « NISSERVER=false » par « NISSERVER=master »

– Éditez le fichier /var/yp/Makefile

Remplacez « ALL =   passwd  group hosts rpc services netid protocols netgrp » par « ALL =   passwd shadow  group hosts rpc services netid protocols netgrp »

– Exécutez la commande /usr/lib/yp/ypinit -m

– Redémarrez NIS:

/etc/init.d/nis restart

 

3) Installation partie client

Sous Centos:

– Editez le fichier /etc/sysconfig/network et rajoutez la ligne:

NISDOMAIN=<votre domaine NIS>

– Editez le fichier /etc/sysconfig/authconfig et modifiez  « USENIS=no » par « USENIS=yes »

– Editez le fichier /etc/yp.conf et ajoutez la ligne

domain <nom de votre domaine NIS> server <Dns de votre serveur nis>

– Editez le fichier /etc/nsswitch.conf  (permet de choisir quelles élément seront centralisé par le NIS), pour cela ajoutez « nis » après « files » :

– Faites en sorte que le service NIS démarre bien au démarrage de la machine:

chkconfig rpcbind on

chkconfig ypbind on

reboot

 

Il ne vous reste plus qu’à checker en créant un user sur le serveur et essayer de vous loguer avec sur la machine cliente!

 Après la création d’un user n’oubliez pas de de faire un refresh de la base NIS. Pour cela:

cd /var/yp && make

Petite astuce: si vous voulez que le répertoire home de votre user se crée tout seul:

Ajouter cette ligne dans le fichier /etc/pam.d/system-auth

session optional pam_mkhomedir.so skel=/etc/skel umask=077

 

Sous Debian/Ubuntu

– Installez le paquet nis:

apt-get install nis

– Editez le fichier /etc/yp.conf

Rajouter la ligne :

domain <nom du domaine> server <nom du serveur NIS>

– Editez le fichier /etc/nsswitch.conf

Rajoutez « nis » après « compat » devant tout les éléments qui devront être centralisés

Exemple:

Il ne reste plus qu’à redémarrer.

Enjoy ! 🙂




Sauvegarder ses données avec Rsync

Article publiée le 13 Septembre 2013

 

En parcourant pas mal de forums, j’ai pu remarquer que pas mal de jeunes admins ne connaissaient pas Rync.

Rsync est un petit outil de sauvegarde extrêmement puissant. Grâce à cette outil j’ai pu sauvegarder des centaines de  giga-octet de données sans problèmes.

Rsync se charge en plus de garder tous les droits et attributs de vos fichiers et gère en natif SSH pour faire une sauvegarde d’une machine vers une autre.

 

Installation:

apt-get install rsync (Pour debian) ou yum install rsync (pour Centos/RedHat)

 

Comment ça marche?

– En local

rsync -azv <fichier ou répertoire source> <répertoire de destination>

le -a conserve tout les attribut  et droits des fichiers

le -z compression au moment de la copie (fait gagner du temps et limite le trafic réseau si vous utilisez rsync via scp)

le -v active le mode verbeux pour voir en temps réel ce qui se passe!

 

– Vers une autre machine

rsync -azv <fichier ou répertoire source> login@<ip ou dns du serveur distant>:<répertoire de destination>

 

 Rsync est très intelligent, si le fichier existe déjà dans le répertoire de destination, alors il ne sera pas sauvegardé de nouveau! Très utile si votre commande est interrompu en cours de sauvegarde.

Si vous administrez une petite structure, je vous conseille de faire vos sauvegardes avec cette outil via un petit script shell. 😉

 

 

 




tutoriel | Installer et configurer Tomcat 7

Article publiée le 09 Septembre 2013

Mis à jour le 8 Novembre 2016

Tomcat 8 étant sorti, je me suis permis de rédiger un petit tutoriel adapté:

http://journaldunadminlinux.fr/tutoriel-installer-et-configurer-tomcat-8/

 

Tomcat est le conteneur libre de servlets le plus utilisé.

En parcourant les forums j’ai remarqué que pas mal d’admin avaient des soucis pour installer et configurer Tomcat.

Ci-dessous le tutoriel  d’installation et de configuration de Tomcat 7 (adapté pour Debian/Ubuntu et RedHat/CentOS):

Je privilégie l’installation manuelle de Tomcat plutôt que de passer par le gestionnaire de paquet. Vous pourrez ainsi personnaliser votre installation et choisir une version récente de Tomcat.

1) Installation

Prérequis: java

yum install java-1.6.0 pour (RedHat/Centos) ou apt-get install openjdk* (Sous debian/Ubuntu)

 

– Tout d’abord récupérez le tar.gz sur le site de tomcat via http://tomcat.apache.org/download-70.cgi (section core téléchargez la version tar.gz)

Au moment de la rédaction de cette article Tomcat 8 est sorti en version RC1. Je vous déconseille fortement d’utiliser une tel version car celle-ci est encore trop instable.

 

– Créez proprement votre répertoire d’installation de tomcat, dans mon cas cela sera /apps/tomcat

mkdir /apps/tomcat

– Décompressez l’archive dans le répertoire de destination:

mv <votre archive>.tar.gz <repertoire d’installation>  &&  tar -xvf  <repertoire d’installation>/<votre archive>.tar.gz

exemple: mv apache-tomcat-7.0.42.tar.gz && tar -xvf /apps/tomcat/apache-tomcat-7.0.42.tar.gz

 

– Faites un ls dans le repertoire d’installation et vous pourrez voir ceci:

Quelques petites explications: 

– Le répertoire bin contient tous les scripts de tomcat notamment ceux de démarrage et d’arrêt.

– Le répertoire conf contient tous les fichiers de configuration de tomcat

– Le répertoire webapps contient toutes les webapps (vos servlets java)

 

2) Configuration

– Allez dans le répertoire conf:

cd conf

– Si vous désirez changer le port d’écoute éditez le fichier server.xml et éditez cette ligne en remplaçant le port par défaut 8080 par celui que vous désirez:

<Connector port= »8080″ protocol= »HTTP/1.1″
connectionTimeout= »20000″
redirectPort= »8443″ />
<!– A « Connector » using the shared thread pool–>

 

– Editons ensuite le fichier tomcat-user afin de définir le mot de passe de l’interface d’administration de tomcat:

Le dernier « paragraphe »  du fichier de configuration est commenté. Pour le dé-commentez enlevez :

<!– et  –>

Ajoutez ensuite les balises rolename:

<role rolename= »manager »/>

<role rolename= »manager-gui »/>

Créons ensuite le user qui aura les droits d’admin de votre serveur tomcat:

<user username= »tomcat-admin » password= »tomcat » roles= »manager,manager-gui »/>

Sans oublier de modifier le password 😉

 

-Il ne reste plus qu’ à redémarrer Tomcat :

rendez vous dans le répertoire bin (de tomcat) et exécutez ces scripts:

./shutdown.sh (pour arréter tomcat)

./startup.sh (pour démarrer tomcat)

 

– Connectez  vous à l’interface d’administration de votre serveur tomcat via votre navigateur depuis cette URL: <ip ou DNS de votre machine>:8080

 

– Cliquez sur Manager app et entrez les identifiants que vous avez paramétrés précédemment dans votre fichier tomcat-users.xml

Ici vous trouverez la liste des Webapp déployées.

-Il existe 2 méthodes pour déployer une Webapp (fichier .war):

La première (la plus simple) consiste à cliquer sur le bouton déployer et de selectionnez votre fichier war.

Tomcat se chargera de la déployer pour vous. Une fois le déploiement terminé vous pourrez voir apparaître une nouvelle ligne avec le nom de votre Webapp.

La deuxième plus longue mais très utile si vous voulez scripter des déploiements automatiques consiste à arrêter votre serveur tomcat, déposez votre fichier war dans le répertoire webapps et redémarrer le service tomcat.

Votre Webapp sera automatiquement déployée.

3) Tunning : 

Il est possible, si vous déployez des applications lourdes ou en grand nombre, que vous ayez des problèmes mémoires.

Dans ce cas vous pourrez avoir des messages d’erreur ou de grosses lenteurs lors de l’exécution de vos webapps.

Pour cela éditez le fichier startup.sh et ajoutez à la ligne export JAVA_OPTS= -server -Xms<mémoire minimal alloué> -Xmx <mémoire maximum alloué>

Exemple:

export JAVA_OPTS= »-server -Xms2048m -Xmx2048m »

Redémarrez votre serveur Tomcat afin que les modifications soient prises en comptes.

 

Si vous rencontrez d’autres problèmes mémoire vous pouvez vous rendre sur cette page :

http://journaldunadminlinux.fr/tomcat-severe-failed-to-initialize-java-lang-outofmemoryerror-permgen-space/

Cette article traite d’un problème Tomcat et pourra peut-être vous aider.

 

4) Script de démarrage

Afin de vous faciliter la vie, je vous livre ci-dessous le script de démarrage de tomcat à déposer dans le répertoire init.d:

#!/bin/sh
CATALINA_HOME=<repertoire tomcat>; export CATALINA_HOME
JAVA_HOME=<repertoire java>; export JAVA_HOME
TOMCAT_OWNER=<votre user tomcat>; export TOMCAT_OWNER

start() {
echo -n « Starting Tomcat:  »
su $TOMCAT_OWNER -c $CATALINA_HOME/bin/startup.sh
sleep 2
}
stop() {
echo -n « Stopping Tomcat:  »
su $TOMCAT_OWNER -c $CATALINA_HOME/bin/shutdown.sh
}

# See how we were called.
case « $1″ in
start)
start
;;
stop)
stop
;;
restart)
stop
start
;;
*)
echo $ »Usage: tomcat {start|stop|restart} »
exit
esac

5) Best Pratice

– Si votre application doit-être accessible depuis le monde extérieur je vous conseille de procéder à un couplage (Apache/Tomcat) avec les règles firewall qui vont bien

– Utilisez toujours un serveur apache en front en mode revese proxy. Vos clients ne doivent pas se connecter en direct sur le Tomcat. Un tuto est disponible: http://journaldunadminlinux.fr/tutoriel-mettre-en-place-un-reverse-proxy-sur-apache-via-mod_proxy/




monitoring | Surveiller votre système avec SAR

Article publiée le 2 Septembre 2013

 

La surveillance de l’état de santé des machines est une tâche récurrente pour un admin système. Un bon admin système doit être capable de fournir rapidement toutes les informations sur son système (cause d’un ralentissement, dysfonctionnement etc.)

Ci dessous la présentation et le tuto d’installation d’un autre outil de monitoring (car on en a jamais assez!!) SAR.

Sar permet d’avoir l’historique concernant l’activité de votre système contrairement aux autres outils qui vous fournissent uniquement des informations en temps réels.

 

1) Installation

 

Pour installer Sar sous debian:

apt-get install sysstat

Pour installer Sar sous CentOs/Red-Hat/Fedora:

yum install sysstat.

 

2) Configuration

 

Sous debian activez le collecteur d’activité, pour cela éditez le fichier /etc/default/sysstat et remplacez  ENABLED= »false » par ENABLED= »true »

Sous CentOs/Red-Hat/Fedora il vous suffit de démarrer le service: service sysstat start

Par défaut systat effectue une collecte toutes les 10 minutes. Je vous conseille, afin d’avoir une vision de votre système plus fine de réduire l’intervalle à 2 minutes:

– Editez la crontab de systat:

vi /etc/cron.d/systat

Sous debian modifiez cette ligne:

5-55/10 * * * * root command -v debian-sa1 > /dev/null && debian-sa1 1 1

par

*/2 * * * * root command -v debian-sa1 > /dev/null && debian-sa1 1 1

Sous Centos/RedHat/Fedora modifiez cette ligne:

*/10 * * * * root /usr/lib64/sa/sa1 1 1

par

*/2 * * * * root /usr/lib64/sa/sa 1 1 1

– Enregistrez le fichier crontab

– Redemarrez le service systat

/etc/init.d/sysstat restart

 

3) Utilisation de la commande SAR

La commande SAR vous permettra d’afficher le contenu de votre systat dans la sortie standard (votre écran).

Exemple d’affichage de la commande sar -u (charge CPU):

 

Etat de la mémoire : sar – r

 

Etat du Swap: sar -W

 

Etat des IO disque : sar -b

 

IO par disque : sar -d

 

 

Enfin vous avez également la possibilité d’afficher le résultat de l’intégralité des commandes SAR via la commande:

sar -A

 

Enjoy! 🙂