
Introduction
Code sur Github: Elasticsearch et Beats
Nous allons installer Pulsation avec Elasticsearch et Kibana. Si vous n'avez pas encore configuré Elasticsearch et Kibana,suivez ces instructions.
Cette vidéo suppose que vous utilisez Certificats signés publiquement. Si vous utilisez Certificats auto-signés, va ici À déterminer.
Exigences
Une instance en cours d'exécution d'Elasticsearch et de Kibana.
Une instance d’un autre serveur Ubuntu 20.04 exécutant n’importe quel type de service.
Mesures
Étape 1 - Télécharger Heartbeat [01:12]
Sur la machine Ubuntu qui exécutera packetbeat, 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;
sudo apt-get install -y apt-transport-https;
echo 'deb [signed-by=/usr/share/keyrings/elasticsearch-keyring.gpg] https://artifacts.elastic.co/packages/8.x/apt stable main' | sudo tee /etc/apt/sources.list.d/elastic-8.x.list;
sudo apt-get update && sudo apt-get install -y heartbeat-elastic;
Étape 2 - Configurer Heartbeat [02:21]
Modifiez ces champs pour le /etc/heartbeat/heartbeat.yml
.
heartbeat.monitors:
- type: http
# ID used to uniquely identify this monitor in elasticsearch even if the config changes
id: apache-website
# Human readable display name for this service in Uptime UI and elsewhere
name: Apache Website
# List or urls to query
urls: ["<url>"] #["http://192.168.0.60"]
# Configure task schedule
schedule: '@every 5s'
# Total test connection and data exchange timeout
#timeout: 16s
# Name of corresponding APM service, if Elastic APM is in use for the monitored service.
#service.name: my-apm-service-name
- type: http
# ID used to uniquely identify this monitor in elasticsearch even if the config changes
id: elastic-rest
# Human readable display name for this service in Uptime UI and elsewhere
name: Elastic Rest
# List or urls to query
urls: ["<elasticsearch-domain>:<elasticsearch-port>"]
username: 'elastic'
password: "<your elastic password>"
# Configure task schedule
schedule: '@every 5s'
setup.kibana:
host: "https://<kibana-domain>:<kibana-port>"
output.elasticsearch:
hosts: ["<elasticsearch-domain>:<elasticsearch-port>"]
protocol: "https"
username: "elastic"
password: "<your elastic password>"
Le fichier heartbeat.yml complété peut être trouvé ici
IMPORTANT : nous utilisons le superutilisateur Elastic pour la configuration initiale. Nous rétrograderons ces privilèges ultérieurement.
Testez ensuite votre configuration avec ces commandes :
/usr/share/heartbeat/bin/heartbeat test config -c /etc/heartbeat/heartbeat.yml --path.data /var/lib/heartbeat --path.home /usr/share/heartbeat
/usr/share/heartbeat/bin/heartbeat test output -c /etc/heartbeat/heartbeat.yml --path.data /var/lib/heartbeat --path.home /usr/share/heartbeat
Vous devriez voir quelque chose comme ceci :
Vérifier la configuration du rythme cardiaque
Étape 3 - Configuration de Heartbeat [12:48]
Exécutez maintenant cette commande pour configurer les flux de données et les vues Heartbeat dans Elasticsearch et Kibana :
/usr/share/heartbeat/bin/heartbeat setup -c /etc/heartbeat/heartbeat.yml --path.data /var/lib/heartbeat --path.home /usr/share/heartbeat
Une fois la commande terminée, allez sur Kibana Menu et visiter Observabilité > Présentation pour voir une section Moniteur.
Étape 4 - Créer un utilisateur de publication [14:53]
Créer une vue de données Heartbeat [16:18]
À Kibana, allez à Gestion de la pile > Vues de données. Cliquez sur Créer des vues de données et remplissez les champs suivants :
name: heartbeat-*
index: heartbeat-*
Timestamp field: @timestamp
puis cliquez sur enregistrer la vue des données sur Kibana
Créer un rôle
À Kibana, allez à Gestion de la pile > Rôles > Créer un rôle. Remplissez ensuite ces champs :
Role name: heartbeat-publisher
Cluster privileges: monitor, read_ilm
Indices: heartbeat-*
Privileges: create_doc
Créer un utilisateur
À Kibana, allez à Gestion de la pile > Utilisateurs > Créer un utilisateur. Remplissez ensuite ces champs :
Username: heartbeat-publisher
Full name: heartbeat-publisher
Email address: anything@anything.com
Password: anything
Roles: heartbeat-publisher, editor
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": "heartbeat-publisher",
"password": "anything",
"api_key": {
"name": "heartbeat-publisher"
}
}
Cela devrait produire un résultat comme :
Jeton utilisateur Heartbeat
Modifier le /etc/heartbeat/heartbeat.yml
en commentant le elastic
nom d'utilisateur et mot de passe et activation du api_key
comme ça:
output.elasticsearch:
...etc...
api_key: "${ES_API_KEY}"
#username: "elastic"
#password: ""
...etc...
Nous allons utiliser le keystore Heartbeat 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/heartbeat/bin/heartbeat keystore add ES_API_KEY -c /etc/heartbeat/heartbeat.yml --path.data /var/lib/heartbeat --path.home /usr/share/heartbeat
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 5 - Exécuter Heartbeat [17:37]
systemctl enable heartbeat-elastic;
systemctl start heartbeat-elastic;
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 > Observabilité > Moniteurs.
Étape 6 - Configurer un autre moniteur sans avoir à recharger Heartbeat [26:15]
Sur le terminal, accédez à
cd /etc/heartbeat/monitors.d
puis copiez l'un des modèles désactivés
cp sample.html.yml.disabled html.yml.disabled
Ouvrir le fichier
vi html.yml.disabled
Cela devrait ressembler à ceci :
Nouveau moniteur http Heartbeat
Et ensuite, apportez les modifications correspondantes
id: Any id
name: Any name
schedule: Any type of schdule, though i will use cron as an example
hosts: ["<the monitor url>]
L'image ci-dessous montre un exemple :
Exemple de nouveau moniteur http Heartbeat
Maintenant, pour l'activer, nous pouvons utiliser la commande ci-dessous
cp html.yml.disabled html.yml
Étape 7 - Configurer un deuxième observateur [28:24]
Sur un autre serveur/machine, suivez l'étape 1, puis continuez avec les commandes pour copier les fichiers du premier serveur vers ce nouveau/actuel serveur comme indiqué dans l'image ci-dessous :
Heartbeat Second Observer pour copier les fichiers du serveur d'origine vers le serveur actuel
et ensuite éditer ces champs pour le /etc/heartbeat/heartbeat.yml
Ci-dessous, un exemple d'image :
Modifications du fichier heartbeat.yml de Heartbeat Second Observer
Nous allons utiliser le keystore Heartbeat 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/heartbeat/bin/heartbeat keystore add ES_API_KEY -c /etc/heartbeat/heartbeat.yml --path.data /var/lib/heartbeat --path.home /usr/share/heartbeat
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.
Exécutez maintenant Heartbeat
systemctl enable heartbeat-elastic.service;
systemctl start heartbeat-elastic.service;