Instalar o Elastic Stack (ELK) em uma VM do Azure
Aplica-se a: ✔️ Linux VMs ✔️ Conjuntos de escala flexível
Este artigo explica como implementar o Elasticsearch, o Logstash e o Kibana numa VM do Ubuntu no Azure. Para ver a Pilha Elástica em ação, opcionalmente, pode ligar ao Kibana e trabalhar com alguns dados de registo de exemplo.
Além disso, você pode seguir o módulo Implantar Elástico em Máquinas Virtuais do Azure para obter um tutorial mais guiado sobre a implantação do Elástico em Máquinas Virtuais do Azure.
Neste tutorial, ficará a saber como:
- Criar uma VM do Ubuntu num grupo de recursos do Azure
- Instale o Elasticsearch, o Logstash e o Kibana na VM
- Enviar dados de exemplo para o Elasticsearch com o Logstash
- Abrir portas e trabalhar com dados na consola do Kibana
Esta implementação é adequada para o desenvolvimento básico com a Pilha Elástica. Para obter mais informações sobre a Pilha Elástica, incluindo as recomendações para um ambiente de produção, veja a Documentação elástica e o Centro de Arquitetura do Azure.
Pré-requisitos
Use o ambiente Bash no Azure Cloud Shell. Para obter mais informações, consulte Guia de início rápido para Bash no Azure Cloud Shell.
Se preferir executar comandos de referência da CLI localmente, instale a CLI do Azure. Se estiver a utilizar o Windows ou macOS, considere executar a CLI do Azure num contentor Docker. Para obter mais informações, consulte Como executar a CLI do Azure em um contêiner do Docker.
Se estiver a utilizar uma instalação local, inicie sessão no CLI do Azure ao utilizar o comando az login. Para concluir o processo de autenticação, siga os passos apresentados no seu terminal. Para outras opções de entrada, consulte Entrar com a CLI do Azure.
Quando solicitado, instale a extensão da CLI do Azure na primeira utilização. Para obter mais informações sobre as extensões, veja Utilizar extensões com o CLI do Azure.
Execute o comando az version para localizar a versão e as bibliotecas dependentes instaladas. Para atualizar para a versão mais recente, execute o comando az upgrade.
- Este artigo requer a versão 2.0.4 ou posterior da CLI do Azure. Se estiver usando o Azure Cloud Shell, a versão mais recente já está instalada.
Criar um grupo de recursos
Crie um grupo de recursos com o comando az group create. Um grupo de recursos do Azure é um contentor lógico no qual os recursos do Azure são implementados e geridos.
O exemplo seguinte cria um grupo de recursos com o nome myResourceGroup na localização eastus.
az group create --name myResourceGroup --location eastus
Criar uma máquina virtual
Crie uma VM com o comando az vm create.
O exemplo seguinte cria uma VM com o nome myVM e cria chaves SSH caso estas ainda não existam numa localização chave predefinida. Para utilizar um conjunto específico de chaves, utilize a opção --ssh-key-value
.
az vm create \
--resource-group myResourceGroup \
--name myVM \
--image Ubuntu2204 \
--admin-username azureuser \
--generate-ssh-keys
Quando a VM tiver sido criada, a CLI do Azure mostra informações semelhantes ao seguinte exemplo. Tome nota do publicIpAddress
. Este endereço é utilizado para aceder à VM.
{
"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"
}
Aceder através de SSH à VM
Se ainda não souber o endereço IP público da sua VM, execute o comando az network public-ip list:
az network public-ip list --resource-group myResourceGroup --query [].ipAddress
Utilize o seguinte comando para criar uma sessão SSH com a máquina virtual. Substitua o endereço IP público correto da sua máquina virtual. Neste exemplo, o endereço IP é 40.68.254.142.
ssh azureuser@40.68.254.142
Instalar a Pilha Elástica
Importe a chave de assinatura do Elasticsearch e atualize a sua lista de origens APT para incluir o repositório do pacote Elástico:
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
Instale o Java Virtual na VM e configure a variável JAVA_HOME - isto é preciso para os componentes da Pilha Elástica serem executados.
sudo apt update && sudo apt install openjdk-8-jre-headless
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
Execute os seguintes comandos para atualizar as origens do pacote Ubuntu e instale o Elasticsearch, o Kibana e o Logstash.
sudo apt update && sudo apt install elasticsearch kibana logstash
Nota
As instruções de instalação detalhadas, incluindo os esquemas de diretório e a configuração inicial, são mantidas na Documentação do Elástico
Iniciar o Elasticsearch
Inicie o Elasticsearch na VM com o seguinte comando:
sudo systemctl start elasticsearch.service
Este comando não produz nenhuma saída, por isso certifique-se de que o Elasticsearch está em execução na VM com este comando curl
:
sudo curl -XGET 'localhost:9200/'
Se o Elasticsearch estiver em execução, veja o resultado da seguinte forma:
{
"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"
}
Iniciar o Logstash e adicionar dados ao Elasticsearch
Inicie o Logstash com o seguinte comando:
sudo systemctl start logstash.service
Teste o Logstash no modo interativo para se certificar de que está a funcionar corretamente:
sudo /usr/share/logstash/bin/logstash -e 'input { stdin { } } output { stdout {} }'
Este é um pipeline Logstash básico que ecoa a entrada padrão para a saída padrão.
The stdin plugin is now waiting for input:
hello azure
2017-10-11T20:01:08.904Z myVM hello azure
Configure o Logstash para reencaminhar as mensagens de kernel desta VM para o Elasticsearch. Crie um novo ficheiro num diretório vazio denominado vm-syslog-logstash.conf
e cole na seguinte configuração do Logstash:
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"
}
}
Teste esta configuração e envie os dados do syslog para o Elasticsearch:
sudo /usr/share/logstash/bin/logstash -f vm-syslog-logstash.conf
Verá as entradas do syslog no seu terminal ecoadas à medida que são enviadas para o Elasticsearch. Utilize CTRL+C
para sair do Logstash, assim que tiver enviado alguns dados.
Iniciar o Kibana e visualizar os dados no Elasticsearch
Edite /etc/kibana/kibana.yml
e altere o endereço IP do Kibana, para que possa aceder a partir do seu browser.
server.host: "0.0.0.0"
Inicie o Kibana com o seguinte comando:
sudo systemctl start kibana.service
Abra a porta 5601 partir da CLI do Azure para permitir o acesso remoto à consola do Kibana:
az vm open-port --port 5601 --resource-group myResourceGroup --name myVM
Abra a consola do Kibana e selecione Criar, para gerar um índice predefinido com base nos dados do syslog enviados anteriormente para o Elasticsearch .
Selecione Detetar na consola do Kibana para pesquisar, procurar e filtrar nos eventos do syslog.
Próximos passos
Neste tutorial, implementou a Pilha Elástica numa VM de desenvolvimento no Azure. Aprendeu a:
- Criar uma VM do Ubuntu num grupo de recursos do Azure
- Instale o Elasticsearch, o Logstash e o Kibana na VM
- Enviar dados de exemplo para o Elasticsearch a partir do Logstash
- Abrir portas e trabalhar com dados na consola do Kibana