Dashboard SEO : Créez un analyseur de logs avec Paas Logs – Partie 3


Paas Logs est la nouvelle solution de gestion industrielle des logs par OVH.
Ce tutoriel va vous expliquer comment configurer le Pass Logs pour envoyer vos logs sur cette nouvelle plateforme.

Avec mon précédent article en Anglais, vous avez désormais vos urls crawlés classé par nombre de liens entrants, nombre de liens sortants, catégorie, profondeur, etc.. Désormais, il nous faut envoyer toutes ses données à Paas Logs.

Voici l’architecture que j’ai présenté à QueduWeb où j’ai dévoilé comment construire un analyseur de logs qui fonctionne en temps réel. Vous pouvez télécharger mes slides

paas logs architecture

Configuration Paas Logs

Etape 1 : Créer votre compte
La première étape consiste à créer un compte sur : http://www.runabove.com
Si vous avez déjà un compte, vous avez juste à vous connecter sur runabove.com

create account paas logs

Etape 2: Remplissez les formulaires

fill in the form

sms

Etape 3 : Activer Paas Logs

Il suffit de cliquer sur  « more Labs »… puis « Activate »

Une fois activé  le lien doit apparaître dans la colonne de gauche, cliquez sur le lien pour accéder à l’interface.

enable paaslogs

Pour le moment sur cette page, une seule action est possible : Create user.
Cela vous donnera un nom d’utilisateur : ra-logs-XXXXX avec le mot de passe associé.


NOTEZ LES PRÉCIEUSEMENT, cela vous servira ensuite pour Kibana ou Graylog.

Etape 4 : Découvrez l’interface Paaslogs

paas logs account creation

Sur cette interface,  vous pouvez voir 5 zones :

  • Streams : pour stocker vos logs
  • Dashboard : pour gérer vos dashboards
  • Inputs : pour configurer logstash
  • Aliases : pour définir l’index de Kibana
  • Roles : pour choisir qui peut lire ou modifier vos logs et dashboards

Streams

  1. Dans la zone « streams », cliquez sur le bouton bleu
  2. Définir un nom et une desscription
  3. Sauvegarder

Vous avez créé votre premier stream. Vous devez voir votre X-OVH-TOKEN.
Cette clé est la seule que vous aurez besoin pour vous connecter sur votre stream.
En dessous de cette clé, vous avez un lien pour accéder directement à votre stream.



Dashboards

  1. Dans la zone « dashboards », cliquez sur le bouton bleu
  2. Définir un nom et une desscription
  3. Sauvegarder

Vous avez créer votre premier dashboard.


Aliases
Pour accéder à vos logs de Kibana, vous avez besoin de configurer un alais et de relier ce dernier à votre stream, voici la procédure :

  1. Dans la zone « alais », cliquez sur le bouton bleu
  2. Définir un nom et une description
  3. Sauvegarder
  4. Une fois que le statut indique OK ( rafraichir la page si nécessaire) cliquez sur le lien  « Associate »
  5. Definir à quel stream associé votre alias



Une fois que votre alias est créé, vous avez juste à associer le stream à votre alias.

Kibana demande un index pour gérer vos dashboards. Pour le créer vous devez cliquez sur le lien « Enable Kibana indice »

Attendez quelques secondes, votre index est prêt.


Inputs
Pour parser vos logs, vous avez besoin de configurer logstash et quelques plugins :

  1. Dans la zone « inputs », cliquez sur le bouton bleu
  2. Définir un nom et une description
  3. Sauvegarder



Cliquez sur le lien « Subscription », choisissez le stream précédemment créé et cliquez sur le bouton « Attach this stream »



Maintenant, vous devez configurer votre logstash en ouvrant le port 5044


Finalement, vous avez besoin de configurer Logstash avec :
– Input section
– Filter section
– Grok

Dans la section « input », ajoutez:

input {
  beats {
      port => 5044
          ssl => true
              ssl_certificate => "/etc/ssl/private/server.crt"
              ssl_key => "/etc/ssl/private/server.key"
   }
}


Dans la section filter, ajoutez :
Vous devez utiliser ces plugins : Grok, Csv, Elasticsearch, Dns
Important:  mon login et mot de passe sont spécifiés dans le plugin elasticseach  mais dans la prochaine version de Paaslogs, ces lignes ne seront plus utiles.

