jean gabes (shinken)

108
SophiaConf 2012 Jean Gabès

Upload: haquynh

Post on 05-Jan-2017

233 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: Jean GABES (Shinken)

SophiaConf 2012

Jean Gabès

Page 2: Jean GABES (Shinken)

Qui suis-je ?

Jean Gabès

Administrateur système sur Bordeaux,auteur du livre Nagios3 aux éditions Eyrolleset de Shinken

Page 3: Jean GABES (Shinken)

Pourquoi superviser ?

Page 4: Jean GABES (Shinken)

Quand l'IT va mal, le business va mal...

Page 5: Jean GABES (Shinken)
Page 6: Jean GABES (Shinken)

Ou voire pire....

Page 7: Jean GABES (Shinken)
Page 8: Jean GABES (Shinken)

Pour sauver le monde business :Les outils de supervision !

Page 9: Jean GABES (Shinken)

Bon il y en a pleins...

Page 10: Jean GABES (Shinken)

Concernant la supervision pure IT, Nagios™® est la référence de ces 10 dernières années ...

Page 11: Jean GABES (Shinken)

Concernant la supervision pure IT, Nagios™® est la référence de ces 10 dernières années ...

Page 12: Jean GABES (Shinken)

… grâce à beaucoup de modules

Page 13: Jean GABES (Shinken)

● Mod_gearman : Distribution de la charge sur le LAN● LiveStatus : accès aux données● Thruk/Multisite/NagVis : vue temps-réel● PNP, Graphite : graphiques

Page 14: Jean GABES (Shinken)

Et des plugins de supervisions

$ check_disks -w 90% -c 95%Disks OK | /=50% /var=80% /data=35%

$ echo $?0

Page 15: Jean GABES (Shinken)

Plugins & modularité sont bien !

Page 16: Jean GABES (Shinken)

Mais si ce n'était plus suffisant ?

Page 17: Jean GABES (Shinken)

L'IT grossit de jours en jours

Page 18: Jean GABES (Shinken)

Avec plein de couches (physique, réseaux, virtuel, …)

Page 19: Jean GABES (Shinken)

Rempli de clusters

Page 20: Jean GABES (Shinken)

Et de sites distants

Page 21: Jean GABES (Shinken)

Difficultés classiques dans la supervision IT● Trop de charge● Gestion de la configuration● Perte de site distant ?● Haute disponibilité

Page 22: Jean GABES (Shinken)

Architecture idéale

Page 23: Jean GABES (Shinken)

Oui vous pouvez bricoler autour d'un Nagios™® pour cela ...

Page 24: Jean GABES (Shinken)

… ou vous pouvez juste utiliser Shinken :)

Page 25: Jean GABES (Shinken)

Shinken est une réécriture complète de Nagios™® (C) en Python

Page 26: Jean GABES (Shinken)

Attendez ! Python c'est lent !

Ok, on bench. Xeon [email protected], 12Go ram, dummy check

Page 27: Jean GABES (Shinken)

(en nombre max de checks en 5min)

● Nagios 3 (C) <=> icinga 1.6 (C) = 30K● Centreon-engine (C) = 25K● Shinken = 120K

Page 28: Jean GABES (Shinken)

De grandes possibilités d'architecture

Page 29: Jean GABES (Shinken)

De grandes possibilités d'architecture

Page 30: Jean GABES (Shinken)

Les soucis de supervision IT sont réglés, mais quid des problèmes des admins de 2012 ?

Page 31: Jean GABES (Shinken)

La virtualisation est partout

Page 32: Jean GABES (Shinken)

(OK peut être moins dans le futur avec la nouvelle politique de licence d'ESX5...)

Page 33: Jean GABES (Shinken)

Si un ESX crash, vous n'avez pas envie de recevoir 20+ alertes pour les VM dessus !

Page 34: Jean GABES (Shinken)

Que l'alerte de l'ESX. Simple : dépendance d'hôte :)

Page 35: Jean GABES (Shinken)

Mais les admins Vmware sont des personnes étranges

Page 36: Jean GABES (Shinken)

Ils « VMotion » des VMs aussi souvent qu'un codeur Perl tapes $_

Page 37: Jean GABES (Shinken)

Donc oubliez la configuration en fichiers plats manuels :)

Page 38: Jean GABES (Shinken)

Ils suffit d'utiliser le module Vmware™® pour Shinken

Page 39: Jean GABES (Shinken)
Page 40: Jean GABES (Shinken)

OK, et si on s'attaquait a l'un des pires soucis des admins ?

