SPLUNK CHEZ RTL
                    Bruno Bonfils, <asyd@asyd.net>
                    Responsable système et réseaux
                      Mardi 21 Septembre 2010




mardi 3 mai 2011
RTL, RADIO NUMÉRO 1


    • Les          différents métiers de RTL
         • Régie       publicitaire (IP France)
         • La      production et la diffusion broadcast
         • La      diffusion Internet




mardi 3 mai 2011
NOS PROBLÉMATIQUES

    • Production, diffusion
         • La      diffusion broadcast est dépendante du réseau
         • Des      problématiques avec certains matériels récalcitrants
    • Internet
         • Accès      et gestion des logs par les développeurs
    • D’une         manière générale, le traitement des logs


mardi 3 mai 2011
PRÉSENTATION TECHNIQUE
                 DE SPLUNK




mardi 3 mai 2011
MA COMPRÉHENSION
                                                                a pour objet l’extraction
                                                                d’un savoir ou d’une
                                                                connaissance à partir de
                                                                grandes quantités de
                                                                données




    • Définition     commerciale : « Only Splunk enables you to search, report,
        monitor and analyze streaming and historical data from any source. »

    • Ma   définition technique : « outil de log mining - une
        spécialisation du data mining. »




mardi 3 mai 2011
CONCRÈTEMENT



    • Splunk   est un outil qui va lire des données (logs), les indexées,
        et permettre aux utilisateurs des les consulter, analyser, et
        éventuellement de faire des (jolis) rapports graphiques




mardi 3 mai 2011
LE GLOUTON SPUNK



    • Techniquement   illimité sur les canaux d’entrées

    • Mais... doit
                 comprendre un minimum le contenu (cette
        compréhension est apportée par l’administrateur)




mardi 3 mai 2011
QUE MANGE T’IL


    • Par   défaut, splunk reconnait un certain nombre de formats
        (syslog, log4j, access/combined, etc.), qu’on appelle
        sourcetype

    • On           peut créer ses propres sourcetypes




mardi 3 mai 2011
COMMENT LE NOURRIR
                                 localement, ou via un agent


    • Des          données locales (fichiers)

         • fichiers      logs

         • filemonitor        (metadata et contenu du fichier)

    • Des          sockets TCP/UDP (syslog)

    • Des          scripts


mardi 3 mai 2011
COMMENT AVALE T’IL ?

    • une           sourcetype (déjà vu)

    • une           source (par exemple le nom du fichier)

    • un           hostname (statique ou dynamique)

    • un           timestamp

    • d’autres         champs, en fonction du sourcetype


mardi 3 mai 2011
LES SOURCETYPES

    • En   fonction du sourcetype, splunk est capable d’identifier
        quelques champs

         • Le      programme, le level (syslog)

         • l’adresse     IP du client, le UserAgent (apache combined)

    • Il    est possible de créer ses propres champs

         • Via     fichier de configuration

         • Via     la WebUI
mardi 3 mai 2011
SPLUNK, SON UTILISATION




mardi 3 mai 2011
mardi 3 mai 2011
mardi 3 mai 2011
mardi 3 mai 2011
LA WEBUI




mardi 3 mai 2011
LA WEBUI




mardi 3 mai 2011
LA WEBUI




mardi 3 mai 2011
LA LIGNE DE RECHERCHE


    • Une     ligne de commande spécialisée pour la recherche des
        différents événements
    • Un           mix entre shell/awk/sed, très unix way
         • complétion        / aide à la volée




mardi 3 mai 2011
LA WEBUI


    • Une   fois la recherche connue, il est possible de modifier
        complètement l’interface Web de Splunk, aussi bien dans sa
        forme que son contenu
         • dashboard    spécialisés, une liste de recherche prêtes à
             l’emploi
         • CSS, images   personnalisées



mardi 3 mai 2011
INTÉGRATION DE SPLUNK
                     DANS UN SI




mardi 3 mai 2011
ARCHITECTURE

    • Splunk       est écrit majoritairement en Python
    • Un   package ou un tarball est disponible, embarquant son
        propre interpréteur python (peu pour ne pas dire pas de
        dépendances systèmes)
    • Une    ligne de commande très complète (permet d’automatiser
        son installation)
    • Une API   REST est disponible, permettant l’utilisation de Splunk
        depuis des applications tierces

mardi 3 mai 2011
AUTHENTIFICATION


    • Plusieurs      méthodes d’authentification sont possibles
         • Interne
         • LDAP
         • REMOTE_USER




mardi 3 mai 2011
MES CAS D’UTILISATION
                             RTL
                            EJBCA




mardi 3 mai 2011
RTL : NOS PROBLÉMATIQUES

    • Production, diffusion
         • La      diffusion broadcast est dépendante du réseau
         • Des      problématiques avec certains matériels récalcitrants
    • Internet
         • Accès      et gestion des logs par les développeurs
    • D’une         manière générale, le traitement des logs


