Comment rassembler des métriques d’infrastructure avec Topbeat et ELK sur Ubuntu 14.04

introduction

Topbeat, qui est l’un des nombreux expéditeurs de données «Beats» permettant d’envoyer différents types de données de serveur à une instance Elasticsearch, vous permet de collecter des informations sur le processeur, la mémoire et l’activité des processus sur vos serveurs. Lorsqu’il est utilisé avec la pile ELK (Elasticsearch, Logstash et Kibana), Topbeat peut être utilisé comme alternative à d’autres outils de visualisation de métriques système tels que https://www.digitalocean.com/community/tutorials/how-to-use-. Prometheus-to-monitor-your-ubuntu-14-04-server [Prometheus] ou https://www.digitalocean.com/community/tutorials/how-to-configure-statsd-to-collect-arbitrary-stats-for -graphite-on-ubuntu-14-04 [Statsd].

Dans ce didacticiel, nous allons vous montrer comment utiliser une pile ELK pour rassembler et visualiser les métriques d’infrastructure à l’aide de * Topbeat * sur un serveur Ubuntu 14.04.

Conditions préalables

Ce didacticiel suppose que la configuration d’ELK Stack est décrite dans ce didacticiel: https://www.digitalocean.com/community/tutorials/how-to-install-elasticsearch-logstash-and-kibana-elk-stack-on-ubuntu. -14-04 [Comment installer Elasticsearch, Logstash et Kibana sur Ubuntu 14.04]. Si vous ne possédez pas déjà de serveur ELK, veuillez terminer le didacticiel lié avant de continuer.

Nous supposerons également que, outre le serveur ELK, vous souhaitez au moins un serveur client Ubuntu 14.04 sur lequel vous souhaitez collecter des métriques système à l’aide de Topbeat.

Charger des tableaux de bord Kibana sur le serveur ELK

Elastic fournit plusieurs exemples de tableaux de bord Kibana et de modèles d’index Beats qui peuvent vous aider à démarrer avec Kibana. Bien que nous n’utilisions pas les tableaux de bord dans ce didacticiel, nous les chargerons quand même afin que nous puissions utiliser le modèle d’index Filebeat qu’il inclut.

Tout d’abord, téléchargez l’exemple d’archive de tableaux de bord dans votre répertoire personnel:

cd ~
curl -L -O https://download.elastic.co/beats/dashboards/beats-dashboards-1.1.0.zip

Installez le paquetage + unzip + avec cette commande:

sudo apt-get -y install unzip

Ensuite, extrayez le contenu de l’archive:

unzip beats-dashboards-*.zip

Et chargez les exemples de tableaux de bord, visualisations et modèles d’indexation Beats dans Elasticsearch avec les commandes suivantes:

cd beats-dashboards-*
./load.sh

Voici les modèles d’index que nous venons de charger:

  • [packetbeat-] AAAA.MM.DD

  • [topbeat-] AAAA.MM.DD

  • [battement de fichier] AAAA.MM.DD

  • [winlogbeat-] AAAA.MM.DD

Charger le modèle d’index Topbeat dans Elasticsearch

Comme nous prévoyons d’utiliser Topbeat pour envoyer des journaux à Elasticsearch, nous devons charger le modèle d’index Topbeat. Le modèle d’index configurera Elasticsearch pour analyser les champs Topbeat entrants de manière intelligente.

Tout d’abord, téléchargez le modèle d’index Topbeat dans votre répertoire personnel:

cd ~
curl -O https://raw.githubusercontent.com/elastic/topbeat/master/etc/topbeat.template.json

Puis chargez le template avec cette commande:

curl -XPUT 'http://localhost:9200/_template/topbeat' [email protected]

Votre serveur ELK est maintenant prêt à accepter les données de Topbeat. Configurons ensuite Topbeat sur un serveur client.

Configurer Topbeat (Ajouter des serveurs clients)

