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” } }
### 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 !