Installation ELK

Note : ELK est en version 7.x au moment de la rédaction de cette page, c'est la raison pour laquelle nous utilisons le dépôt de cette branche.

Nous créons le fichier elasticsearch.list, et ajoutons le dépôt pour Elasticsearch :

sudo nano /etc/apt/sources.list.d/elasticsearch.list
##
# Elasticsearch repository
# Version: 7.x
##

deb http://HTTPS///artifacts.elastic.co/packages/7.x/apt stable main

Note : le lien APT est de la forme “http://HTTPS///” pour pouvoir passer par le proxy APT local, bien qu'étant à la base un dépôt en HTTPS.

Nous importons la clé GPG du dépôt :

wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -

Une copie de paquets est faite sur notre dépôt APT local OPLV. C'est la solution qui est privilégiée. Nous récupérons la clé GPG du dépôt :

wget -q -O - http://repo.oplv-france.pro/oplv-apt.pub | sudo apt-key add -

Nous créons le fichier /etc/apt/sources.list.d/oplv.list

##
# OPLV repository
# Version: Stretch
##

deb http://repo.oplv-france.pro/debian stretch main

Nous mettons le cache à jour

sudo aptitude update

Nous installons les paquets nécessaires :

sudo aptitude update && sudo aptitude install openjdk-8-jdk-headless elasticsearch kibana logstash

Nous configurons elasticsearch :

sudo nano /etc/elasticsearch/elasticsearch.yml

Nous renseignons les paramètres suivants:

cluster.name: oplv-infra
node.name: node01
network.host: 127.0.0.1
http.port: 9200

Nous configurons kibana :

sudo nano /etc/kibana/kibana.yml

Nous renseignons les paramètres suivants:

server.port: 5601
server.host: "localhost"
elasticsearch.url: "http://localhost:9200"

Nous installons Nginx qui va servir de reverse proxy :

sudo aptitude install nginx

Nous créons le vhost

sudo nano /etc/nginx/sites-available/rsyslog.neotion.pro

Et nous insérons :

##
# Nginx vHost
# rsyslog.neotion.pro
##

server {
        listen 80;
        server_name rsyslog.neotion.pro;
        return 301 https://$host$request_uri;
}

server {
        listen 443;
        server_name rsyslog.neotion.pro;

        access_log /var/log/nginx/rsyslog.neotion.pro_access.log;
        error_log /var/log/nginx/rsyslog.neotion.pro_error.log;

        root html;
        index index.html index.htm;

        ssl on;
        ssl_certificate /etc/ssl/certs/neotion.pro.crt;
        ssl_certificate_key /etc/ssl/private/neotion.pro.key;
        ssl_trusted_certificate /etc/ssl/certs/neotion.pro.root.crt;
        ssl_session_timeout 1d;
        ssl_session_cache shared:SSL:50m;

        ssl_protocols TLSv1.2;
        ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256';
        ssl_prefer_server_ciphers on;

        location / {
                proxy_pass http://127.0.0.1:5601;
                include proxy_params;
        }
}

Nous activons le vhost :

cd /etc/nginx/sites-enabled
sudo ln -s /etc/nginx/sites-available/rsyslog.neotion.pro

Nous redémarrons nginx :

sudo systemctl restart nginx

Nous activons les services pour qu'ils se lancent au démarrage :

sudo systemctl enable elasticsearch
sudo systemctl enable logstash
sudo systemctl enable kibana

Nous démarrons les services :

sudo systemctl start elasticsearch
sudo systemctl start logstash
sudo systemctl start kibana

Pour contrôler depuis l'API Rest d'Elasticsearch

curl -X GET http://localhost:9200

Vous devriez avoir un retour de ce type

{
  "name" : "node01",
  "cluster_name" : "oplv-infra",
  "cluster_uuid" : "lPbKK-s9Qkm6DgOFxQyQvA",
  "version" : {
    "number" : "7.3.1",
    "build_flavor" : "default",
    "build_type" : "deb",
    "build_hash" : "4749ba6",
    "build_date" : "2019-08-19T20:19:25.651794Z",
    "build_snapshot" : false,
    "lucene_version" : "8.1.0",
    "minimum_wire_compatibility_version" : "6.8.0",
    "minimum_index_compatibility_version" : "6.0.0-beta1"
  },
  "tagline" : "You Know, for Search"
}
  • infrastructure/supervision/elk/install.txt
  • Dernière modification : 10/10/2020 11:48
  • de Stéphane Paillet