Comment rassembler des métriques d’infrastructure avec Topbeat et ELK sur CentOS 7

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. En conjonction avec un serveur ELK (Elasticsearch, Logstash et Kibana), les données collectées par Topbeat peuvent être utilisées pour visualiser facilement les métriques de sorte que vous puissiez voir le statut de vos serveurs dans un emplacement centralisé.

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 CentOS 7.

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-centos. -7 [Comment installer Elasticsearch, Logstash et Kibana sur CentOS 7]. Si vous ne possédez pas déjà de serveur ELK, veuillez terminer le didacticiel lié avant de continuer.

Nous supposerons également qu’outre le serveur ELK, vous souhaitez collecter au moins un serveur client CentOS 7 à 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 yum -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 CentOS ou Red Hat 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 Ubuntu ou Debian Linux, reportez-vous à la https://www.digitalocean.com/community/tutorials/how-to-gather-infrastructure-metrics-with-topbeat-and-elk-on-ubuntu -14-04 [Variation Ubuntu 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 allons maintenant installer le paquet Topbeat.

Installer le paquet Topbeat

Sur * Client Server *, créez la commande suivante pour importer la clé GPG publique Elasticsearch dans rpm:

sudo rpm --import http://packages.elastic.co/GPG-KEY-elasticsearch

Créez et éditez un nouveau fichier de référentiel yum pour Filebeat:

sudo vi /etc/yum.repos.d/elastic-beats.repo

Assurez-vous que ces lignes existent (collez-les si elles ne sont pas déjà présentes):

/etc/yum.repos.d/elastic-beats.repo

[beats]
name=Elastic Beats Repository
baseurl=https://packages.elastic.co/beats/yum/el/$basearch
enabled=1
gpgkey=https://packages.elastic.co/GPG-KEY-elasticsearch
gpgcheck=1

Sauvegarder et quitter.

Installez Topbeat avec cette commande:

sudo yum -y install topbeat

Topbeat est maintenant installé mais pas encore configuré.

Configurer Topbeat

Nous allons maintenant configurer Topbeat pour se connecter à Logstash sur notre serveur ELK. Cette section explique en détail comment modifier le 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 systemctl restart topbeat
sudo systemctl enable topbeat

Là encore, si vous n’êtes pas sûr que votre configuration Topbeat est correcte, comparez-la à cette exemple de 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 * [topbeat] -YYY.MM.DD * dans le menu Patterns d’indexation (à 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