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
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
Etape 2: Remplissez les formulaires
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.
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
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
- Dans la zone « streams », cliquez sur le bouton bleu
- Définir un nom et une desscription
- 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.
- Dans la zone « dashboards », cliquez sur le bouton bleu
- Définir un nom et une desscription
- 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 :
- Dans la zone « alais », cliquez sur le bouton bleu
- Définir un nom et une description
- Sauvegarder
- Une fois que le statut indique OK ( rafraichir la page si nécessaire) cliquez sur le lien « Associate »
- 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 :
- Dans la zone « inputs », cliquez sur le bouton bleu
- Définir un nom et une description
- 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.
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.