Kibana Observabilité

L’observabilité est un terme qui désigne l’ensemble des moyens mis en oeuvre pour superviser un système comme la récolte des logs, les indicateurs d’infrastructure, les performances applicatives, la disponibilité, etc.

Parmis ces outils pour superviser un système nous avons :

  • Les logs : des applications ou du système.
  • Les metrics : mesures brutes d’utilisation ou du comportement des ressources observées et collectées dans tous vos systèmes.
  • APM : (Application Performance Monitoring) collecte des mesures de performance et des erreurs approfondies depuis l’intérieur des applications en temps réel.
  • Uptime : surveiller la disponibilité des applications (Hôte, périphérique réseau, serveur FTP, ports, site web web, etc.).

Uptime Monitors

Pour surveillez la disponibilité des services.

Installation de Hearthbeat

Récupération du paquet Debian pour heartbeat-7.6.1-amd64.deb ainsi que son empreinte SHA :

# wget https://artifacts.elastic.co/downloads/apm-server/heartbeat-7.6.1-amd64.deb
# wget https://artifacts.elastic.co/downloads/apm-server/heartbeat-7.6.1-amd64.deb.sha512

Comparaison des empreintes, vous devriez avoir un “OK” si tout est bon :

# shasum -a 512 -c heartbeat-7.6.1-amd64.deb.sha512

Installation :

# dpkg -i heartbeat-7.6.1-amd64.deb

Pour lancer/stopper apm-server :

# systemctl start heartbeat.service
# systemctl stop heartbeat.service

Configuration

Dans le fichier de configuration /etc/heartbeat/heartbeat.yml de Heartbeat il faudra modifier :

Dans la partie Elasticsearch inputs :

#-------------------------- Elasticsearch output ------------------------------
output.elasticsearch:
# Array of hosts to connect to.
hosts: ["@IP_Server:9200"]
[...]
# Authentication credentials - either API key or username/password.
#api_key: "id:api_key"
username: "elastic"
password: "VotreMotDePasse"

Dans la partie Heartbeat :

############################# Heartbeat ######################################

# Configure monitors inline
heartbeat.monitors:
- type: http

# List or urls to query
urls:
- "http://Appli42:4242"
- "http://cloud.moncloud:4444"
- "http://MonSiteWeb.fr"
- "http://ftp.user.university.com"

# Configure task schedule
schedule: '@every 10s'

Lancer ensuite le setup :

# heartbeat setup

Si la configuration n’est pas prise en compte dans Kibana il faudra relancer le service heartbeat-elastic.service.

APM

Installation

Récupération du paquet Debian pour filebeat-7.6.1.deb ainsi que son empreinte SHA :

# wget https://artifacts.elastic.co/downloads/apm-server/apm-server-7.6.1-amd64.deb
# wget https://artifacts.elastic.co/downloads/apm-server/apm-server-7.6.1-amd64.deb.sha512

Comparaison des empreintes, vous devriez avoir un “OK” si tout est bon :

# shasum -a 512 -c apm-server-7.6.1-amd64.deb.sha512

Installation :

# dpkg -i apm-server-7.6.1-amd64.deb

Pour lancer/stopper apm-server :

# systemctl start apm-server.service
# systemctl stop apm-server.service

Configuration

Dans le fichier de configuration /etc/apm-server/apm-server.yml de Filebeats il faudra modifier :

Dans la partie Filebeat inputs :

#-------------------------- Elasticsearch output ------------------------------
output.elasticsearch:
# Array of hosts to connect to.
hosts: ["@IP_Server:9200"]
[...]
# Authentication credentials - either API key or username/password.
#api_key: "id:api_key"
username: "elastic"
password: "VotreMotDePasse"

Quelques Metrics

Filesbeats

Installation

Récupération du paquet Debian pour filebeat-7.6.1.deb ainsi que son empreinte SHA :

# wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-7.6.1-amd64.deb
# wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-7.6.1-amd64.deb.sha512

Comparaison des empreintes, vous devriez avoir un “OK” si tout est bon :

# shasum -a 512 -c filebeat-7.6.1.deb.sha512

Installation :

# dpkg -i filebeat-7.6.1.deb

Pour lancer/stopper filebeat :

# systemctl start filebeat.service
# systemctl stop filebeat.service

Configuration

Dans le fichier de configuration /etc/filebeat/filebeat.yml de Filebeats il faudra modifier :

Dans la partie Filebeat inputs :

#=========================== Filebeat inputs =============================