mardi 3 mai 2011
POURQUOI SPLUNK ?


    • Production, diffusion
         • Injection   des logs des équipements réseaux
    • Internet
         • Installation   de forwarder sur les serveurs de production
    • Injection    des autres syslog



mardi 3 mai 2011
RTL, SYSLOG


    • Indexation        de tous les logs recus par rsyslog

         • Un      dossier par nom de machine, un fichier par jour

         • On    utilise le nom du dernier dossier pour définir le
             hostname dans Splunk



mardi 3 mai 2011
RTL, SYSLOG

    • Equipements   Reseaux: Il arrive que des alimentations (voire
        des modules) se mettent à flapper

         • Une       recherche sur "powered off" sur les logs des dernières
             24h

         • Condition       sur le nombre d’occurrence

         • Si      une nouvelle occurrence, notification par mail


mardi 3 mai 2011
RTL, SYSLOG

    • Quelques       autres recherches

         • flapping   BGP

         • flapping   des interfaces réseaux (top, rare)

         • Violation     de restriction d’un port réseau (limité à n MAC
             adresses)


mardi 3 mai 2011
RTL
            RETOUR DES UTILISATEURS


         "Splunk nous permet de voir en temps réel les messages de la
           plateforme de production sans déranger les personnes en
          charge de la production, et donc une meilleure réactivité sur
                           les problèmes éventuels"




mardi 3 mai 2011
LE FUTUR DE SPLUNK A RTL


    • Indexation       des logs des applications liés à la production et a la
        diffusion
         • Des     indicateurs métiers
         • Une     supervision technique




mardi 3 mai 2011
EJBCA

                   • Une des autorités de confiance les plus utilisées
                    industriellement

                   • Génère  plusieurs millions de certificats (passeports,
                    carte d’identité, etc.)

                   • Développé    par des techniciens

                    • Très   peu (pour ne pas dire aucun) rapport métier

                   • Des   logs très techniques

mardi 3 mai 2011
EJBCA


    • Mon          objectif : création d’une application EJBCA

         • Tout     est fait par fichier de configuration, plutôt que par
             l’interface (et donc stockée en base)

    • Fournir        une vision métier, plus que technique



mardi 3 mai 2011
EJBCA
   • Exemple       de vue métier fournie par l’application




mardi 3 mai 2011
EJBCA

 • Activité        des administrateurs

      •|      stats count(ejbca_event) BY ejbca_admin

      • ejbca_event="ADDEDENDENTITY"            | stats count
          (ejbca_event) BY ejbca_admin




mardi 3 mai 2011
EJBCA
                   • Utilisation   de table de mapping externe

                     • Script   ou fichiers CSV

                   •|lookup ejbca-ca-names ejbca_caid OUTPUT
                    ejbca_caname

                     • Avant, uniquement     un champ ejbca_caid cryptique
                        (499446711)

                     • Grâce à lookup, nouveau champ ejbca_caname
                        (exemple : asydca)
mardi 3 mai 2011

