
Introduction
Nous allons installer Metricbeat avec Elasticsearch et Kibana 9.x. Si vous n'avez pas encore configuré Elasticsearch et Kibana,suivez ces instructions.
Télécharger le code depuis github
Sur cette base documentation
Exigences
A Running instance of Elasticsearch and Kibana.
Une instance d'un autre serveur Ubuntu 24.04 exécutant n'importe quel type de service.
Mesures
Étape 1 - Installer Metricbeat
Sur la machine Ubuntu qui exécutera metricbeat, exécutez ces commandes pour télécharger les dépendances :
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo gpg --dearmor -o /usr/share/keyrings/elasticsearch-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/elasticsearch-keyring.gpg] https://artifacts.elastic.co/packages/9.x/apt stable main" | sudo tee /etc/apt/sources.list.d/elastic-9.x.list
apt-get update;
apt-get install -y apt-transport-https;
apt-get install -y metricbeat;
Étape 2 - Activer les modules
Aller à la /etc/metricbeat/modules.d
répertoire. Sélectionnez les types de journaux pour lesquels vous souhaitez activer la journalisation en renommant le répertoire correspondant.*.yml.disabled
à *.yml
. Pour certains de ces services, vous devrez peut-être ajouter le enabled: true
option à la *.yml
fichier ainsi que saisir les détails de connexion et de configuration appropriés.
Étape 3 - Créer un rôle de configuration
Référence pour le rôle de configuration
À Kibana, allez à Gestion de la pile > Rôles > Créer un rôle. Remplissez ensuite ces champs :
Role name: metricbeat_setup
Cluster privileges: monitor manage_ilm
Indices: metricbeat-*
Privileges: manage
Étape 4 - Créer un utilisateur Metricbeat
À Kibana, allez à Gestion de la pile > Utilisateurs > Créer un utilisateur. Remplissez ensuite ces champs :
Username: metricbeat_user
Full name: metricbeat_user
Email address: anything@anything.com
Password: anything
Roles: metricbeat_setup kibana_admin ingest_admin
Appuyez sur Enregistrer.
Étape 5 - Configurer Metricbeat
Modifiez ces champs pour le /etc/metricbeat.yml
setup.kibana:
host: "https://<kibana-domain>:<kibana-port>"
ssl.certificate_authorities: ["/path/to/http_ca.crt"]
output.elasticsearch:
hosts: ["<elasticsearch-domain-or-ip>:<elasticsearch-port>"]
protocol: "https"
username: "metricbeat_user"
password: "<your metricbeat_user password>"
ssl.certificate_authorities: ["/path/to/http_ca.crt"]
setup.ilm.check_exists: false
Le fichier metricbeat.yml complété peut être trouvé ici.
IMPORTANT : nous utilisons l'utilisateur « configuration » pour la configuration initiale. Nous modifierons les privilèges ultérieurement.
Testez ensuite votre configuration avec ces commandes :
/usr/share/metricbeat/bin/metricbeat test config -c /etc/metricbeat/metricbeat.yml --path.data /var/lib/metricbeat --path.home /usr/share/metricbeat
/usr/share/metricbeat/bin/metricbeat test output -c /etc/metricbeat/metricbeat.yml --path.data /var/lib/metricbeat --path.home /usr/share/metricbeat
Confirmez que vous recevez des messages de réussite.
Étape 6 - Configuration de Metricbeat
Exécutez maintenant cette commande pour configurer les flux de données et les vues metricbeat dans Elasticsearch et Kibana :
/usr/share/metricbeat/bin/metricbeat setup -c /etc/metricbeat/metricbeat.yml --path.data /var/lib/metricbeat --path.home /usr/share/metricbeat
Une fois la commande terminée, allez sur Kibana Menu et visiter Tableau de bord pour voir de nombreux tableaux de bord pré-fabriqués.
Étape 7 – Créer un rôle de publication
Référence pour le rôle de publication
À Kibana, allez à Gestion de la pile > Rôles > Créer un rôle. Remplissez ensuite ces champs :
Role name: metricbeat_publisher
Cluster privileges: monitor read_ilm
Indices: metricbeat-*
Privileges: create_doc auto_configure
Étape 8 – Modifier le rôle de Metricbeat
Supprimer les rôles précédents pour metricbeat_user
et définissez simplement ceci :
Roles: metricbeat_publisher
Appuyez sur Enregistrer.
Créer une clé API pour l'utilisateur
À Kibana, allez à Outils de développement > Console. Exécutez ensuite cette commande :
POST /_security/api_key/grant
{
"grant_type": "password",
"username": "metricbeat_user",
"password": "anything",
"api_key": {
"name": "metricbeat_user"
}
}
Cela devrait produire un résultat comme :
{
"id": "J3oInZgBRvUg0VanE8wj",
"name": "metricbeat_user",
"api_key": "6Wwht52HgB-M8reGwXUM6g",
"encoded": "SjNvSW5aZ0JSdlVnMFZhbkU4d2o6Nld3aHQ1MkhnQi1NOHJlR3dYVU02Zw=="
}
Modifier le /etc/metricbeat/metricbeat.yml
en commentant le metricbeat_user
nom d'utilisateur et mot de passe et activation du api_key
comme ça:
output.elasticsearch:
...etc...
api_key: "${ES_API_KEY}"
#username: "metricbeat_user"
#password: ""
...etc...
Nous utiliserons le keystore Metricbeat pour charger les secrets à l'exécution. Exécutez maintenant cette commande pour définir ES_API_KEY
variable de magasin de clés :
/usr/share/metricbeat/bin/metricbeat keystore add ES_API_KEY -c /etc/metricbeat/metricbeat.yml --path.data /var/lib/metricbeat --path.home /usr/share/metricbeat
Presse entrer et lorsque vous y êtes invité, collez <id>:<api_key>
où le <id>
et le <api_key>
sont les valeurs de la réponse du jeton utilisateur que vous avez obtenue précédemment.
Étape 9 - Exécuter Metricbeat
systemctl enable metricbeat;
systemctl start metricbeat;
Dans un instant, vous devriez commencer à voir des résultats dans Kibana dans l'un ou l'autre Découvrir, Observabilité, Gestion de la pile > Gestion des index > Flux de données, Tableau de bord > Sélectionnez un tableau de bord Metricbeat.
Note finale
Chaque fois que vous activez un nouveau module dans modules.d
, tu dois courir systemctl restart metricbeat
. systemctl restart metricbeat
peut déclencher des actions en arrière-plan similaires à installation ce qui signifie que l'utilisateur dans votre metricbeat.yml
devrait avoir le installation privilèges mentionnés à l'étape 3. Si vous ne souhaitez pas exécuter manuellement systemctl restart metricbeat
après des changements dans le modules.d
répertoire, vous pouvez demander à Metricbeat de charger automatiquement les modules nouvellement activés en définissant cette propriété sur true
: metricbeat.config.modules.reload.enabled: true
. Encore une fois, assurez-vous que l'utilisateur dans metricbeat.yml
a le installation privilèges.