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 |
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 |
Configuration
Dans le fichier de configuration /etc/heartbeat/heartbeat.yml
de Heartbeat il faudra modifier :
Dans la partie Elasticsearch inputs :
#-------------------------- Elasticsearch output ------------------------------ |
Dans la partie Heartbeat :
############################# Heartbeat ###################################### |
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 |
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 |
Configuration
Dans le fichier de configuration /etc/apm-server/apm-server.yml
de Filebeats il faudra modifier :
Dans la partie Filebeat inputs :
#-------------------------- Elasticsearch output ------------------------------ |
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 |
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 |
Configuration
Dans le fichier de configuration /etc/filebeat/filebeat.yml
de Filebeats il faudra modifier :
Dans la partie Filebeat inputs :
#=========================== Filebeat inputs ============================= |
Dans la partie Kibana :
#============================== Kibana ===================================== |
Dans la partie des OUTPUTS :
#-------------------------- Elasticsearch output ------------------------------ |
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 |
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 |
Configuration
Dans le fichier de configuration /etc/metricbeat/metricbeat.yml
de Metricbeat il faudra modifier :
Dans la partie Kibana :
#============================== Kibana ===================================== |
Dans la partie des OUTPUTS :
#-------------------------- Elasticsearch output ------------------------------ |
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 |
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