Splunk

  • 1.
    SPLUNK CHEZ RTL Bruno Bonfils, <asyd@asyd.net> Responsable système et réseaux Mardi 21 Septembre 2010 mardi 3 mai 2011
  • 2.
    RTL, RADIO NUMÉRO1 • Les différents métiers de RTL • Régie publicitaire (IP France) • La production et la diffusion broadcast • La diffusion Internet mardi 3 mai 2011
  • 3.
    NOS PROBLÉMATIQUES • Production, diffusion • La diffusion broadcast est dépendante du réseau • Des problématiques avec certains matériels récalcitrants • Internet • Accès et gestion des logs par les développeurs • D’une manière générale, le traitement des logs mardi 3 mai 2011
  • 4.
    PRÉSENTATION TECHNIQUE DE SPLUNK mardi 3 mai 2011
  • 5.
    MA COMPRÉHENSION a pour objet l’extraction d’un savoir ou d’une connaissance à partir de grandes quantités de données • Définition commerciale : « Only Splunk enables you to search, report, monitor and analyze streaming and historical data from any source. » • Ma définition technique : « outil de log mining - une spécialisation du data mining. » mardi 3 mai 2011
  • 6.
    CONCRÈTEMENT • Splunk est un outil qui va lire des données (logs), les indexées, et permettre aux utilisateurs des les consulter, analyser, et éventuellement de faire des (jolis) rapports graphiques mardi 3 mai 2011
  • 7.
    LE GLOUTON SPUNK • Techniquement illimité sur les canaux d’entrées • Mais... doit comprendre un minimum le contenu (cette compréhension est apportée par l’administrateur) mardi 3 mai 2011
  • 8.
    QUE MANGE T’IL • Par défaut, splunk reconnait un certain nombre de formats (syslog, log4j, access/combined, etc.), qu’on appelle sourcetype • On peut créer ses propres sourcetypes mardi 3 mai 2011
  • 9.
    COMMENT LE NOURRIR localement, ou via un agent • Des données locales (fichiers) • fichiers logs • filemonitor (metadata et contenu du fichier) • Des sockets TCP/UDP (syslog) • Des scripts mardi 3 mai 2011
  • 10.
    COMMENT AVALE T’IL? • une sourcetype (déjà vu) • une source (par exemple le nom du fichier) • un hostname (statique ou dynamique) • un timestamp • d’autres champs, en fonction du sourcetype mardi 3 mai 2011
  • 11.
    LES SOURCETYPES • En fonction du sourcetype, splunk est capable d’identifier quelques champs • Le programme, le level (syslog) • l’adresse IP du client, le UserAgent (apache combined) • Il est possible de créer ses propres champs • Via fichier de configuration • Via la WebUI mardi 3 mai 2011
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
    LA LIGNE DERECHERCHE • Une ligne de commande spécialisée pour la recherche des différents événements • Un mix entre shell/awk/sed, très unix way • complétion / aide à la volée mardi 3 mai 2011
  • 20.
    LA WEBUI • Une fois la recherche connue, il est possible de modifier complètement l’interface Web de Splunk, aussi bien dans sa forme que son contenu • dashboard spécialisés, une liste de recherche prêtes à l’emploi • CSS, images personnalisées mardi 3 mai 2011
  • 21.
    INTÉGRATION DE SPLUNK DANS UN SI mardi 3 mai 2011
  • 22.
    ARCHITECTURE • Splunk est écrit majoritairement en Python • Un package ou un tarball est disponible, embarquant son propre interpréteur python (peu pour ne pas dire pas de dépendances systèmes) • Une ligne de commande très complète (permet d’automatiser son installation) • Une API REST est disponible, permettant l’utilisation de Splunk depuis des applications tierces mardi 3 mai 2011
  • 23.
    AUTHENTIFICATION • Plusieurs méthodes d’authentification sont possibles • Interne • LDAP • REMOTE_USER mardi 3 mai 2011
  • 24.
    MES CAS D’UTILISATION RTL EJBCA mardi 3 mai 2011
  • 25.
    RTL : NOSPROBLÉMATIQUES • Production, diffusion • La diffusion broadcast est dépendante du réseau • Des problématiques avec certains matériels récalcitrants • Internet • Accès et gestion des logs par les développeurs • D’une manière générale, le traitement des logs mardi 3 mai 2011
  • 26.
    POURQUOI SPLUNK ? • Production, diffusion • Injection des logs des équipements réseaux • Internet • Installation de forwarder sur les serveurs de production • Injection des autres syslog mardi 3 mai 2011
  • 27.
    RTL, SYSLOG • Indexation de tous les logs recus par rsyslog • Un dossier par nom de machine, un fichier par jour • On utilise le nom du dernier dossier pour définir le hostname dans Splunk mardi 3 mai 2011
  • 28.
    RTL, SYSLOG • Equipements Reseaux: Il arrive que des alimentations (voire des modules) se mettent à flapper • Une recherche sur "powered off" sur les logs des dernières 24h • Condition sur le nombre d’occurrence • Si une nouvelle occurrence, notification par mail mardi 3 mai 2011
  • 29.
    RTL, SYSLOG • Quelques autres recherches • flapping BGP • flapping des interfaces réseaux (top, rare) • Violation de restriction d’un port réseau (limité à n MAC adresses) mardi 3 mai 2011
  • 30.
    RTL RETOUR DES UTILISATEURS "Splunk nous permet de voir en temps réel les messages de la plateforme de production sans déranger les personnes en charge de la production, et donc une meilleure réactivité sur les problèmes éventuels" mardi 3 mai 2011
  • 31.
    LE FUTUR DESPLUNK A RTL • Indexation des logs des applications liés à la production et a la diffusion • Des indicateurs métiers • Une supervision technique mardi 3 mai 2011
  • 32.
    EJBCA • Une des autorités de confiance les plus utilisées industriellement • Génère plusieurs millions de certificats (passeports, carte d’identité, etc.) • Développé par des techniciens • Très peu (pour ne pas dire aucun) rapport métier • Des logs très techniques mardi 3 mai 2011
  • 33.
    EJBCA • Mon objectif : création d’une application EJBCA • Tout est fait par fichier de configuration, plutôt que par l’interface (et donc stockée en base) • Fournir une vision métier, plus que technique mardi 3 mai 2011
  • 34.
    EJBCA • Exemple de vue métier fournie par l’application mardi 3 mai 2011
  • 35.
    EJBCA • Activité des administrateurs •| stats count(ejbca_event) BY ejbca_admin • ejbca_event="ADDEDENDENTITY" | stats count (ejbca_event) BY ejbca_admin mardi 3 mai 2011
  • 36.
    EJBCA • Utilisation de table de mapping externe • Script ou fichiers CSV •|lookup ejbca-ca-names ejbca_caid OUTPUT ejbca_caname • Avant, uniquement un champ ejbca_caid cryptique (499446711) • Grâce à lookup, nouveau champ ejbca_caname (exemple : asydca) mardi 3 mai 2011