Maintenant que je dispose de plusieurs RaspBerry Pi sur lesquels j’ai installé diverses applications, je souhaite pouvoir les surveiller et cela de manière centralisée. J’ai donc décidé de mettre en place la pile ELK d’ElasticSearch,. Mais voila pour le moment je n’ai pas trouvé le moyen de faire tourner LogStach alors j’ai décidé de prendre fluentd en lieu et place.

Notre pile se compose donc de :

  • Fuentd : Pour la réception et le transport des logs.
  • Elasticsearch : Pour le stockage et le requêtage des infos;
  • Kibana : L’Interface web qui permet de lancer des requêtes d’Elasticsearch via les webservices (cf image ci-dessus);

Installation d’ElasticSearch et Kibana sur Ubuntu

Source : digitalocean.com

J’ai choisi d’installer Elasticsearch et Kibana sur mon poste Ubuntu, alors commençons par installer ces deux produits :

Installation des prérequis

Dans un premier temps il faut installer le JDK Oracle 7, pour cela on va utiliser le dépôt PPA de WebUpd8 :

sudo add-apt-repository -y ppa:webupd8team/java
sudo apt-get update
sudo apt-get -y install oracle-java7-installer

Ensuite il nous faut un serveur web :

sudo apt-get install nginx

Récupérons la conf mise au point par digitalOceans et copions la comme conf par défaut de nginx:

cd /tmp; wget https://gist.githubusercontent.com/thisismitch/2205786838a6a5d61f55/raw/f91e06198a7c455925f6e3099e3ea7c186d0b263/nginx.conf
sudo cp nginx.conf /etc/nginx/sites-available/default
sudo service nginx restart

Installation d’Elasticsearch

Ajoutons le dépôt d’ElasticSearch :

wget -O - http://packages.elasticsearch.org/GPG-KEY-elasticsearch | sudo apt-key add -
echo 'deb http://packages.elasticsearch.org/elasticsearch/1.1/debian stable main' | sudo tee /etc/apt/sources.list.d/elasticsearch.list

Maintenant on peut lancer l’installation d’ElasticSearch :

sudo apt-get update
sudo apt-get -y install elasticsearch

Adaptons la config à notre installation :

sudo vi /etc/elasticsearch/elasticsearch.yml

Ajouter la ligne suivante à la fin :

script.disable_dynamic: true

On peut relancer ElasticSearch :

sudo service elasticsearch restart

Installation de Kibana

Il suffit de récupérer le tar depuis le site, de le décompresser et de le déplacer dans le répertoire /var/www :

cd /tmp; wget https://download.elasticsearch.org/kibana/kibana/kibana-3.0.1.tar.gz
tar xvf kibana-3.0.1.tar.gz
sudo mkdir -p /var/www/kibana3
sudo cp -R /tmp/kibana-3.0.1/* /var/www/kibana3/

Installation de fluentd sur les Raspberry Pi

Maintenant passons à l’installation de notre collecteur de log fluentd auquel nous ajouterons le plugin elasticsearch :

sudo apt-get install ruby-dev gem -y
sudo gem install fluentd
sudo gem install fluent-plugin-elasticsearch

Passons à la configuration :

sudo vi fluentd.conf

Ajoutez-y ceci :

  type tail
  path /var/log/apache2/access.log
  pos_file /var/log/apache2/httpd-access.log.pos
  tag apache.access
  format apache2

  type elasticsearch
  logstash_format true
  host bob-fixe #(optional; default="localhost")

Dans cette conf je ne récupère que les logs d’Apache, mais il est possible de traiter toutes les logs importantes de votre système comme auth.log, messages.log, et autres logs applicatives.

Maintenant on peut lancer nos collecteurs :

fluentd -c fluentd.conf

Dans votre navigateur WEB connectez-vous à l’adresse http://le-libriste.fr et tada 🙂