ELK, étape 2 : logstash

Maintenant que nous avons paramétré ELK, voyons comment on peut aller un peu plus loin.

grok

Logstash : Input

Fichiers

Reprenons le code utilisé précédemment

On peut dans cette section multiplier les entrées. Par exemple, on peut avoir plusieurs blocs de type « file », qui vont aller chercher sur des fichiers différents.

De même, l’option path peut contenir des wildcard et on demande dans ce cas à logstash d’analyser. Par exemple, imaginons qu’on veut analyser tout le répertoire de logs d’apache, on pourra mettre « /var/log/apache2/* ». En revanche, grâce à logrotate, on va trouver dans ce répertoire des fichiers compressés, qui va falloir exclure. On peut écrire : read more

Analyser les logs en temps réel avec ELK

Tout bon admin système le sait, les logs d’un serveur sont critiques. ELK est une suite logicielle qui permet d’analyser ses logs en temps réel, mais aussi de faire des recherches poussées, et générer des dahsboards.

elastic-logo

ELK c’est quoi ?

C’est une suite logicielle formée de 3 composants :

  • Elasticsearch
  • Logstash
  • Kibana

Elasticsearch

icon-elasticsearch-bbElasticsearch est une base de données full text. Son but est d’encaisser de très gros volumes de données en texte, et de pouvoir faire des recherches rapides sur ces données.

En plus de ça, c’est un outil capable de fonctionner en cluster de façon très simple, et d’assurer ainsi une haute disponibilité. read more

UFW, docker et iptable

dockerPostulat : utilisation de docker

Suite à un changement d’OS, je dois faire tourner des sites en php 5.5 sur un serveur en php7. Je me suis naturellement tourné vers docker pour cela.

La mise en place s’est faite rapidement. J’ai créé une image docker apache/php, en me basant sur les informations présentes ici.

J’ai ensuite lancé un container avec l’option -p 8080:80. Le site est donc accessible via le port 8080. J’ai ensuite mis en place un reverse proxy apache pour diffuser ce site sur le port 80 et 443 en fonction du hostname. La gestion du certificat https se fait par letsencrypt via apache. Je n’ai pas besoin de définir un certificat dans le container, c’est le reverse proxy qui fait tout pour moi. read more

Sauvegarder une machine linux avec Veeam Agent for Linux

Veeam

Jusqu’à maintenant, j’utilisais Bacula pour faire les sauvegardes de mes serveurs Linux. Même si cette solution est très efficace, l’interface n’est pas vraiment un modèle d’ergonomie…
J’ai découvert il y a peu Veeam agent for Linux, un outil gratuit, qui est confondant de simplicité. Il est encore en béta (donc à utiliser avec précaution), mais il a des avantages très agréables :

  • il s’installe en un clin d’oeil : le lien de téléchargement ci dessus propose des paquest .deb et .rpm pour 32 et 64 bits.
  • Il y a une interface très simple d’utilisation (il faut lancer la commande veeamconfig ui pour la voir), mais vous pouvez tout commander en ligne de commande
  • Il propose des sauvegardes Full, ou de partition, ou par répertoire
  • Vous pouvez faire des sauvegardes en local ou bien vers des partages nfs/cifs. Bien sur, vous ne pouvez pas sauvegarder une partition sur elle même…
  • Il est fourni avec une image iso sur laquelle vous pouvez booter votre machine, afin de remonter un système complet depuis une sauvegarde
  • Les restaurations de fichiers sont sécurisées : il monte une sauvegarde dans un répertoire (/mnt/backup par défaut), et vous choisissez ce que vous restaurez.
  • Il ne nécessite pas de base de données tierce (MySql, PostGreSQL) pour fonctionner. Tout est stocké sur des fichiers XML qui font partie de la sauvegarde (ceux qui utilisent bacula et dont la base de données a déjà été corrompue apprécieront…)
  • Il contient un planificateur pour lancer automatiquement les jobs.
  • Il gère automatiquement les types de sauvegarde (complète, incrémentielle…) en fonction de la durée de rétention choisie.

Dans les points négatifs, il n’y pas d’envoi de mail en automatique à la fin du backup, il faut écrire un bout de script pour être averti. De plus, quand on lance deux jobs en même temps, le second passe en erreur au lieu de se mettre en attente pour se lancer une fois que le premier est terminé. read more

Datatables

Datatables server-side processing et postgresql

Bonjour à tous,

vous connaissez sûrement l’excellent plugin jquery datatables qui permet de trier/rechercher dans un tableau.
Ce plugin a de très bonne fonctionnalités, mais devient ingérable quand on atteint une trop grosse quantité de données (> 5000).

Il existe une fonctionnalité qui permet de remplir ce tableau dynamiquement via un appel ajax (fonction appelée server-side processing), et le site officiel fournit un code adapté pour MySQL. On trouvé également un exemple pour PostGreSQL, mais il est pour la version 1.9 de datatable, et ne correspond donc plus à la dernière. read more

VmWare – réduire l’espace utilisé d’un disque en thin provisioning

Le thin provisioning : principe.

Dans une machine virtuelle, pour la plupart de des hyperviseurs, vous pouvez créer des disques en « thin provisioning ». Cela signifie que l’espace physique alloué sur le disque dur de l’hyperviseur ne sera alloué qu’au fur et à mesure des besoins.

Par exemple, si on crée un disque de 300Go, il ne prendra en réalité que quelques kilo octets à la création. Dès que vous stockez des données dessus, l’espace alloué va grandir en fonction de ces données. Pour une machine virtuelle Linux, après installation, un disque virtuel de 300Go n’occupera que quelques Go.

Voici une image qui résume le process :

Thinprovisioning

En revanche, lorsque vous supprimez des fichiers du disque virtuel, l’espace alloué n’est pas réduit pour autant. Le disque virtuel se retrouve avec des espaces disponibles, prêts à être remplis par les prochaines données que vous allez insérer.

Imaginons un disque virtuel de 300Go. Vous copiez 250Go dessus, puis vous les supprimez. Vous vous retrouvez avec de l’espace alloué de 250Go… pour rien.

Bootstrap et responsive design : les colonnes

Comme vous le savez probablement le site bootstrap permet facilement de créer un layout de site en responsive design. Et travailler sur n’importe quel appareil ou ordinateur dans différents bureaux ou maisons, où ils utilisent le meilleur bureau pour les jeux à partir de https://www.hotrate.com/gaming-desks/.

On suppose pour la suite que vous avez intégré le css et le javascript de bootstrap dans votre page, je ne m’étends pas dessus, tout est détaillé ici : http://getbootstrap.com/getting-started/

Les outils pour tester

Pour tester les différentes résolutions, je vous conseille d’utiliser Firefox. Une fois votre page chargée, appuyer sur Ctrl + shift + M pour ouvrir la vue adaptative. De là, vous pouvez utiliser des résolutions prédéfinies, changer la taille, basculer en mode portrait…

Les différentes tailles écran

Par défaut, bootstrap reconnait quatre largeurs d’affichage :

  • Extra small devices (< 768px), noté xs
  • Small devices (>= 768 px et < 992px), noté sm
  • Medium devices (>= 992 px et < 1200px), noté md
  • Large devices (>= 1200px), noté lg

Par la suite, chaque fois que vous verrez xs, sm, md ou lg dans un nom de classe, cette classe sera en relation avec un type d’affichage. Ne vous inquiétez pas si ce n’est pas clair pour l’instant, nous allons étudier ça en détail.

Bootstrap et les colonnes : principes de base

Bootstrap possède un design par colonnes. Par défaut, un conteneur est découpé en 12 colonnes. Afin de les utiliser, vous devez auparavant déclarer un conteneur (par défaut, une div de classe .row)