Logstash-forwarder #ELK [SYSADMIN]

Logstash-forwarder c’est quoi ?

C’est un logiciel que vous aller installer sur un ordinateur client. Il va récupérer des fichiers de logs et les pousser vers un ordinateur serveur ou Logstash est exécuté. Ensuite ce dernier pourra traiter les logs avec les règles écrites dedans et les pousser vers la destination voulu (ElasticSearch dans mon cas).

Cela me sert principalement (en fait uniquement pour le moment) à aller chercher les logs Apache d’un serveur Web.

Le but est donc d’avoir une infrastructure de logs centralisée pour leur traitement et renvoie vers la base qui va permettre leur analyse.

Nous pouvons donc imaginer compléter ou substituer syslog dans le cas ou l’on souhaite que la communication soit sécurisée.

Ca marche comment ?

Le logiciel va se comporter comme un client et initier une connexion sécurisée vers le serveur à l’aide de Lumberjack. Cela se passe sur le port 5000, penser donc à autoriser ce trafic dans votre firewall. La connexion est sécurisée à l’aide de certificats ssl.

Je l’installe comment ?

Il faut distinguer l’installation en deux parties, la partie client et la partie serveur.

Partons du principe que vous avez déjà un ELK de fonctionnel, sinon un autre article vous expliquera prochainement comment installer tout cela.

Serveur

Il nous faut commencer par générer le certificat SSL.

cd /etc/ssl
openssl req -x509 -batch -nodes -days 3650 -newkey rsa:2048 -keyout private/logstash-forwarder.key -out certs/logstash-forwarder.crt

Ensuite nous allons configurer l’écoute du port 5000.

vim /etc/logstash/conf.d/logstash.conf
--
input {
        lumberjack {
                port => 5000
                type => "weblog"
                ssl_certificate => "/etc/ssl/certs/logstash-forwarder.crt"
                ssl_key => "/etc/ssl/private/logstash-forwarder.key"
        }
}

Redémarrer votre service et c’est partie.

Client

Nous allons commencer par ajouter le dépôt pour l’installation avec APT.

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

Un Update puis on installe.

sudo apt-get update
sudo apt-get install logstash-forwarder

Mettons en place le script d’init fourni dans le paquet.

cd /etc/init.d/; sudo wget https://raw.github.com/elasticsearch/logstash-forwarder/master/logstash-forwarder.init -O logstash-forwarder
sudo chmod +x logstash-forwarder
sudo update-rc.d logstash-forwarder defaults

Puis copions le certificat mis en place sur le serveur.

#Depuis le serveur :
scp /etc/ssl/certs/logstash-forwarder.crt user@client_ip:/tmp/

#Sur le client
cp /tmp/logstash-forwarder.crt /etc/ssl/certs/

On édite la configuration puis on lance le service.

vim /etc/logstash-forwarder
--
{
  "network": {
    "servers": [ "logstash_server_private_IP:5000" ],
    "timeout": 15,
    "ssl ca": "/etc/ssl/certs/logstash-forwarder.crt"
  },
  "files": [
    {
      "paths": [
        "/var/log/syslog",
        "/var/log/auth.log"
       ],
      "fields": { "type": "syslog" }
    }
   ]
}

Lançons le service et c’est partie !


Laisser un commentaire

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