Delen via


De Elastic Stack (ELK) installeren op een Virtuele Azure-machine

Van toepassing op: ✔️ Flexibele schaalsets voor Linux-VM's ✔️

Dit artikel begeleidt u bij het implementeren van Elasticsearch, Logstash en Kibana op een Ubuntu-VM in Azure. Als u Elastic Stack in actie wilt zien, kunt u verbinding maken met Kibana en de voorbeeldlogboekgegevens gebruiken.

Daarnaast kunt u de module Elastic implementeren in Azure Virtual Machines volgen voor een meer begeleide zelfstudie over het implementeren van Elastic op Azure Virtual Machines.

In deze zelfstudie leert u het volgende:

  • Een Ubuntu-VM maken in een Azure-resourcegroep
  • Elasticsearch, Logstash en Kibana installeren op de virtuele machine
  • Voorbeeldgegevens met Logstash verzenden naar Elasticsearch
  • Poorten openen en met gegevens werken in de Kibana-console

Deze implementatie is geschikt voor basisontwikkeling met de Elastic Stack. Zie de Documentatie bij Elastic en het Azure Architecture Center voor meer informatie over de Elastic Stack, inclusief aanbevelingen voor een productie-omgeving.

Vereisten

  • Voor dit artikel is versie 2.0.4 of hoger van Azure CLI vereist. Als u Azure Cloud Shell gebruikt, is de nieuwste versie al geïnstalleerd.

Een brongroep maken

Een resourcegroep maken met de opdracht az group create. Een Azure-resourcegroep is een logische container waarin Azure-resources worden geïmplementeerd en beheerd.

In het volgende voorbeeld wordt een resourcegroep met de naam myResourceGroup gemaakt op de locatie VS - oost.

az group create --name myResourceGroup --location eastus

Maak een virtuele machine

Maak een VM met de opdracht az vm create.

In het volgende voorbeeld wordt een VM gemaakt met de naam myVM en worden er SSH-sleutels gemaakt, als deze nog niet bestaan op een standaardsleutellocatie. Als u een specifieke set sleutels wilt gebruiken, gebruikt u de optie --ssh-key-value.

az vm create \
    --resource-group myResourceGroup \
    --name myVM \
    --image Ubuntu2204 \
    --admin-username azureuser \
    --generate-ssh-keys

Wanneer de virtuele machine is gemaakt, toont de Azure CLI informatie die lijkt op de informatie in het volgende voorbeeld. Noteer het publicIpAddress. Dit adres wordt gebruikt voor toegang tot de virtuele machine.

{
  "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 in uw virtuele machine

Als u het openbare IP-adres van uw VM niet weet, voert u de opdracht az network public-ip list uit:

az network public-ip list --resource-group myResourceGroup --query [].ipAddress

Gebruik de volgende opdracht om een SSH-sessie te starten voor de virtuele machine. Gebruik hierbij het juiste openbare IP-adres van uw virtuele machine. In dit voorbeeld is het IP-adres 40.68.254.142.

ssh azureuser@40.68.254.142

De Elastic Stack installeren

Importeer de handtekeningsleutel van Elasticsearch en werk uw lijst met APT-bronnen bij zodat ook de opslagplaats voor Elastic-pakketten wordt opgenomen:

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

Installeer de Java Virtual Machine op de virtuele machine en configureer de variabele JAVA_HOME. Dit is nodig voor de uitvoering van de Elastic Stack-onderdelen.

sudo apt update && sudo apt install openjdk-8-jre-headless
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64

Voer de volgende opdrachten uit om bronnen van Ubuntu-pakketten bij te werken en Elasticsearch, Kibana en Logstash te installeren.

sudo apt update && sudo apt install elasticsearch kibana logstash   

Notitie

Gedetailleerde installatie-instructies, waaronder directory-indelingen en een eerste configuratie, worden bijgehouden in de documentatie van Elastic

Elasticsearch starten

Voer de volgende opdracht uit als u Elasticsearch op uw virtuele machine wilt starten:

sudo systemctl start elasticsearch.service

Deze opdracht produceert geen uitvoer. Controleer daarom met deze curl-opdracht of Elasticsearch op de virtuele machine wordt uitgevoerd:

sudo curl -XGET 'localhost:9200/'

Als Elasticsearch wordt uitgevoerd, ziet u ongeveer de volgende uitvoer:

{
  "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"
}

Logstash starten en gegevens toevoegen aan Elasticsearch

Start Logstash met de volgende opdracht:

sudo systemctl start logstash.service

Test Logstash in de interactieve modus om te controleren of het correct werkt:

sudo /usr/share/logstash/bin/logstash -e 'input { stdin { } } output { stdout {} }'

Dit is een eenvoudige Logstash-pijplijn die standaardinvoer naar standaarduitvoer echot.

The stdin plugin is now waiting for input:
hello azure
2017-10-11T20:01:08.904Z myVM hello azure

Stel Logstash in om de kernelberichten van deze virtuele machine door te sturen naar Elasticsearch. Maak een nieuw bestand in een lege map met de naam vm-syslog-logstash.conf en plak daarin de volgende Logstash-configuratie:

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"
    }
}

Test deze configuratie en stuur de syslog-gegevens naar Elasticsearch:

sudo /usr/share/logstash/bin/logstash -f vm-syslog-logstash.conf

De syslog-vermeldingen worden in uw terminal herhaald wanneer ze zijn verzonden naar Elasticsearch. Gebruik CTRL+C om Logstash af te sluiten nadat u wat gegevens hebt verzonden.

Kibana starten en de gegevens visualiseren in Elasticsearch

Bewerk /etc/kibana/kibana.yml en wijzig het IP-adres dat Kibana controleert, zodat u het vanuit de webbrowser kunt openen.

server.host: "0.0.0.0"

Start Kibana met de volgende opdracht:

sudo systemctl start kibana.service

Open poort 5601 vanuit de Azure CLI om externe toegang tot de Kibana-console toe te staan:

az vm open-port --port 5601 --resource-group myResourceGroup --name myVM

Open de Kibana-console en selecteer Create om een standaardindex te genereren op basis van de syslog-gegevens die u eerder naar Elasticsearch hebt verzonden.

Schermopname van de Kibana-console, met de knop Create gemarkeerd.

Selecteer Discover op de Kibana-console om syslog-gebeurtenissen te zoeken, te filteren of erdoorheen te bladeren.

Door syslog-gebeurtenissen in Kibana bladeren

Volgende stappen

In deze zelfstudie hebt u de Elastic Stack geïmplementeerd op een virtuele ontwikkelmachine in Azure. U hebt geleerd hoe u:

  • Een Ubuntu-VM maken in een Azure-resourcegroep
  • Elasticsearch, Logstash en Kibana installeren op de virtuele machine
  • Voorbeeldgegevens vanuit Logstash verzenden naar Elasticsearch
  • Poorten openen en met gegevens werken in de Kibana-console