Como instalar o Apache Nifi em uma máquina virtual linux no GCP

Nesta postagem, falaremos como criar um VM dentro do Compute Engine do GCP.

O que é Nifi?

O Apache NiFi é um projeto de software mantido pela Apache Software Foundation projetado para automatizar a integração de dados entre sistemas de software, suportando lógica de roteamento, transformação e mediação de dados. 

Foi baseado no software "NiagaraFiles", desenvolvido pela NSA (National Security Agency), que também é a fonte de uma parte de seu nome atual - NiFi .

O que é Compute Engine?

O Google Compute Engine permite a criação de uma infraestrutura dentro do Google Cloud no formato de máquinas virtuais sob demanda, é considerado como IAS (Infraestrutura como serviço).

Passo a Passo

1. O primeiro passo a fazer é o login em sua conta do GCP, para este tutorial você vai precisar de uma conta que possua um projeto.

2. Vá até menu, selecione Compute Engine>Instâncias de VM.

3.Clique em Criar:

4.Especifique um nome para sua VM:

5. Permita o tráfego HTTP e HTTPS:

6. Na opção Disco de inicialização é possível selecionar o sistema operacional da VM, clique em alterar:

7. Selecione Ubuntu e clique em Selecionar:


8. Clique em Criar:

Observação: Ao clicar em linha de comando ao fim da página aparecerá o comando de criação via Cloud Shell:

gcloud beta compute --project=$PROJECT_ID instances create minha-vm-linux \
--zone=us-central1-a \
--machine-type=n1-standard-1 \
--subnet=default \
--image=ubuntu-1604-xenial-v20200923 \
--image-project=ubuntu-os-cloud \
--boot-disk-size=10GB \
--boot-disk-type=pd-standard \
--boot-disk-device-name=minha-vm-linux 

9.Aguarde a criação da VM:

10. Após a criação será possível se conectar na VM, clique em SSH:

11. Será necessário instalar o java 8, execute o comando abaixo no terminal da VM:

sudo apt-get update
sudo apt-get install openjdk-8-jdk

12. Baixe os binários do Nifi:

sudo mkdir /apache-nifi -p
cd /apache-nifi
sudo wget http://ftp.unicamp.br/pub/apache/nifi/1.12.1/nifi-1.12.1-bin.tar.gz

Observação: Caso o comando wget apresente falha por não encontrar o arquivo, verifique o link atualizado no site do Nifi.

13. Descompacte o pacote e movimente a pasta para o diretório /opt/

sudo tar -zxvf nifi-1.12.1-bin.tar.gz
sudo mv nifi-1.12.1 /opt/
cd /opt/nifi-1.12.1
bin/nifi.sh install

14. Instale o nifi:

sudo bin/nifi.sh install

15. Verifique onde está instalado o java:

java -XshowSettings:properties -version 2>&1 > /dev/null | grep 'java.home'

16. Altere o arquivo nifi-env.sh para adicionar o valor do comando anterior no campo java_home, use o comando abaixo para editar o arquivo:

sudo nano /opt/nifi-1.12.1/bin/nifi-env.sh

Altere o trecho:

Adicione o caminho do java_home:

17. Inicie o serviço do nifi:

sudo /etc/init.d/nifi start

O comando terá um retorno semelhante a este:

18. Verifique o IP externo da sua VM (no console do Google Cloud) e acesse a porta 8080, exemplo:
 http://<SEU_IP_EXTERNO>:8080/nifi/

19. Caso não tenha entrado, será preciso criar uma regra de firewall para a porta 8080. Vá até menu, selecione Rede VPC>Firewall.

20.Clique em Criar Firewall:

18.Preencha as informações conforme abaixo e clique em criar:

Observação: As propriedades desta tela significam:

  • Nome: Nome da regra de firewall, considere apenas letras minúsculas e nenhum espaço.
  • Descrição: É opcional mas importante colocar algo significativo para informação.
  • Rede: São as redes VPC já criadas, selecione a rede onde deseja aplicar as regras de firewall.
  • Prioridade: É a prioridade da regra aplicada à rede. Quanto menor o valor a prioridade será mais alta, o padrão é 1000.
  • Direção do tráfego: Define se o trafego será de entrada saída.
  • Ação se houver correspondência: Define se o trafego será permitido ou negado.
  • Destinos: Será onde será aplicada a regra, é possível aplicar as regras em todas as instâncias da rede, permitir apenas em tags ou contas de serviço específicas.
  • Filtro de origem: Uma fonte que será validada para permitir ou negar. Você pode filtrar por intervalos de IP, sub-redes, tags de origem e contas de serviço.
  • Intervalos de IP de origem: Especifica os intervalos de IP em que será aplicado a regra.
  • Segundo filtro de origem: Permite colocar outro filtro para aplicação de regra.
  • Protocolo e portas: Permite especificar as portas/protocolos que serão trabalhados nessa regra, é possível ter várias portas em uma única regra.

21. Tente acessar o link novamente, deverá aparecer a interface do nifi:

Referências

  • Compute Engine

https://cloud.google.com/compute

  • Apache Nifi

https://nifi.apache.org/