[PoC] installation de Nagios pour superviser une application HTTP avec docker

Ressources utilisé : Superviser un hôte Linux via NRPE https://blog.nicolargo.com/2007/10/surveiller-vos-serveurs-linux-avec-nagios-et-nrpe.html [Tuto] Nagios: Introduction au fichiers de configurations de Nagios http://blog.nicolargo.com/wp-content/uploads/2011/03/ebook-nicolargo-nagios-v1.0.pdf http://djibril.developpez.com/tutoriels/perl/ecrire-facilement-plugin-nagios-perl/ 1. Pré-requis 1.1 Script bash qui démare un container nagios superviseur : Shell #!/bin/bash docker pull jasonrivers/nagios:latest docker run --name nagios4 \ -v /home/morgan/dev/docker/nagios/data/etc/:/opt/nagios/etc/ \ -v /home/morgan/dev/docker/nagios/data/var:/opt/nagios/var/ \ -v /home/morgan/dev/docker/nagios/data/custom-plugins:/opt/Custom-Nagios-Plugins \ -p 80:80 jasonrivers/nagios:latest 12345678 #!/bin/bashdocker pull jasonrivers/nagios:latest docker run --name nagios4 \-v /home/morgan/dev/docker/nagios/data/etc/:/opt/nagios/etc/ \-v /home/morgan/dev/docker/nagios/data/var:/opt/nagios/var/ \-v /home/morgan/dev/docker/nagios/data/custom-plugins:/opt/Custom-Nagios-Plugins \-p 80:80 jasonrivers/nagios:latest 1.2 un autre container qui contiens votre application http 1.3 Commande docker pour connaitre les ip : docker network inspect bridge | jq 2. Mise en place de l’environnement 2.1 Pour chaque container docker supervisé, il faut installé un serveur NRPE : apt-get install nagios-nrpe-server 2.1.1 Configurer pour autorisé a se connecter à notre serveur nagios de supervision nano /etc/nagios/nrpe.cfg Shell allowed_hosts=&lt;ip du container nagios&gt; 1 allowed_hosts=&lt;ip du container nagios&gt; 2.1.2 Si iptable est installé, autorisé les requete NRPE iptables -A INPUT -p tcp --dport 5666 -j ACCEPT 2.1.3 Automatisé le démarrage de NRPE : update-rc.d nagios-nrpe-server defaults 2.1.3 redémaré le service service nagios-nrpe-server restart 2.1.4 Pour vérifier que cela fonctionne, connecter vous sur le container <nagios> Shell cd $NAGIOS_HOME ./check_nrpe -H <ip_container a supervisé> 12 cd $NAGIOS_HOME./check_nrpe -H <ip_container a supervisé> 3. Exécuter une commande de supervision 3.1 sur le container supervisé, créer une nouvelle commande en éditant le fichier nrpe.cfg vim /etc/nagios/nrpe.cfg 3.2 En dessous des commandes déjà existantes, ajouté : command[check_home]=/usr/lib/nagios/plugins/check_disk -w 20 -c 10 -p /home Ici, le statue du service que nous allons créer plus tard sera en WARNING (-w), s’il reste moins de 20% (20) d’espace disque disponible et le statue sera CRITICAL (-c) s’il reste moins de 10% (10) d’espace libre. 3.3 Redémarer pour que la nouvelle commande soit prise en compte : service nagios-nrpe-server restart 3.4 Executer la commande depuis le container nagios Shell cd $NAGIOS_HOME ./check_nrpe -H <ip_container a supervisé> -c check_home 12 cd $NAGIOS_HOME./check_nrpe -H <ip_container a supervisé> -c check_home   4. Superviser plusieurs containers 4.1 Dans le container nagios : Dans le dossier objects nous allons créer un dossier linux_servers, c’est dans ce dossier que nous allons configurer toutes nos machines linux à superviser. Puis nous allons éditer le fichier nagios.cfg se trouvant dans $NAGIOS_HOME/etc et nous allons donc rajouter la ligne: Shell #Dossier serveurs Linux cfg_dir=/opt/nagios/etc/objects/linux_servers 12 #Dossier serveurs Linuxcfg_dir=/opt/nagios/etc/objects/linux_servers   Commenter la ligne qui surveille le serveur locale : Shell # Definitions for monitoring the local...

Read More

Docker add file from windows host into container

On my windows machin, I can’t share volume with docker container because of my firewall.   So, what I’ve done is creating my container :   Shell docker run -d -p 49160:22 -p 49161:1521 -e ORACLE_ALLOW_REMOTE=true wnameless/oracle-xe-11g 1 docker run -d -p 49160:22 -p 49161:1521 -e ORACLE_ALLOW_REMOTE=true wnameless/oracle-xe-11g   Once it’s started, I get the container ID : Shell C:\Users\mdurand> docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES c47345008fda wnameless/oracle-xe-11g "/bin/sh -c '/usr/..." 2 seconds ago Up 1 second 8080/tcp, 1234 C:\Users\mdurand> docker psCONTAINER ID        IMAGE                     COMMAND                  CREATED             STATUS              PORTS                                                  NAMESc47345008fda        wnameless/oracle-xe-11g   "/bin/sh -c '/usr/..."   2 seconds ago       Up 1 second         8080/tcp,   Then, just copy the file by using : docker cp <file> <containerID>:<containerPATH> Shell docker cp D:/morgan/documents/blabla c47345008fda:/data 1 docker cp D:/morgan/documents/blabla c47345008fda:/data...

Read More

Ansible – Controle Machine sur Windows avec cygwin

La Controle Machine ansible ne fonctionne que sur linux et n’est pas (et ne seras pas) prévu pour fonctionné sous windows. Pourtant ça ne l’empêche de pouvoir administrer des instances windows grâce à winRM (Windows Remote Desktop). L’astuce pour faire de windows une controle machine consiste à utilisé cygwin : Tout d’abord il faut installé  cygwin , Lors de sont installation, faite bien attention de choisir la vue « full » et installé les deux paquets suivant : lynx wget Une fois l’installation terminé, ouvrez votre terminal cygwin, et tapé les commandes suivantes : Installation du paquet manager : lynx -source rawgit.com/transcode-open/apt-cyg/master/apt-cyg > apt-cyg install apt-cyg /bin 2. Installation des dépendances nécessaires (L’installation de gcc & libffi-devel sont primordial pour compilé les modules python) Shell apt-cyg install python2 python2-setuptools gcc-core python-devel libffi-devel openssl openssh openssl-devel 1 apt-cyg install python2 python2-setuptools gcc-core python-devel libffi-devel openssl openssh openssl-devel 3. Installation de pip Shell easy_install-2.7 pip 1 easy_install-2.7 pip 4. Installation de ansible via pip Shell pip install ansible 1 pip install ansible 5. Et enfin, le module python pour communiquer avec windows : Shell pip install pywinrm 1 pip install pywinrm     Avec ça, vous avez une controle machine sur windows, complètement...

Read More