Suivez ces étapes pour chaque serveur Ubuntu ou Debian pour lequel vous souhaitez envoyer des données de métriques à Logstash sur votre serveur ELK. Pour obtenir des instructions sur l’installation de Topbeat sur des distributions Linux basées sur Red Hat (par exemple, RHEL, CentOS, etc.), reportez-vous à la CentOS variation de ce tutoriel.

Copier le certificat SSL

Sur votre * ELK Server *, copiez le certificat SSL créé dans le tutoriel préalable sur votre * Client Server * (remplacez l’adresse du serveur client et votre propre identifiant):

scp /etc/pki/tls/certs/logstash-forwarder.crt @:/tmp

Après avoir fourni vos identifiants de connexion, assurez-vous que la copie du certificat a réussi. Il est requis pour la communication entre les serveurs clients et le serveur ELK.

Maintenant, sur votre * Client Server *, copiez le certificat SSL du serveur ELK dans l’emplacement approprié (/ etc / pki / tls / certs):

sudo mkdir -p /etc/pki/tls/certs
sudo cp /tmp/logstash-forwarder.crt /etc/pki/tls/certs/

Nous pouvons maintenant installer le paquet Topbeat.

Installer le paquet Topbeat

Sur * Client Server *, assurez-vous que la liste source Beats existe. Ouvrez + / etc / apt / sources.list.d / beats.list + pour le modifier:

sudo vi /etc/apt/sources.list.d/beats.list

Assurez-vous que cette ligne existe (collez-la si elle n’est pas déjà présente):

/etc/apt/sources.list.d/beats.list

deb https://packages.elastic.co/beats/apt stable main

Sauvegarder et quitter.

Topbeat utilise la même clé GPG que Elasticsearch et Filebeat, qui peut être installée avec cette commande:

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

Puis installez le paquet Topbeat:

sudo apt-get update
sudo apt-get install topbeat

Tobeat est maintenant installé mais pas encore configuré.

Configurer Topbeat

Nous allons maintenant configurer Topbeat pour se connecter à Logstash sur notre serveur ELK. Cette section vous guidera dans la modification du fichier de configuration fourni avec Topbeat. Une fois ces étapes terminées, vous devriez avoir un fichier qui ressemble à this.

Sur * Client Server *, créez et modifiez le fichier de configuration Topbeat:

sudo vi /etc/topbeat/topbeat.yml

Près du haut du fichier, vous verrez la section + input, où vous pouvez spécifier quelles métriques et statistiques doivent être envoyées au serveur ELK. Nous utiliserons les paramètres d’entrée par défaut, mais n’hésitez pas à les modifier pour répondre à vos besoins.

