Instalar o ELS (Elastic Stack) em uma VM do Azure
Aplica-se a: ✔️ VMs do Linux ✔️ Conjuntos de dimensionamento flexíveis
Este artigo orienta como implantar Elasticsearch, Logstash e Kibana em uma VM Ubuntu no Azure. Para ver o Elastic Stack em ação, opcionalmente você pode se conectar ao Kibana e trabalhar com alguns dados de log de exemplo.
Além disso, você pode seguir o módulo Implantar o Elastic nas Máquinas Virtuais do Microsoft Azure para obter um tutorial mais guiado sobre como implantar o Elastic nas Máquinas Virtuais do Microsoft Azure.
Neste tutorial, você aprenderá a:
- Crie uma VM do Ubuntu em um grupo de recursos do Azure
- Instale Elasticsearch, Logstash e Kibana na VM
- Envie dados de exemplo para Elasticsearch com Logstash
- Abra as portas e trabalhe com os dados no console do Kibana
Essa implantação é adequada para desenvolvimento básico com Elastic Stack. Para saber mais sobre Elastic Stack, incluindo recomendações para um ambiente de produção, consulte a documentação do Elastic e o Azure Architecture Center.
Pré-requisitos
Use o ambiente Bash no Azure Cloud Shell. Para obter mais informações, confira Início Rápido para Bash no Azure Cloud Shell.
Se preferir executar os comandos de referência da CLI localmente, instale a CLI do Azure. Para execuções no Windows ou no macOS, considere executar a CLI do Azure em um contêiner do Docker. Para obter mais informações, confira Como executar a CLI do Azure em um contêiner do Docker.
Se estiver usando uma instalação local, entre com a CLI do Azure usando o comando az login. Para concluir o processo de autenticação, siga as etapas exibidas no terminal. Para ver outras opções de entrada, confira Conectar-se com a CLI do Azure.
Quando solicitado, instale a extensão da CLI do Azure no primeiro uso. Para obter mais informações sobre extensões, confira Usar extensões com a CLI do Azure.
Execute az version para localizar a versão e as bibliotecas dependentes que estão instaladas. Para fazer a atualização para a versão mais recente, execute az upgrade.
- Este artigo exige a versão 2.0.4 ou posterior da CLI do Azure. Se você está 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 contêiner lógico no qual os recursos do Azure são implantados e gerenciados.
O exemplo a seguir cria um grupo de recursos chamado myResourceGroup no local eastus.
az group create --name myResourceGroup --location eastus
Criar uma máquina virtual
Crie uma VM com o comando az vm create.
O exemplo a seguir cria uma VM denominada myVM e cria chaves SSH, se elas ainda não existirem em um local de chave padrão. Para usar um conjunto específico de chaves, use 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 exemplo a seguir. Anote publicIpAddress
. Esse endereço é usado para acessar a 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"
}
SSH em sua VM
Se você ainda não souber o endereço IP público de sua VM, execute o comando az network public-ip list:
az network public-ip list --resource-group myResourceGroup --query [].ipAddress
Use o seguinte comando para criar uma sessão SSH com a máquina virtual. Substitua o endereço IP público correto de sua máquina virtual. Neste exemplo, o endereço IP é 40.68.254.142.
ssh azureuser@40.68.254.142
Instalar o Elastic Stack
Importe a chave de assinatura Elasticsearch e atualize sua lista de fontes APT para incluir o repositório do pacote do 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
Instale o Java Virtual na VM e configure a variável JAVA_HOME. Isso é necessário para que os componentes do Elastic Stack sejam 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 fontes do pacote e instalar Elasticsearch, Kibana e Logstash.
sudo apt update && sudo apt install elasticsearch kibana logstash
Observação
Instruções de instalação detalhadas, incluindo layouts de diretório e configuração inicial, são mantidas na documentação do Elastic
Iniciar Elasticsearch
Inicie o Elasticsearch na sua VM com o seguinte comando:
sudo systemctl start elasticsearch.service
Este comando não produz resultados, portanto verifique se o Elasticsearch está em execução na VM com este comando curl
:
sudo curl -XGET 'localhost:9200/'
Se Elasticsearch estiver em execução, você verá a saída semelhante ao seguinte:
{
"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 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 garantir que eles esteja funcionando corretamente:
sudo /usr/share/logstash/bin/logstash -e 'input { stdin { } } output { stdout {} }'
Este é um pipeline do Logstash básico que retorna 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 encaminhar mensagens de kernel dessa VM para Elasticsearch. Crie um novo arquivo em um diretório vazio chamado vm-syslog-logstash.conf
e cole a seguinte configuração 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 Elasticsearch:
sudo /usr/share/logstash/bin/logstash -f vm-syslog-logstash.conf
Você pode ver as entradas do syslog em seu terminal ecoadas conforme elas são enviadas para Elasticsearch. Use CTRL+C
para sair do Logstash depois de enviar dados.
Inicie o Kibana e visualize os dados no Elasticsearch
Edite /etc/kibana/kibana.yml
e altere o endereço IP que o Kibana escuta para que você pode acessá-lo do seu navegador da Web.
server.host: "0.0.0.0"
Inicie o Kibana com o seguinte comando:
sudo systemctl start kibana.service
Abra porta 5601 da CLI do Azure para permitir o acesso remoto ao console Kibana:
az vm open-port --port 5601 --resource-group myResourceGroup --name myVM
Abra o console do Kibana e selecione Criar para gerar um índice padrão com base nos dados de syslog enviados para o Elasticsearch anteriormente.
Selecione Descobrir no console do Kibana para pesquisar, procurar e filtrar os eventos de syslog.
Próximas etapas
Neste tutorial, você implantou o Elastic Stack em uma VM de desenvolvimento no Azure. Você aprendeu a:
- Crie uma VM do Ubuntu em um grupo de recursos do Azure
- Instale Elasticsearch, Logstash e Kibana na VM
- Enviar dados de exemplo para Elasticsearch do Logstash
- Abra as portas e trabalhe com os dados no console do Kibana