Dela via


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

  • 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.

Skärmbild som visar Kibana-konsolen och markerar knappen Skapa.

Välj Utforska på Kibana-konsolen och sök, bläddra och filtrera syslog-händelserna.

Bläddra i Syslog-händelser i Kibana

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