Installer Elastic Stack (ELK) sur une machine virtuelle Azure
S’applique à : ✔️ Machines virtuelles Linux ✔️ Groupes identiques flexibles
Cet article vous guide dans le déploiement d’Elasticsearch, de Logstash et de Kibana sur une machine virtuelle Ubuntu dans Azure. Pour voir Elastic Stack en action, vous pouvez éventuellement vous connecter à Kibana et travailler avec des exemples de données de journalisation.
Vous pouvez également suivre le module Déployer Elastic sur des machines virtuelles Azure pour avoir un tutoriel plus détaillé sur le déploiement d’Elastic sur des machines virtuelles Azure.
Ce didacticiel vous montre comment effectuer les opérations suivantes :
- Créer une machine virtuelle Ubuntu dans un groupe de ressources Azure
- Installer Elasticsearch, Logstash et Kibana sur la machine virtuelle
- Envoyer des exemples de données à Elasticsearch avec Logstash
- Ouvrir des ports et manipuler des données dans la console Kibana
Ce déploiement convient pour le développement de base avec Elastic Stack. Pour plus d’informations sur Elastic Stack, notamment des recommandations pour un environnement de production, voir la documentation d’Elastic et Azure Architecture Center.
Prérequis
Utilisez l’environnement Bash dans Azure Cloud Shell. Pour plus d’informations, consultez Démarrage rapide pour Bash dans Azure Cloud Shell.
Si vous préférez exécuter les commandes de référence de l’interface de ligne de commande localement, installez l’interface Azure CLI. Si vous exécutez sur Windows ou macOS, envisagez d’exécuter Azure CLI dans un conteneur Docker. Pour plus d’informations, consultez Guide pratique pour exécuter Azure CLI dans un conteneur Docker.
Si vous utilisez une installation locale, connectez-vous à Azure CLI à l’aide de la commande az login. Pour finir le processus d’authentification, suivez les étapes affichées dans votre terminal. Pour connaître les autres options de connexion, consultez Se connecter avec Azure CLI.
Lorsque vous y êtes invité, installez l’extension Azure CLI lors de la première utilisation. Pour plus d’informations sur les extensions, consultez Utiliser des extensions avec Azure CLI.
Exécutez az version pour rechercher la version et les bibliothèques dépendantes installées. Pour effectuer une mise à niveau vers la dernière version, exécutez az upgrade.
- Cet article nécessite la version 2.0.4 ou ultérieure de l’interface Azure CLI. Si vous utilisez Azure Cloud Shell, la version la plus récente est déjà installée.
Créer un groupe de ressources
Créez un groupe de ressources avec la commande az group create. Un groupe de ressources Azure est un conteneur logique dans lequel les ressources Azure sont déployées et gérées.
L’exemple suivant crée un groupe de ressources nommé myResourceGroup à l’emplacement eastus.
az group create --name myResourceGroup --location eastus
Création d'une machine virtuelle
Créez une machine virtuelle avec la commande az vm create.
L’exemple suivant crée une machine virtuelle nommée myVM et des clés SSH si elles n’existent pas déjà dans un emplacement de clé par défaut. Pour utiliser un ensemble spécifique de clés, utilisez l’option --ssh-key-value
.
az vm create \
--resource-group myResourceGroup \
--name myVM \
--image Ubuntu2204 \
--admin-username azureuser \
--generate-ssh-keys
Lorsque la machine virtuelle a été créée, l’interface de ligne de commande Azure affiche des informations similaires à l’exemple suivant. Notez la valeur de publicIpAddress
. Cette adresse est utilisée pour accéder à la machine virtuelle.
{
"fqdns": "",
"id": "/subscriptions/<subscription ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM",
"location": "eastus",
"macAddress": "00-0D-3A-23-9A-49",
"powerState": "VM running",
"privateIpAddress": "10.0.0.4",
"publicIpAddress": "40.68.254.142",
"resourceGroup": "myResourceGroup"
}
Se connecter avec SSH à votre machine virtuelle
Pour trouver l’adresse IP publique de votre machine virtuelle, exécutez la commande az network public-ip list :
az network public-ip list --resource-group myResourceGroup --query [].ipAddress
Utilisez la commande suivante pour créer une session SSH avec la machine virtuelle. Remplacez l’adresse IP publique correcte de votre machine virtuelle. Dans cet exemple, l’adresse IP est 40.68.254.142.
ssh azureuser@40.68.254.142
Installer Elastic Stack
Importez la clé de signature d’Elasticsearch et mettez à jour votre liste de sources APT pour inclure le référentiel de packages élastique :
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
echo "deb https://artifacts.elastic.co/packages/5.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-5.x.list
Installez Java sur la machine virtuelle, puis configurez la variable JAVA_HOME. Cela est nécessaire pour l’exécution des composants Elastic Stack.
sudo apt update && sudo apt install openjdk-8-jre-headless
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
Exécutez les commandes suivantes pour mettre à jour les sources de package Ubuntu et installer Elasticsearch, Kibana et Logstash.
sudo apt update && sudo apt install elasticsearch kibana logstash
Notes
Des instructions d’installation détaillées, notamment concernant les dispositions de répertoire et la configuration initiale, figurent dans la documentation d’Elastic.
Démarrer Elasticsearch
Démarrez Elasticsearch sur votre machine virtuelle avec la commande suivante :
sudo systemctl start elasticsearch.service
Cette commande ne générant aucune sortie, vérifiez qu’Elasticsearch est bien en cours d’exécution sur la machine virtuelle en utilisant la commande curl
suivante :
sudo curl -XGET 'localhost:9200/'
Si Elasticsearch est en cours d’exécution, vous voyez une sortie telle que celle-ci :
{
"name" : "w6Z4NwR",
"cluster_name" : "elasticsearch",
"cluster_uuid" : "SDzCajBoSK2EkXmHvJVaDQ",
"version" : {
"number" : "5.6.3",
"build_hash" : "1a2f265",
"build_date" : "2017-10-06T20:33:39.012Z",
"build_snapshot" : false,
"lucene_version" : "6.6.1"
},
"tagline" : "You Know, for Search"
}
Démarrer Logstash et ajouter des données à Elasticsearch
Démarrez Logstash avec la commande suivante :
sudo systemctl start logstash.service
Testez Logstash en mode interactif pour vérifier qu’il fonctionne correctement :
sudo /usr/share/logstash/bin/logstash -e 'input { stdin { } } output { stdout {} }'
Voici un pipeline Logstash de base, qui renvoie une entrée standard en écho à la sortie standard.
The stdin plugin is now waiting for input:
hello azure
2017-10-11T20:01:08.904Z myVM hello azure
Configurez Logstash pour transférer les messages du noyau de cet machine virtuelle vers Elasticsearch. Créez un fichier dans un répertoire vide nommé vm-syslog-logstash.conf
, puis collez-y la configuration de Logstash suivante :
input {
stdin {
type => "stdin-type"
}
file {
type => "syslog"
path => [ "/var/log/*.log", "/var/log/*/*.log", "/var/log/messages", "/var/log/syslog" ]
start_position => "beginning"
}
}
output {
stdout {
codec => rubydebug
}
elasticsearch {
hosts => "localhost:9200"
}
}
Testez cette configuration et envoyez les données syslog à Elasticsearch :
sudo /usr/share/logstash/bin/logstash -f vm-syslog-logstash.conf
Votre terminal affiche un écho des entrées syslog à mesure que celles-ci sont envoyées à Elasticsearch. Utilisez CTRL+C
pour quitter Logstash après avoir envoyé des données.
Démarrer Kibana et visualiser les données dans Elasticsearch
Modifiez /etc/kibana/kibana.yml
, puis modifiez l’adresse IP que Kibana écoute de façon à pouvoir y accéder à partir de votre navigateur web.
server.host: "0.0.0.0"
Démarrez Kibana avec la commande suivante :
sudo systemctl start kibana.service
Ouvrez le port 5601 à partir d’Azure CLI pour autoriser l’accès à distance à la console Kibana :
az vm open-port --port 5601 --resource-group myResourceGroup --name myVM
Ouvrez la console Kibana, puis sélectionnez Créer pour générer un index par défaut basé sur les données syslog que vous avez envoyées à Elasticsearch.
Sur la console Kibana, sélectionnez Découvrir pour rechercher, parcourir et filtrer les événements syslog.
Étapes suivantes
Dans ce didacticiel, vous avez déployé Elastic Stack sur une machine virtuelle de développement dans Azure. Vous avez appris à :
- Créer une machine virtuelle Ubuntu dans un groupe de ressources Azure
- Installer Elasticsearch, Logstash et Kibana sur la machine virtuelle
- Envoyer des exemples de données à Elasticsearch avec Logstash
- Ouvrir des ports et manipuler des données dans la console Kibana