Page 41: Jean GABES (Shinken)

Pas la pénurie de café/bière...

Page 42: Jean GABES (Shinken)

Les fausses alertes !

Page 43: Jean GABES (Shinken)

Exemple : une erreur critique sur de la qualification, est-ce vraiment si critique ?

Page 44: Jean GABES (Shinken)

Cas réel : un switch de production casse une application de qualification

Page 45: Jean GABES (Shinken)

Est-ce que l'on doit réveiller le pauvre admin à 3h du mat pour ça ?? Non !

Page 46: Jean GABES (Shinken)

Se concentrer sur l'analyse des problèmes sources, et l'impact au niveau « business » des

applications

Page 47: Jean GABES (Shinken)
Page 48: Jean GABES (Shinken)
Page 49: Jean GABES (Shinken)

La différence entre problèmes sources et impacts est centrale dans Shinken

Page 50: Jean GABES (Shinken)

Et entre les niveaux d'importances business, plus que juste warning/critical

Page 51: Jean GABES (Shinken)

Ok pour les alertes. Mais quid des interfaces graphiques ?

Page 52: Jean GABES (Shinken)

Shinken WebUI :● Problèmes sources & impacts sur des vues différentes● TOUT est trié suivant l'importance business● Visualisation des dépendances sous forme d'arbres et de graphes● HA et agrégation de données● Pas de base de données !

Page 53: Jean GABES (Shinken)

● Très “visuelle” ● HTML5 (désolé pour IE6...)● Limitation (volontaire...) des informations affichées● Modulaire (PNP, graphite)● Même votre boss va la comprendre...

Page 54: Jean GABES (Shinken)

Deux types d'utilisateurs (incompatibles)● Responsables : visualisation des impacts sur les applications end-users (et pourquoi elles sont tombées)● Admins : visualisation des éléments IT qui sont les problèmes sources

Page 55: Jean GABES (Shinken)

● Vues Problèmes sources VS impacts● Personne ne veux voir les deux● Le tout trié suivant l'importance métier

Page 56: Jean GABES (Shinken)
Page 57: Jean GABES (Shinken)

Vue du responsable

Page 58: Jean GABES (Shinken)

Vue d'un administrateur

Page 59: Jean GABES (Shinken)

Et si l'admin veut voir pourquoi c'est si important...

Page 60: Jean GABES (Shinken)

Les deux vont comprendre un graphe

Page 61: Jean GABES (Shinken)

Et chacun peut avoir SON dashboard

Page 62: Jean GABES (Shinken)

Et sa version « mobile »

Page 63: Jean GABES (Shinken)
Page 64: Jean GABES (Shinken)

Demo : http://demo-shinken.web4all.fr/

Page 65: Jean GABES (Shinken)

OK, on voit seulement ce que l'on souhaite voir. Bien.

Page 66: Jean GABES (Shinken)

Mais une lourde tâche reste : rajouter nos serveurs dans l'outil!

Page 67: Jean GABES (Shinken)

Les templates de configuration de Nagios™® sont indispensables!

Page 68: Jean GABES (Shinken)

Mais pas suffisant. Il reste encore trop d'éléments à définir

Page 69: Jean GABES (Shinken)

Shinken permet d'accrocher des vérifications par des expressions complexes du genre « Linux&Prod »

Page 70: Jean GABES (Shinken)

Ceci permet de n'avoir qu'à « tagger » ses machines au lieu de multiplier les groupes et sous groupes de serveurs

Page 71: Jean GABES (Shinken)

Dans Nagios™®, on considère que 80% de la configuration consiste en l'écriture des services.

Page 72: Jean GABES (Shinken)

Shinken propose des solutions pour limiter fortement ces 80%.

Page 73: Jean GABES (Shinken)

Exemple : clé duplicate_foreachGénère un service par “propriété” d'un hôte.

Page 74: Jean GABES (Shinken)

Define host{

host_name srv-lin-1

Use linux

_disks /, /var, /data

}

Define service {

host_name linux

Register 0

Description Disk $KEY$

check_command check_disk!$KEY$

}

Page 75: Jean GABES (Shinken)

Fait prouvé : un bon informaticien est fainéant

Page 76: Jean GABES (Shinken)

Fait sûrement vrai : les admins sont de bons informaticiens!

Page 77: Jean GABES (Shinken)

Un admin préfère éviter de :● Écrire un plugin de 0● Tagger manuellement ses machines● Écrire la configuration de nouveaux types de serveurs/applications

Page 78: Jean GABES (Shinken)