Dans la section + output +, recherchez la ligne ` + elasticsearch: + `, qui indique la section de sortie Elasticsearch (que nous n’allons pas utiliser). * Supprimer ou commenter toute la section de sortie Elasticsearch * (jusqu’à la ligne qui dit `+ # logstash: +).

Recherchez la section de sortie Logstash commentée, indiquée par la ligne «+ # logstash: », et supprimez le commentaire en supprimant le précédent ` # `. Dans cette section, retirez les commentaires des hôtes `: [" localhost: 5044 "] `. Remplacez ` localhost +` par l’adresse IP privée (ou le nom d’hôte, si vous y êtes allé avec cette option) de votre serveur ELK:

topbeat.yml - 1 sur 2

 ### Logstash as output
 logstash:
   # The Logstash hosts
   hosts: [":5044"]

Cela configure Topbeat pour qu’il se connecte à Logstash sur votre serveur ELK au port + 5044 + (le port pour lequel nous avons spécifié une entrée Logstash dans le didacticiel préalable).

Ensuite, trouvez la section + tls + et décommentez-la. Puis décommentez la ligne spécifiant + certificate_authorities +, et remplacez sa valeur par + [" / etc / pki / tls / certs / logstash-forwarder.crt "] +. Ça devrait ressembler a quelque chose comme ca:

topbeat.yml - 2 sur 2

...

     # List of root certificates for HTTPS server verifications

Cela configure Topbeat pour utiliser le certificat SSL que nous avons créé sur le serveur ELK dans le didacticiel préalable.

Sauvegarder et quitter.

Maintenant, redémarrez Topbeat pour mettre nos modifications en place:

sudo service topbeat restart
sudo update-rc.d topbeat defaults 95 10

Là encore, si vous n’êtes pas sûr que votre configuration Topbeat est correcte, comparez-la à cette example configuration Topbeat.

Maintenant, Topbeat envoie les métriques du système, des processus et des systèmes de fichiers de votre serveur client à votre serveur ELK! Répétez cette section pour tous les autres serveurs pour lesquels vous souhaitez que les métriques de topbeat.

Tester l’installation Topbeat

Si votre pile ELK est configurée correctement, Topbeat (sur votre serveur client) devrait envoyer vos journaux à Logstash sur votre serveur ELK. Logstash devrait charger les données Topbeat dans Elasticsearch dans un index daté, + topbeat-YYYY.MM.DD +.

Sur votre * ELK Server *, vérifiez qu’Elasticsearch reçoit effectivement les données en interrogeant l’index Topbeat à l’aide de cette commande:

curl -XGET 'http://localhost:9200/topbeat-*/_search?pretty'

Vous devriez voir un paquet de sortie qui ressemble à ceci:

Sample Output:{
     "_index" : "topbeat-2016.02.01",
     "_type" : "process",
     "_id" : "AVKeLSdP4HKUFv4CjZ7K",
     "_score" : 1.0,
     "_source":{"@timestamp":"2016-02-01T18:51:43.937Z","beat":{"hostname":"topbeat-01","name":"topbeat-01"},"count":1,"proc":{"cpu":{"user":0,"user_p":0,"system":50,"total":50,"start_time":"12:54"},"mem":{"size":0,"rss":0,"rss_p":0,"share":0},"name":"jbd2/vda1-8","pid":125,"ppid":2,"state":"sleeping"},"type":"process","@version":"1","host":"topbeat-01"}
}

Si votre sortie affiche un total de 0 occurrences, Elasticsearch ne charge aucune donnée Topbeat dans l’index recherché et vous devez vérifier si votre configuration contient des erreurs. Si vous avez reçu le résultat attendu, passez à l’étape suivante.

Se connecter à Kibana

Lorsque vous avez terminé de configurer Topbeat sur tous les serveurs pour lesquels vous souhaitez collecter des statistiques système, examinons Kibana.

Dans un navigateur Web, accédez au nom de domaine complet ou à l’adresse IP publique de votre serveur ELK. Après avoir saisi les informations d’identification de votre serveur ELK, vous devriez voir votre page Kibana Discover.

Allez-y et sélectionnez * [top best] -YYYY.MM.DD * dans le menu Pattern Patterns (à gauche) pour afficher vos données Topbeat dans la vue Découvrir:

image: https: //assets.digitalocean.com/articles/elk/topbeat-index-select.gif [Sélectionnez le modèle d’index de pulsation]

Ici, vous pouvez rechercher et explorer vos différentes entrées Topbeat.

Ensuite, vous souhaiterez consulter l’exemple de tableau de bord Topbeat que nous avons chargé précédemment. Cliquez sur * Tableau de bord * (en haut), puis cliquez sur l’icône * Charger le tableau de bord enregistré *. Accédez à la deuxième page des tableaux de bord, puis cliquez sur * Topbeat-Dashboard *:

image: https: //assets.digitalocean.com/articles/elk/topbeat-view-dashboard.gif [Afficher l’exemple du tableau de bord Topbeat]

Ici, vous verrez une variété de métriques collectées à partir de vos serveurs clients sur lesquels vous avez installé Topbeat.

Conclusion

Maintenant que les métriques de votre système sont centralisées via Elasticsearch et Logstash et que vous pouvez les visualiser avec Kibana, vous devriez pouvoir voir en un coup d’œil ce que vos serveurs font. Bonne chance!

Related