Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Platí pro: ✔️ Flexibilní škálovací sady virtuálních počítačů s Linuxem ✔️
Tento článek vás provede nasazením Elasticsearch, Logstash a Kibana na virtuálním počítači s Ubuntu v Azure. Pokud chcete vidět Elastic Stack v akci, můžete se volitelně připojit ke Kibaně a pracovat s ukázkovými daty z protokolů.
Kromě toho můžete postupovat podle modulu Deploy Elastic on Azure Virtual Machines, který nabízí více průvodcovský tutoriál pro nasazení Elastic na virtuálních počítačích Azure.
V tomto kurzu se naučíte:
- Vytvoření virtuálního počítače s Ubuntu ve skupině prostředků Azure
- Instalace Elasticsearch, Logstash a Kibana na virtuálním počítači
- Odeslání ukázkových dat do Elasticsearch pomocí Logstash
- Otevření portů a práce s daty v konzole Kibana
Toto nasazení je vhodné pro základní vývoj pomocí elastického stacku. Další informace o elastickém stacku, včetně doporučení pro produkční prostředí, najdete v dokumentaci k Elastic a centru architektury Azure.
Požadavky
Použijte prostředí Bash v Azure Cloud Shellu. Další informace najdete v tématu Začínáme s Azure Cloud Shellem.
Pokud dáváte přednost místnímu spouštění referenčních příkazů rozhraní příkazového řádku, nainstalujte Azure CLI. Pokud používáte Windows nebo macOS, zvažte spuštění Azure CLI v kontejneru Dockeru. Další informace najdete v tématu Jak spustit Azure CLI v kontejneru Dockeru.
Pokud používáte místní instalaci, přihlaste se k Azure CLI pomocí příkazu az login. Pokud chcete dokončit proces ověřování, postupujte podle kroků zobrazených v terminálu. Další možnosti přihlášení najdete v tématu Ověřování v Azure pomocí Azure CLI.
Po zobrazení výzvy nainstalujte rozšíření Azure CLI při prvním použití. Další informace o rozšířeních najdete v tématu Použití a správa rozšíření pomocí Azure CLI.
Spusťte az version a zjistěte verzi a nainstalované závislé knihovny. Pokud chcete upgradovat na nejnovější verzi, spusťte az upgrade.
- Tento článek vyžaduje verzi 2.0.4 nebo novější azure CLI. Pokud používáte Azure Cloud Shell, je už nainstalovaná nejnovější verze.
Vytvoření skupiny zdrojů
V této části se proměnné prostředí deklarují pro použití v následných příkazech. K názvům prostředků pro jedinečnost se připojí náhodná přípona.
export RANDOM_SUFFIX=$(openssl rand -hex 3)
export RESOURCE_GROUP="myResourceGroup$RANDOM_SUFFIX"
export REGION="eastus2"
az group create --name $RESOURCE_GROUP --location $REGION
Výsledky:
{
"id": "/subscriptions/xxxxx/resourceGroups/myResourceGroupxxxxxx",
"location": "eastus",
"managedBy": null,
"name": "myResourceGroupxxxxxx",
"properties": {
"provisioningState": "Succeeded"
},
"tags": null,
"type": "Microsoft.Resources/resourceGroups"
}
Vytvoření virtuálního počítače
Tato část vytvoří virtuální počítač s jedinečným názvem a zároveň vygeneruje klíče SSH, pokud ještě neexistují. K zajištění jedinečnosti se připojí náhodná přípona.
export VM_NAME="myVM$RANDOM_SUFFIX"
az vm create \
--resource-group $RESOURCE_GROUP \
--name $VM_NAME \
--image Ubuntu2204 \
--admin-username azureuser \
--generate-ssh-keys
Po vytvoření virtuálního počítače se v Azure CLI zobrazí podobné informace jako v následujícím příkladu. Poznamenejte si publicIpAddress. Tato adresa se používá pro přístup k virtuálnímu počítači.
Výsledky:
{
"fqdns": "",
"id": "/subscriptions/xxxxx/resourceGroups/myResourceGroupxxxxxx/providers/Microsoft.Compute/virtualMachines/myVMxxxxxx",
"location": "eastus",
"macAddress": "xx:xx:xx:xx:xx:xx",
"powerState": "VM running",
"privateIpAddress": "10.0.0.4",
"publicIpAddress": "x.x.x.x",
"resourceGroup": "$RESOURCE_GROUP"
}
Připojení SSH k virtuálnímu počítači
Pokud ještě neznáte veřejnou IP adresu virtuálního počítače, zobrazte seznam spuštěním následujícího příkazu:
az network public-ip list --resource-group $RESOURCE_GROUP --query [].ipAddress
K vytvoření relace SSH s virtuálním počítačem použijte následující příkaz. Nahraďte správnou veřejnou IP adresu vašeho virtuálního počítače. V tomto příkladu je IP adresa 40.68.254.142.
export PUBLIC_IP_ADDRESS=$(az network public-ip list --resource-group $RESOURCE_GROUP --query [].ipAddress -o tsv)
Nainstalujte Elastic Stack
V této části naimportujete podpisový klíč Elasticsearch a aktualizujete seznam zdrojů APT tak, aby zahrnoval úložiště elastických balíčků. Následuje instalace prostředí runtime Java, které je vyžadováno pro komponenty elastického zásobníku.
ssh azureuser@$PUBLIC_IP_ADDRESS -o StrictHostKeyChecking=no "
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
"
Nainstalujte virtuální stroj Java na virtuální počítač a nakonfigurujte proměnnou JAVA_HOME.
ssh azureuser@$PUBLIC_IP_ADDRESS -o StrictHostKeyChecking=no "
sudo apt install -y openjdk-8-jre-headless
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
"
Spuštěním následujícího příkazu aktualizujte zdroje balíčků Ubuntu a nainstalujte Elasticsearch, Kibana a Logstash.
ssh azureuser@$PUBLIC_IP_ADDRESS -o StrictHostKeyChecking=no "
wget -qO elasticsearch.gpg https://artifacts.elastic.co/GPG-KEY-elasticsearch
sudo mv elasticsearch.gpg /etc/apt/trusted.gpg.d/
echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee /etc/apt/sources.list.d/elastic-7.x.list
sudo apt update
# Now install the ELK stack
sudo apt install -y elasticsearch kibana logstash
"
Poznámka:
Podrobné pokyny k instalaci, včetně rozložení adresářů a počáteční konfigurace, se spravují v dokumentaci k Elastic
Spustit Elasticsearch
Na virtuálním počítači spusťte Elasticsearch pomocí následujícího příkazu:
ssh azureuser@$PUBLIC_IP_ADDRESS -o StrictHostKeyChecking=no "
sudo systemctl start elasticsearch.service
"
Tento příkaz nevygeneruje žádný výstup, proto pomocí tohoto příkazu curl ověřte, že na virtuálním počítači běží Elasticsearch:
ssh azureuser@$PUBLIC_IP_ADDRESS -o StrictHostKeyChecking=no "
sleep 11
sudo curl -XGET 'localhost:9200/'
"
Pokud je elasticsearch spuštěný, zobrazí se výstup podobný tomuto:
Výsledky:
{
"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"
}
Spuštění Logstash a přidání dat do Elasticsearch
Spusťte Logstash pomocí následujícího příkazu:
ssh azureuser@$PUBLIC_IP_ADDRESS -o StrictHostKeyChecking=no "
sudo systemctl start logstash.service
"
Otestujte Logstash a ujistěte se, že funguje správně:
ssh azureuser@$PUBLIC_IP_ADDRESS -o StrictHostKeyChecking=no "
# Time-limited test with file input instead of stdin
sudo timeout 11s /usr/share/logstash/bin/logstash -e 'input { file { path => "/var/log/syslog" start_position => "end" sincedb_path => "/dev/null" stat_interval => "1 second" } } output { stdout { codec => json } }' || echo "Logstash test completed"
"
Toto je základní kanál Logstash, který vrací standardní vstup do standardního výstupu.
Nastavte Logstash pro přeposílání zpráv jádra z tohoto virtuálního počítače do Elasticsearch. Pokud chcete vytvořit konfigurační soubor Logstash, spusťte následující příkaz, který zapíše konfiguraci do nového souboru s názvem vm-syslog-logstash.conf:
ssh azureuser@$PUBLIC_IP_ADDRESS -o StrictHostKeyChecking=no "
cat << 'EOF' > vm-syslog-logstash.conf
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"
}
}
EOF
"
Otestujte tuto konfiguraci a odešlete data syslogu do Elasticsearch:
# Run Logstash with the configuration for 60 seconds
sudo timeout 60s /usr/share/logstash/bin/logstash -f vm-syslog-logstash.conf &
LOGSTASH_PID=$!
# Wait for data to be processed
echo "Processing logs for 60 seconds..."
sleep 65
# Verify data was sent to Elasticsearch with proper error handling
echo "Verifying data in Elasticsearch..."
ES_COUNT=$(sudo curl -s -XGET 'localhost:9200/_cat/count?v' | tail -n 1 | awk '{print $3}' 2>/dev/null || echo "0")
# Make sure ES_COUNT is a number or default to 0
if ! [[ "$ES_COUNT" =~ ^[0-9]+$ ]]; then
ES_COUNT=0
echo "Warning: Could not get valid document count from Elasticsearch"
fi
echo "Found $ES_COUNT documents in Elasticsearch"
if [ "$ES_COUNT" -gt 0 ]; then
echo "✅ Logstash successfully sent data to Elasticsearch"
else
echo "❌ No data found in Elasticsearch, there might be an issue with Logstash configuration"
fi
V terminálu se vám zobrazují položky syslogu, jakmile jsou odesílány do Elasticsearch. Jakmile odešlete nějaká data, pomocí kombinace kláves CTRL+C ukončete Logstash.
Spuštění Kibany a vizualizace dat v Elasticsearch
Upravte konfigurační soubor Kibana (/etc/kibana/kibana.yml) a změňte IP adresu, na které Kibana naslouchá, abyste k němu měli přístup z webového prohlížeče:
server.host: "0.0.0.0"
Spusťte Kibana pomocí následujícího příkazu:
ssh azureuser@$PUBLIC_IP_ADDRESS -o StrictHostKeyChecking=no "
sudo systemctl start kibana.service
"
Otevřete port 5601 z Azure CLI a povolte vzdálený přístup ke konzole Kibana:
az vm open-port --port 5601 --resource-group $RESOURCE_GROUP --name $VM_NAME
Další kroky
V tomto kurzu jste nasadili Elastic Stack do vývojového virtuálního počítače v Azure. Naučili jste se:
- Vytvoření virtuálního počítače s Ubuntu ve skupině prostředků Azure
- Instalace Elasticsearch, Logstash a Kibana na virtuálním počítači
- Odeslání ukázkových dat do Elasticsearch z Logstash
- Otevření portů a práce s daty v konzole Kibana