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
Gebruik de Bash-omgeving in Azure Cloud Shell. Zie quickstart voor Bash in Azure Cloud Shell voor meer informatie.
Installeer de Azure CLI, indien gewenst, om CLI-referentieopdrachten uit te voeren. Als u in Windows of macOS werkt, kunt u Azure CLI uitvoeren in een Docker-container. Zie De Azure CLI uitvoeren in een Docker-container voor meer informatie.
Als u een lokale installatie gebruikt, meldt u zich aan bij Azure CLI met behulp van de opdracht az login. Volg de stappen die worden weergegeven in de terminal, om het verificatieproces te voltooien. Raadpleeg Aanmelden bij Azure CLI voor aanvullende aanmeldingsopties.
Installeer de Azure CLI-extensie bij het eerste gebruik, wanneer u hierom wordt gevraagd. Raadpleeg Extensies gebruiken met Azure CLI voor meer informatie over extensies.
Voer az version uit om de geïnstalleerde versie en afhankelijke bibliotheken te vinden. Voer az upgrade uit om te upgraden naar de nieuwste versie.
- 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.
Selecteer Discover op de Kibana-console om syslog-gebeurtenissen te zoeken, te filteren of erdoorheen te 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