Installera Elastic Stack (ELK) på en virtuell Azure-dator
Gäller för: ✔️ Flexibla skalningsuppsättningar för virtuella Linux-datorer ✔️
Den här artikeln beskriver hur du installerar Elasticsearch, Logstash och Kibana på en virtuell dator med Ubuntu i Azure. Om du vill se hur Elastic Stack fungerar i praktiken kan du ansluta till Kibana och arbeta med en del exempeldata.
Dessutom kan du följa modulen Deploy Elastic on Azure Virtual Machines (Distribuera elastica på virtuella Azure-datorer) för en mer guidad självstudie om hur du distribuerar Elastic på Azure Virtual Machines.
I den här självstudiekursen får du lära du dig att:
- Skapa en virtuell dator med Ubuntu i en Azure-resursgrupp
- Installera Elasticsearch, Logstash och Kibana på den virtuella datorn
- Skicka exempeldata till Elasticsearch med Logstash
- Öppna portar och arbeta med data i Kibana-konsolen
Denna installation är lämplig för grundläggande utveckling med Elastic Stack. Mer information om Elastic Stack samt rekommendationer för en produktionsmiljö finns i Elastic-dokumentationen och Azure Architecture Center.
Förutsättningar
Använd Bash-miljön i Azure Cloud Shell. Mer information finns i Snabbstart för Bash i Azure Cloud Shell.
Om du föredrar att köra CLI-referenskommandon lokalt installerar du Azure CLI. Om du kör i Windows eller macOS kan du köra Azure CLI i en Docker-container. Mer information finns i Så här kör du Azure CLI i en Docker-container.
Om du använder en lokal installation loggar du in på Azure CLI med hjälp av kommandot az login. Slutför autentiseringsprocessen genom att följa stegen som visas i terminalen. Andra inloggningsalternativ finns i Logga in med Azure CLI.
När du uppmanas att installera Azure CLI-tillägget vid första användningen. Mer information om tillägg finns i Använda tillägg med Azure CLI.
Kör az version om du vill hitta versionen och de beroende bibliotek som är installerade. Om du vill uppgradera till den senaste versionen kör du az upgrade.
- Den här artikeln kräver version 2.0.4 eller senare av Azure CLI. Om du använder Azure Cloud Shell är den senaste versionen redan installerad.
Skapa en resursgrupp
Skapa en resursgrupp med kommandot az group create. En Azure-resursgrupp är en logisk container där Azure-resurser distribueras och hanteras.
I följande exempel skapas en resursgrupp med namnet myResourceGroup i regionen eastus.
az group create --name myResourceGroup --location eastus
Skapa en virtuell dator
Skapa en virtuell dator med kommandot az vm create.
Följande exempel skapar en virtuell dator som heter myVM, och SSH-nycklar skapas om de inte redan finns på en standardnyckelplats. Om du vill använda en specifik uppsättning nycklar använder du alternativet --ssh-key-value
.
az vm create \
--resource-group myResourceGroup \
--name myVM \
--image Ubuntu2204 \
--admin-username azureuser \
--generate-ssh-keys
När den virtuella datorn har skapats visar Azure CLI information som ser ut ungefär som i följande exempel. Anteckna publicIpAddress
. Den här adressen används för att få åtkomst till den virtuella datorn.
{
"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"
}
SSH till den virtuella datorn
Om du inte vet den offentliga IP-adressen för den virtuella datorn kör du kommandot az network public-ip list:
az network public-ip list --resource-group myResourceGroup --query [].ipAddress
Använd följande kommando för att skapa en SSH-session med den virtuella datorn. Ersätt med den korrekta offentliga IP-adressen för den virtuella datorn. I det här exemplet är IP-adressen 40.68.254.142.
ssh azureuser@40.68.254.142
Installera Elastic Stack
Importera signeringsnyckeln för Elasticsearch och uppdatera APT-källistan så den innehåller paketdatabasen för 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
Installera Java Virtual Machine på den virtuella datorn och konfigurera variabeln JAVA_HOME – Elastic Stack-komponenterna behöver detta för att kunna köras.
sudo apt update && sudo apt install openjdk-8-jre-headless
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
Kör följande kommandon för att uppdatera Ubuntu-paketkällorna och installera Elasticsearch, Kibana och Logstash.
sudo apt update && sudo apt install elasticsearch kibana logstash
Kommentar
Detaljerade installationsanvisningar, inklusive katalogstrukturer och inledande konfiguration finns i Elastics dokumentation
Starta Elasticsearch
Starta Elasticsearch på den virtuella datorn med följande kommando:
sudo systemctl start elasticsearch.service
Detta kommando genererar inga utdata. Du kontrollerar därför att Elasticsearch körs på den virtuella datorn med detta curl
-kommando:
sudo curl -XGET 'localhost:9200/'
Om Elasticsearch körs ser du utdata som liknar dessa:
{
"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"
}
Starta Logstash och lägga till data i Elasticsearch
Starta Logstash med följande kommando:
sudo systemctl start logstash.service
Testa Logstash i interaktivt läge och kontrollera att det fungerar korrekt:
sudo /usr/share/logstash/bin/logstash -e 'input { stdin { } } output { stdout {} }'
Det här är en grundläggande Logstash-pipeline som ekar standardindata till standardutdata.
The stdin plugin is now waiting for input:
hello azure
2017-10-11T20:01:08.904Z myVM hello azure
Konfigurera Logstash så att kernel-meddelanden från den här virtuella dator skickas till Elasticsearch. Skapa en ny fil i en tom katalog med namnet vm-syslog-logstash.conf
och klistra in följande Logstash-konfiguration:
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"
}
}
Testa denna konfiguration och skicka syslog-data till Elasticsearch:
sudo /usr/share/logstash/bin/logstash -f vm-syslog-logstash.conf
Syslog-posterna visas i terminalen allteftersom de skickas till Elasticsearch. Använd CTRL+C
och lämna Logstash när du skickat lite data.
Starta Kibana och visualisera data i Elasticsearch
Redigera /etc/kibana/kibana.yml
och ändra IP-adressen som Kibana lyssnar på så att du kommer åt den från webbläsaren.
server.host: "0.0.0.0"
Starta Kibana med följande kommando:
sudo systemctl start kibana.service
Öppna port 5601 från Azure CLI och tillåt fjärråtkomst till Kibana-konsolen:
az vm open-port --port 5601 --resource-group myResourceGroup --name myVM
Öppna Kibana-konsolen och välj Skapa för att generera ett standardindex baserat på de syslog-data som skickades till Elasticsearch tidigare.
Välj Utforska på Kibana-konsolen och sök, bläddra och filtrera syslog-händelserna.
Nästa steg
I den här självstudien installerade du Elastic Stack på en virtuell utvecklingsdator i Azure. Du har lärt dig att:
- Skapa en virtuell dator med Ubuntu i en Azure-resursgrupp
- Installera Elasticsearch, Logstash och Kibana på den virtuella datorn
- Skicka exempeldata till Elasticsearch från Logstash
- Öppna portar och arbeta med data i Kibana-konsolen