filebeat.inputs:
[...]
- type: log
enabled: true # Change to true to enable this input configuration.
paths:
- /var/log/*.log

Dans la partie Kibana :

#============================== Kibana =====================================
setup.kibana:
# Kibana Host
host: "@IP_Server:5601"
username: "elastic" /_!_\
password: "VotreMotDePasse"

Dans la partie des OUTPUTS :

#-------------------------- Elasticsearch output ------------------------------
output.elasticsearch:
# Array of hosts to connect to.
hosts: ["@IP_Server:9200"]
[...]
# Authentication credentials - either API key or username/password.
#api_key: "id:api_key"
username: "elastic"
password: "VotreMotDePasse"

Lancer ensuite le setup de Filebeats :

# filebeat setup

Filesbeats modules

NGINX

Activer le module NGINX :

filebeat modules enable nginx

Lancer ensuite le setup de Filebeats :

# filebeat setup

Pour modifier la configuration du module, il suffit d’aller dans /etc/filebeat/modules.d/nginx.yml

IPtables

Activer le module iptable :

filebeat modules enable iptables

Lancer ensuite le setup de Filebeats :

# filebeat setup

Pour modifier la configuration du module, il suffit d’aller dans /etc/filebeat/modules.d/iptables.yml

Elastic

Activer le module elastic :

filebeat modules enable elastic

Lancer ensuite le setup de Filebeats :

# filebeat setup

Pour modifier la configuration du module, il suffit d’aller dans /etc/filebeat/modules.d/elastic.yml.

Metricbeat

Installation

Récupération du paquet Debian pour metricbeat-7.6.1.deb ainsi que son empreinte SHA :

# wget https://artifacts.elastic.co/downloads/beats/metricbeat/metricbeat-7.6.1-amd64.deb
# wget https://artifacts.elastic.co/downloads/beats/metricbeat/metricbeat-7.6.1-amd64.deb.sha512

Comparaison des empreintes, vous devriez avoir un “OK” si tout est bon :

# shasum -a 512 -c metricbeat-7.6.1-amd64.deb.sha512

Installation :

# dpkg -i metricbeat-7.6.1-amd64.deb

Pour lancer/stopper metricbeat :

# systemctl start metricbeat.service
# systemctl stop metricbeat.service

Configuration

Dans le fichier de configuration /etc/metricbeat/metricbeat.yml de Metricbeat il faudra modifier :

Dans la partie Kibana :

#============================== Kibana =====================================
setup.kibana:
# Kibana Host
host: "@IP_Server:5601"
username: "elastic" /_!_\
password: "VotreMotDePasse"

Dans la partie des OUTPUTS :

#-------------------------- Elasticsearch output ------------------------------
output.elasticsearch:
# Array of hosts to connect to.
hosts: ["@IP_Server:9200"]
[...]
# Authentication credentials - either API key or username/password.
#api_key: "id:api_key"
username: "elastic"
password: "VotreMotDePasse"

Lancer ensuite le setup de metricbeat :

# metricbeat setup

Modules

Docker

Activer le module docker :

metricbeat modules enable docker

Lancer ensuite le setup de metricbeat :

# metricbeat setup

Pour modifier la configuration du module, il suffit d’aller dans /etc/metricbeat/modules.d/docker.yml

MySQL

Activer le module mysql :

metricbeat modules enable mysql

Lancer ensuite le setup de metricbeat :

# metricbeat setup

Pour modifier la configuration du module, il suffit d’aller dans /etc/metricbeat/modules.d/mysql.yml

Erreurs courantes

Manque de place

Si vous avez cette erreur, c’est probablement que votre espace disque est insufisant :

error loading /usr/share/metricbeat/kibana/7/dashboard/metricbeat-windows-service.json: index [.kibana_1] blocked by: [FORBIDDEN/12/index read-only / allow delete (api)];. Response: {"objects":[{"id":"eb8277d0-c98c-11e7-9835-2f31fe08873b-ecs","type":"visualization","error":{"message":"index [.kibana_1] blocked by: [FORBIDDEN/12/index read-only / allow delete (api)];"}},{"id":"23a5fff0-c98e-11e7-9835-2f31fe08873b-ecs","type":"vis... (truncated)

Par défaut, Elasticsearch (et ses modules ?) passe en mode lecture seule lorsque qu’il y a moins de 5% d’espace disque libre.

Caractère non autorisé

Si vous avez cette erreur il est fort probable que vous ayez utilisé des TABulations au lieu des ESPACEs.

# *beat setup
Exiting: error loading config file: yaml: line 29: found character that cannot start any token

Exemples

Discover

Dans Discover :

Metrics

Redis

Dans Dashborad > [Metricbeat Redis] Overview ECS :

Docker

Dans Dashborad > [Metricbeat Docker] Overview ECS :

Vue d’ensemble de l’hôte

Dans Dashborad > [Metricbeat System] Host overview ECS :

NGINX

Dans Dashborad > [Filebeat Nginx] Overview ECS :

Uptime

Dans http://@IP/app/uptime :

Espace de visualisation

Dans Visualize > Logs Severity [Filebeat Logstash] ECS :

Documentation

https://www.elastic.co/fr/observability
https://stackoverflow.com/questions/50609417/elasticsearch-error-cluster-block-exception-forbidden-12-index-read-only-all#50609418
https://www.elastic.co/guide/en/beats/heartbeat/7.6/heartbeat-configuration.html

> Partager <