filter {

    mutate {
        rename => {
             "source" => "filename"
        }
    }
	  
    if [type] == "apache" {  
	
      mutate {
          add_field => { 
                 "section" => "nohtml"
                 "active" => "FALSE"
           }
        }

       grok {
           match => { "message" => "%{OVHCOMMONAPACHELOG}" }
           patterns_dir => "/opt/logstash/patterns"
       }

       if ("_grokparsefailure" in [tags]) {
           mutate {
              remove_tag => [ "_grokparsefailure" ]
            }
           grok {
              match => [ "message", "%{OVHCOMBINEDAPACHELOG}" ]
              patterns_dir => "/opt/logstash/patterns"
             }


        }

        elasticsearch { 
      	  hosts => "laas.runabove.com" 
      	  index => "logsDataSEO" 
          user => "ra-logs-XXX" 
          password => "2OkHXXXXXXX"     	  
          ssl => true 
      	  query => 'type:csv AND request:"%{[request]}"'
      	  fields => [["section","section"],["active","active"],["speed","speed"],["compliant","compliant"],["depth","depth"],["inlinks","inlinks"],["outlinks","outlinks"],["status_title","status_title"],["status_description","status_description"],["status_h1","status_h1"],["group_inlinks","group_inlinks"],["group_wordcount","group_wordcount"]]
        }

       dns {
          action => "replace"
          reverse => [ "clientip" ]
       }

       if [clientip] =~ /googlebot.com/ { 
          mutate {
             add_field => { "bot" => "google" }
         }
       }

      if [clientip] =~ /search.msn.com/ { 
         mutate {
            add_field => { "bot" => "bing" }
         }
      }
 
    }
	
    if [type] == "csv" {
  		csv {
  			columns => ["request", "section","active", "speed", "compliant","depth","inlinks","outlinks","status_title","status_description","status_h1","group_inlinks","group_wordcount"]
  			separator => ";"
  		} 
	}
	
}

Dans Custom Grok Patterns, ajoutez

OVHCOMMONAPACHELOG %{IPORHOST:clientip} %{USER:ident} %{USER:auth} \[%{HTTPDATE:timestamp}\] "(?:%{WORD:verb} %{NOTSPACE:request}(?: HTTP/%{NUMBER:httpversion_num:float})?|%{DATA:rawrequest})" %{NUMBER:response_int:int} (?:%{NUMBER:bytes_int:int}|-)
OVHCOMBINEDAPACHELOG %{OVHCOMMONAPACHELOG} "%{NOTSPACE:referrer}" %{QS:agent}

Cliquez sur le bouton « Update Configuration » et vous avez terminé de configurer Paas Logs.
Si vous êtes rapide, vous pouvez faire cela en  moins de 10 minutes.

Cliquez sur le bouton « Start » pour lancer Logstash

Le serveur a redémarré avec succès.

start paaslogs

Etape 5 : Utilisez Filebeat pour envoyer vos logs sur Paas Logs

Filebeat est un logiciel open source qui vous permet d’envoyer vos logs à Logstash.

  • Installer Filebeat : https://www.elastic.co/downloads/beats/filebeat
    curl -L -O https://download.elastic.co/beats/filebeat/filebeat_1.2.1_amd64.deb
    sudo dpkg -i filebeat_1.2.1_amd64.deb
    
  • Editer votre filebeat.yml
    Si vous avez Debian, le fichier de configuration sera le suivant : /etc/filebeat/filebeat.yml
    Vous pouvez trouver votre fichier de configuration avec cette commande :

    $ whereis filebeat.yml
    $ nano /etc/filebeat/filebeat.yml
  • Changez ces 4 lignes :
    • Chemin vers vos logs : /home/ubuntu/lib/apache2/log/access.log
    • Chemin où les fichiers CSV sont copiés : /home/ubuntu/workspace/csv/crawled-urls-filebeat-*.csv
    • Adresse de logstash : c002-5717e1b5d2ee5e00095cea38.in.laas.runabove.com:5044
    • Chemin vers le certificat OVH : /home/ubuntu/workspace/certificat/laas-ca.crt
      filebeat:
        prospectors:
          -
            paths:
              - /home/ubuntu/lib/apache2/log/access.log
            input_type: log
            fields_under_root: true
            document_type: apache
          
          -
            paths:
              - /home/ubuntu/workspace/csv/crawled-urls-filebeat-*.csv
            input_type: csv
            fields_under_root: true
            document_type: csv
      
      output:
        logstash:
          hosts: ["c002-5717e1b5d2ee5e00095cea38.in.laas.runabove.com:5044"]
          worker: 1	
          tls:
            certificate_authorities: ["/home/ubuntu/workspace/certificat/laas-ca.crt"]
      
  • Copier/Coller laas-ca.crt dans le repertoire que vous avez choisi.
    Ici :/home/ubuntu/workspace/certificat/laas-ca.crt
    Vous pouvez télécharger le certificat directement ici : SSL CA cert.
  • Démarrez filebeat
    sudo /etc/init.d/filebeat start
    sudo service filebeat start > /dev/null 2>&1 &
    

Résumé
Vous avez réussi à configurer Paas Logs et Filebeat, et vous avez juste besoin de copier vos logs et les fichiers CSV dans les bons répertoires.

Dans mon exemple :
– /home/ubuntu/lib/apache2/log/
– /home/ubuntu/workspace/csv/

Si vous avez Window, ça sera  :
– c:/Filebeat-Paaslogs/logs
– c:/Filebeat-Paaslogs/csv

Vous pouvez tester votre premier dashboard en cliquant sur le lien « dashboard » et vous allez voir tout de suite si vos liens sont bien envoyé sur Paas Logs.

Dans mon  prochain article, je vous donne tous mes dashboards Kibana avec des exemples pour créer des graphs sur mesure.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *