Si applica a: ✔️ macchine virtuali di Linux ✔️ set di scalabilità flessibili
Questo articolo descrive la procedura per distribuire Elasticsearch, Logstash e Kibana in una macchina virtuale Ubuntu in Azure. Per visualizzare Elastic Stack in azione, è possibile connettersi a Kibana e usare alcuni dati di registrazione di esempio.
È anche possibile seguire il modulo Deploy Elastic on Azure Macchine virtuali (Distribuisci elastico in Azure Macchine virtuali) per un'esercitazione più guidata sulla distribuzione di Elastic in Azure Macchine virtuali.
In questa esercitazione si apprenderà come:
- Creare una macchina virtuale Ubuntu in un gruppo di risorse di Azure
- Installare Elasticsearch, Logstash e Kibana nella macchina virtuale
- Inviare dati di esempio a Elasticsearch con Logstash
- Aprire le porte e usare dati della console Kibana
Questa distribuzione è adatta per lo sviluppo di base con lo Elastic Stack. Per altre informazioni su Elastic Stack, incluse le raccomandazioni per un ambiente di produzione, vedere la documentazione di Elastic e il Centro architetture Azure.
- Questo articolo richiede l'interfaccia della riga di comando di Azure versione 2.0.4 o successiva. Se si usa Azure Cloud Shell, la versione più recente è già installata.
Creare un gruppo di risorse
Creare un gruppo di risorse con il comando az group create. Un gruppo di risorse di Azure è un contenitore logico in cui le risorse di Azure vengono distribuite e gestite.
L'esempio seguente crea un gruppo di risorse denominato myResourceGroup nella località stati uniti orientali.
az group create --name myResourceGroup --location eastus
Creare una macchina virtuale
Creare una VM con il comando az vm create.
L'esempio seguente crea una macchina virtuale denominata myVM e le chiavi SSH, se non esistono già in un percorso predefinito. Per usare un set specifico di chiavi, utilizzare l'opzione --ssh-key-value
.
az vm create \
--resource-group myResourceGroup \
--name myVM \
--image Ubuntu2204 \
--admin-username azureuser \
--generate-ssh-keys
Dopo che la VM è stata creata, l'interfaccia della riga di comando di Azure mostra informazioni simili all'esempio seguente. Prendere nota di publicIpAddress
. Questo indirizzo viene usato per accedere alla VM.
{
"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"
}
Usare SSH per connettersi alla macchina virtuale
Se non si conosce già l'indirizzo IP pubblico della VM, eseguire il comando az network public-ip list:
az network public-ip list --resource-group myResourceGroup --query [].ipAddress
Usare il comando seguente per creare una sessione SSH con la macchina virtuale. Sostituire l'indirizzo IP pubblico corretto della macchina virtuale. In questo esempio l'indirizzo IP è 40.68.254.142.
ssh azureuser@40.68.254.142
Importare la chiave di firma di Elasticsearch e aggiornare l'elenco di origini APT in modo da includere il repository dei pacchetti Elastic:
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
Installare Java Virtual Machine nella macchina virtuale e configurare la variabile JAVA_HOME. Questa operazione è necessaria per l'esecuzione dei componenti di Elastic Stack.
sudo apt update && sudo apt install openjdk-8-jre-headless
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
Eseguire i comandi seguenti per aggiornare le origini dei pacchetti Ubuntu e installare Elasticsearch, Kibana e Logstash.
sudo apt update && sudo apt install elasticsearch kibana logstash
Nota
Per istruzioni di installazione dettagliate, inclusi i layout di directory e la configurazione iniziale, vedere la documentazione di Elastic
Avviare Elasticsearch nella macchina virtuale con il comando seguente:
sudo systemctl start elasticsearch.service
Questo comando non genera alcun output. Verificare quindi che Elasticsearch sia in esecuzione sulla macchina virtuale con questo comando curl
:
sudo curl -XGET 'localhost:9200/'
Se Elasticsearch è in esecuzione, viene visualizzato un output simile al seguente:
{
"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"
}
Avviare Logstash e aggiungere dati a Elasticsearch
Avviare Logstash con il comando seguente:
sudo systemctl start logstash.service
Testare Logstash in modalità interattiva per verificare che funzioni correttamente:
sudo /usr/share/logstash/bin/logstash -e 'input { stdin { } } output { stdout {} }'
Si tratta di una pipeline Logstash di base che restituisce l'input standard all'output standard.
The stdin plugin is now waiting for input:
hello azure
2017-10-11T20:01:08.904Z myVM hello azure
Impostare LogStash per inoltrare i messaggi del kernel dalla macchina virtuale a Elasticsearch. Creare un nuovo file in una directory vuota denominata vm-syslog-logstash.conf
e incollare nel file la configurazione di Logstash seguente:
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"
}
}
Testare la configurazione e inviare i dati Syslog a Elasticsearch:
sudo /usr/share/logstash/bin/logstash -f vm-syslog-logstash.conf
Si osserverà come le voci di Syslog nel terminal vengano restituite dopo essere state inviate a Elasticsearch. Usare CTRL+C
per uscire da Logstash dopo aver inviato alcuni dati.
Avviare Kibana e visualizzare i dati in Elasticsearch
Modificare /etc/kibana/kibana.yml
e cambiare l'indirizzo IP su cui è in ascolto Kibana in modo da poter accedervi dal Web browser.
server.host: "0.0.0.0"
Avviare Kibana con il comando seguente:
sudo systemctl start kibana.service
Aprire la porta 5601 dall'interfaccia della riga di comando di Azure per consentire l'accesso remoto alla console Kibana:
az vm open-port --port 5601 --resource-group myResourceGroup --name myVM
Aprire la console Kibana e selezionare Crea per generare un indice predefinito in base ai dati Syslog precedentemente inviati a Elasticsearch.

Selezionare Individua nella console Kibana per cercare, esplorare e filtrare eventi Syslog.

In questa esercitazione è stato distribuito Elastic Stack in un macchina virtuale di sviluppo in Azure. Contenuto del modulo:
- Creare una macchina virtuale Ubuntu in un gruppo di risorse di Azure
- Installare Elasticsearch, Logstash e Kibana nella macchina virtuale
- Inviare dati di esempio a Elasticsearch da Logstash
- Aprire le porte e usare dati della console Kibana