● Plugins : Merci Monitoring-exchange.org! ● Tagging : merci skonf discovery● Nouvelle configuration : merci les packs Shinken

Page 79: Jean GABES (Shinken)

Pourquoi tagger manuellement ses serveurs quand on peut juste écrire des règles pour le faire?

Page 80: Jean GABES (Shinken)

Module de découverte de Shinken!

Page 81: Jean GABES (Shinken)

● Runners : scripts qui “scanne” et qui sort des données● Rules : lit les données et génère de la configuration

Page 82: Jean GABES (Shinken)

Ex : nmap runner scanne un serveur et exporte des données$ nmap_discovery_runner.py -t localhost

localhost::isup=1localhost::os=linuxlocalhost::osversion=2.6.xlocalhost::osvendor=linuxlocalhost::macvendor=hplocalhost::openports=22,80,3306localhost::fqdn=localhostlocalhost::ip=127.0.0.1

Page 83: Jean GABES (Shinken)

Exemple de règle qui détecte et tag “linux”define discoveryrule { discoveryrule_name Linux creation_type host

os linux ; what we match +use linux ; what we wrote in the object, here ; append the linux template}

Page 84: Jean GABES (Shinken)

localhost : use ssh,mysql,http,linux

Page 85: Jean GABES (Shinken)

Découverte multi-niveaux :● 1 Si on match une donnée● 2 On lance un nouveau runner● 3 On ré-applique les règles● 4 GOTO 1

Page 86: Jean GABES (Shinken)

Ex : découverte des shares Windows

define discoveryrun { discoveryrun_name WindowsShares discoveryrun_command discovery_windows_share

# And scan only windows detected hosts! os windows}

Page 87: Jean GABES (Shinken)

Résultat

define host { host_name win-srv use windows

_shares Work,Public,Private}

Page 88: Jean GABES (Shinken)

Lancement en CLI :shinken-discovery -c etc/discovery.cfg --db Mongodb -m 'NMAPTARGET=localhost'

Page 89: Jean GABES (Shinken)

Ou mieux : l'UI sKonf!

Page 90: Jean GABES (Shinken)

sKonf :● UI pour la gestion facile de sa configuration● Découverte ou configuration classique● Gère les paramètres spécifiques de Shinken● Stade Beta avancé

Page 91: Jean GABES (Shinken)
Page 92: Jean GABES (Shinken)
Page 93: Jean GABES (Shinken)
Page 94: Jean GABES (Shinken)
Page 95: Jean GABES (Shinken)

Packs ?

Page 96: Jean GABES (Shinken)

Packs = fichier zip avec tout ce dont vous avez besoin sur un sujet particulier (comme Linux, Windows ou EMC)

Page 97: Jean GABES (Shinken)

● Fichiers cfg (templates, commands, services, discovery, …)● Templates de graphiques (PNP ou Graphite)● Images (pour que votre UI soit jolie :) )● Fichier .pack file (json, descriptif)● Pas (encore) d'installation de plugin

Page 98: Jean GABES (Shinken)

Heu... pourquoi créer un .zip avec tout ça?

Page 99: Jean GABES (Shinken)

● A. Le déplacer dans /dev/null● B. Le partager!● C. Me l'envoyer pour que je lance un outil “open core” comme NagiosXI● D. Obiwan Kenobi

Page 100: Jean GABES (Shinken)

Partager via community.shinken-monitoring.org (démon hostd, disponible dans les sources

Shinken)

Page 101: Jean GABES (Shinken)

Créer un tel fichier zip est aussi facile que de lancer :$ shinken-packs -c -p /path/to/linux.pack

Page 102: Jean GABES (Shinken)

Et pour l'envoyer :$ shinken-packs -u -k APIKEY -z /tmp/linux.zip

(une clé api est générée dès que vous êtes enregistrés sur le site)

Page 103: Jean GABES (Shinken)

Et pour les récupérer?

Page 104: Jean GABES (Shinken)

Sur le site :

Page 105: Jean GABES (Shinken)

Ou directement depuis l'UI sKonf :

Page 106: Jean GABES (Shinken)

Depuis sKonf :

Page 107: Jean GABES (Shinken)

Au final ?● L'architecture est adaptable aux grands environnements● Beaucoup d'améliorations par rapport à Nagios™®● La WebUI est géniale, sKonf le sera prochainement● Des triggers à la Zabbix arrivent!(corrélation&KPI)● Lancement de services professionnels autour du projet :)

Page 108: Jean GABES (Shinken)

Merci

Des questions?