Logo de Béjean Développement

Installer Kibana

Objectif

Dans un article précédent, nous avions vu comment installer un serveur Elasticsearch 7.17.11 pour Magento 2. Dans ce tutoriel, nous allons voir comment installer Kibana 7.17.11. Kibana est une interface web qui permet de visualiser les données présentes dans Elasticsearch. L'installation est réalisée sur une machine virtuelle Ubuntu 22.04 LTS.

Installation des composants indispensables

Pour fonctionner Kibana a besoin de s'exécuter sur une machine virtuelle Java (JVM). Par conséquent, nous devons installer le paquet default-jre ainsi que du paquet default-jdk. Ce dernier est nécessaire pour quelques fonctionnalités spécifiques :

apt install default-jre

Vérifier l'installation en lançant la commande : java --version, le résultat doit être :

openjdk 11.0.19 2023-04-18
OpenJDK Runtime Environment (build 11.0.19+7-post-Ubuntu-0ubuntu122.04.1)
OpenJDK 64-Bit Server VM (build 11.0.19+7-post-Ubuntu-0ubuntu122.04.1, mixed mode, sharing)

Puis, installer le JDK :

apt install default-jdk

Vérifier en lançant la commande : javac --version, le résultat doit être :

javac 11.0.19

Installation de Kibana

Une fois les 2 paquets installés, nous pouvons installer Kibana. Pour cela, il faut ajouter la clé GPG de Kibana puis ajouter le dépôt :

apt-get install gnupg2 apt-transport-https
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | apt-key add -
echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | tee -a /etc/apt/sources.list.d/elastic-7.x.list
apt-get update && apt-get install kibana=7.17.11

J'ai précisé la version de Kibana car, dans l'article précédent ,j'ai forcé la version d'Elasticsearch à l'installation.

Configuration de Kibana

Nous allons désormais configurer notre machine virtuelle ainsi que Kibana. Commençons par éditer le fichier de configuration de Kibana :

nano /etc/kibana/kibana.yml

Vous trouverez, ci-dessous, les modifications que j'ai apportées au fichier de configuration :

server.host: 0.0.0.0
server.port: 5601
server.name: kb7
elasticsearch.hosts: ["http://es7-1:9200"]

Voici le descriptif des directives présentes dans le fichier de configuration :

  • server.host : ce paramètre permet de préciser l'adresse IP pour laquelle Kibana écoute. J'ai choisi d'écouter sur toutes les interfaces réseaux.
  • server.port : ce paramètre correspond au port utilisé pour Kibana, par défaut, c'est le port 5601.
  • server.name : ce paramètre permet de nommer le serveur Kibana. Il est important de le renseigner, car il est utilisé dans les URL.
  • elasticsearch.hosts : ce paramètre prend un tableau où vous devez lister les différents serveurs Elasticsearch que vous souhaitez "lier" à Kibana. Dans notre cas, nous avons un seul serveur Elasticsearch. Il est important de renseigner le protocole ainsi que le port.

Avant d'enregistrer et de fermer le fichier, n'oubliez pas de modifier l'URL kb7 par l'URL de votre serveur Kibana.

systemctl daemon-reload

Nous allons terminer par l'activation du service Kibana afin qu'il démarre automatiquement à chaque fois que le système redémarre. En même temps, nous avons en profiter pour lancer le service Kibana :

systemctl enable kibana.service && systemctl start kibana.service

Vérifier si Kibana est actif en lançant cette commande : systemctl status kibana.service.

Si besoin, vous pouvez relancer le service avec la commande : systemctl restart kibana.service.

Résultat

Pour contrôler que le serveur fonctionne correctement, je vous invite à lancer la commande : curl http://kb7:5601/api/status, en remplaçant kb7 par l'URL de votre serveur Kibana.

Vous devriez avoir le résultat :

{
    "name": "kb7",
    "uuid": "...",
    "version": {
        "number": "7.17.11",
        ...
    },
    "status": {
        "overall": {
            "since": "2023-07-09T15:27:19.778Z",
            "state": "green",
            "title": "Green",
            "nickname": "Looking good",
            "icon": "success",
            "uiColor": "secondary"
        },
        ...

}

Playbook Ansible

Pour automatiser l'installation de Kibana, je vous propose un playbook Ansible très simple permettant d'installer la version 7.17.11 de Kibana pour Ubuntu 22.04 LTS. Ce playbook est disponible sur le dépôt GitLab de Froggit, lien vers le dépôt Froggit du playbook.

Le playbook est composé de 3 fichiers, un premier fichier nommé 00_base.yaml où vous pourrez modifier les paramètres de Kibana... Les autres fichiers contiennent l'ensemble des actions à effectuer pour installer Elasticsearch. Ce sont les mêmes actions que nous avons vues précédemment.

- name: "Install Kibana 7"
  hosts: kb7
  tasks:
      - name: Install components and prerequisites
        include_tasks: 01_install-components.yaml

      - name: Install Kibana
        include_tasks: 02_install-kibana.yaml

      - name: Update Kibana configuration file
        lineinfile:
            path: /etc/kibana/kibana.yml
            regexp: "{{ item.regexp }}"
            line: "{{ item.line }}"
        with_items:
            - { regexp: '^server.host:', line: 'server.host: 0.0.0.0' }
            - { regexp: '^server.port:', line: 'server.port: 5601' }
            - { regexp: '^server.name:', line: 'server.name: "kb7"' }
            - { regexp: '^elasticsearch.hosts:', line: 'elasticsearch.hosts: ["http://es7-1:9200"]' }

      - name: Reload daemon
        systemd:
            daemon_reload: yes

      - name: Enable Kibana service
        systemd:
            name: kibana
            enabled: yes

      - name: Start Kibana service
        systemd:
            name: kibana
            state: restarted

Fichier 01_install-components.yaml

- name: Install JRE
  apt:
      name: default-jre
      state: present

- name: Install JDK
  apt:
      name: default-jdk
      state: present

- name: Install gnupg2
  apt:
      name: gnupg2
      state: present

Fichier 02_install-kibana.yaml

- name: Add Kibana repository key
  apt_key:
      url: "https://artifacts.elastic.co/GPG-KEY-elasticsearch"
      id: "46095ACC8548582C1A2699A9D27D666CD88E42B4"
      state: present

- name: Add Kibana repository
  apt_repository:
      repo: "deb https://artifacts.elastic.co/packages/7.x/apt stable main"
      state: present

- name: Update APT
  apt:
      update_cache: yes

- name: Install Kibana
  apt:
      name: kibana=7.17.11