Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.
Painel
titleoculto

Para atualizações 1.5.6 à 1.5.13 acesse: Como configurar o fluig Indexer para executar em cluster da release 1.5.6 à 1.5.13?. [essa página está arquivada, mas caso seja necessário, solicitar para alguém de Gestão do Conhecimento].

Informações
titleAtençãoNota:

Esta página foi revisada para considerar as

novas

configurações do serviço de indexação

no fluig para a atualização Water Drop

a partir da Atualização Crystal Mist (1.

6

8.

4

2).

Caso possua uma atualização 1.6.

0

4 à 1.

6.3 acesse: Para atualizações 1.5.6 à 1.5.13 acesse: Como configurar o fluig Indexer

8.1 acesse: ARQ - Como configurar o Servidor de indexação para executar em cluster da release 1.

5

6.

6

4 à 1.

5

8.

13

1?.

Para atualizações

Caso possua uma atualização 1.

5

6.0 à 1.6

ou inferior

.3 acesse:

 

ARQ - Como configurar o

fluig Indexer

Servidor de indexação para executar em cluster

na

da release 1.

5

6.0 a 1.6

ou inferior

.3?.


Índice

Índice
maxLevel4
outlinetrue
exclude.*ndice
stylenone


Introdução

...

As instruções a seguir completarão a instalação de um fluig Indexer Servidor de indexação em um cluster de servidores dedicados, continuando as instruções iniciadas na página Fluig Indexer em Servidor DedicadoServidor de indexação dedicado.

Na maioria dos cenários, uma máquina bem dimensionada executando o serviço de indexação é suficiente para atender as demandas de indexação e busca da plataforma.

Sendo assim, as configurações apresentadas nesta página são consideradas avançadas, com maior necessidade de administração do ambiente , e recomendadas apenas em casos específicos, quando a busca é uma funcionalidade crítica, ou quando se faz necessário garantir a alta disponibilidade deste serviço.


Redundância

...

O serviço de indexação na plataforma é realizado pelo Apache® Solr. Em um ambiente de alta disponibilidade, são necessárias mais máquinas com este serviço rodando para, no caso de uma delas falhar, ter outra(s) outras para continuar processando as requisições , e, neste caso, o gerenciamento destas requisições é será realizado pelo Apache® ZooKeeper.

Com isso, para Para garantir a alta disponibilidade desta funcionalidade, é necessário que exista redundância em ambos os serviços: Apache® Solr para indexação/busca e Apache® ZooKeeper para gerenciamenteo gerenciamento das configurações de indexação e das requisições. Também é necessário que todas as máquinas do cluster sejam acessíveis entre si (estejam na mesma rede).

O princípio de funcionamento do Apache® ZooKeeper é baseado em quorum, ou seja, é necessário que a maioria (>50%) dos servidores estejam disponíveis para o processamento das requisições.

Por exemplo, se existirem apenas dois servidores e um deles ficar indisponível, apenas 50% dos servidores estarão saudáveis e, e como isso não é a maioria, o cluster será incapaz de processar as requisições. Por outro lado, se existirem três servidores e um ficar indisponível, ainda restarão dois saudáveis, ou 66%, que atende atendendo ao critério de maioria. Por isso esse motivo é recomendado um número ímpar de servidores executando o Apache® ZooKeeper.


Configurando o Apache® ZooKeeper

...

O primeiro passo é efetuar o download da versão 3.49.10 1 do Apache® ZooKeeper, que pode ser obtida aqui: no endereço https://archive.apache.org/dist/zookeeper/zookeeper-3.49.101/.

Após efetuar o download e extrair o arquivo compactado no diretório de sua preferência (<ZOOKEEPER_HOME>) em [ZOOKEEPER_HOME] em cada uma das máquinas do cluster, é necessário criar, caso ainda não exista, o arquivo <ZOOKEEPER[ZOOKEEPER_HOME>HOME]/conf/zoo.cfg com o seguinte conteúdo:

Bloco de código
languagebash
themeEclipse
titlezoo.cfg
tickTime=2000
dataDir=C:/varzookeeper/lib/zookeeperdatadata
clientPort=2181
initLimit=5
syncLimit=2
4lw.commands.whitelist=mntr,conf,ruok
#admin.serverPort=8080
server.1=<server1_ip>address>:2888:3888
server.2=<server2_ip>address>:2888:3888
server.3=<server3_ip>address>:2888:3888
  • tickTime: corresponde ao tempo em milisegundos milissegundos entre cada tick, sendo que uma das validações para determinar se um nó está disponível é de dois ticks (similar ao ping para verificar se uma máquina é encontrada na rede). Se dois ticks consecutivos não obtiverem resposta, ocorre timeout e a máquina é considerada indisponível.
  • dataDir: aponta o diretório onde serão armazenadas as informações referentes ao cluster. No início, este diretório deve estar vazio mas e com permissão de escrita pelo usuário que irá iniciar o ZooKeeper. O mapeamento deve ser feito sempre com o caracter '/', mesmo em ambientes Windows.
  • clientPort: corresponde à porta que será utilizada pelo Apache® Solr.
  • initLimit: quantidade de tempo (em ticks) para que uma máquina com ZooKeeper se conecte e sincronize com a máquina que foi eleita líder. Neste caso, são 5 ticks com 2000 milisegundos milissegundos cada, totalizando 10 segundos. Este valor pode ser incrementado sob demanda , se a quantidade de informações gerenciadas pelo ZooKeeper for ZooKeeper for elevada.
  • syncLimit: quantidade de tempo (em ticks) que uma máquina com ZooKeeper pode estar atrasada em relação à líder. Se uma máquina não conseguir sincronizar com a líder neste intervalo, ela será descartada do cluster.
  • 4lw.commands.whitelist: lista de comandos que o ZooKeeper tem permissão para executar.
  • admin.serverPort: por padrão, o ZooKeeper roda um servidor Jetty na porta 8080. Fica a seu critério escolher a porta, desde que não esteja sendo utilizada por outra aplicação. Basta remover o caractere # da propriedade e alterar o valor da porta.
  • server.X: Estes são os IDs e localização (endereço IP na rede interna) de todos os nós do cluster, e as portas nas quais eles se comunicam -se entre si. O ID identifica cada nó do cluster, e também precisa precisando ser referenciado em um arquivo de nome "'myid"', dentro do diretório definido na propriedade 'dataDir'. Neste exemplo seria necessário criar o arquivo '/var/lib/zookeeperdata/myid' com o conteúdo "'1" ' (sem aspas) para a máquina configurada na propriedade 'server.1', o mesmo arquivo com conteúdo "'2" ' (sem aspas) para a máquina configurada na propriedade 'server.2', e assim por diante, para cada máquina existente no cluster. As portas 2888 e 3888 são as portas que serão  serão utilizadas para comunicação entre cada uma das máquinas do cluster e podem ser alteradas de acordo com a necessidade, desde que informadas na linha correspondete correspondente ao servidor em questão, no arquivo 'zoo.cfg' de todas as máquinas do cluster.
Nota
titleImportante!

Certifique-se de que o arquivo "myid" foi criado corretamente em cada máquina (na pasta definida pela propriedade dataDir), tendo o ID numérico do servidor como conteúdo.

Com essa configuração em cada máquina do cluster, basta iniciá-las com o seguinte comando: 

Bloco de código
languagebash
themeEclipse
titleNo Linux
	cd <ZOOKEEPER_HOME>/bin
Linux:
	zkServer.sh start zoo.cfg

Windows:
	zkServer.cmd start zoo.cfg

Somente um dos servidores precisa ser eleito como Master. Nele será executado o processo de coordenação dos nós do cluster de servidores (ZooKeeper).

  • Execute o script [fluig Indexer]/solr/startCloudMaster.sh (Linux) ou [fluig Indexer]\solr\startCloudMaster.bat (Windows) para iniciar o fluig Indexer.
  • Para interromper, execute o arquivo [fluig Indexer]/solr/stopCloud.sh (Linux) ou [fluig Indexer]\solr\stopCloud.bat (Windows).
Nota
titleAtenção!

É importante que o fluig Indexer seja iniciado antes do fluig, caso contrário o fluig irá considerar que não há Serviço de Indexação disponível.

Fluig Indexer Slave

Um ou mais servidores podem ser utilizados como Slave.

  • Edite o arquivo [fluig Indexer]/solr/startCloudSlave.sh (Linux) ou [fluig Indexer]\solr\startCloudSlave.bat (Windows) para configurar o IP e porta do processo de coordenação (ZooKeeper) do cluster de indexação que é executado no servidor Master (informado após o parâmetro -z).
Bloco de código
languagebash
titleNo Linux
./bin/solr start -cloud -z localhost:9983
Bloco de código
languagebash
titleNo Windows
call .\bin\solr.cmd start -cloud -z localhost:9983
  • Se desejar subir duas instâncias na mesma máquina ou apenas subir o fluig Indexer em outra porta, adicione o parâmetro "-p". e informe a porta.
  • Nesse caso também é necessário adicionar o mesmo parâmetro nos scripts de interrupção do serviço: [fluig Indexer]/solr/stopCloud.sh (Linux) ou [fluig Indexer]\solr\stopCloud.bat (Windows).
Bloco de código
languagebash
titleNo Linux
./bin/solr start -cloud -z localhost:9983 -p 18983
Bloco de código
languagebash
titleNo Windows
call .\bin\solr.cmd start -cloud -z localhost:9983 -p 18983
Nota
titleAtenção!

É importante que o fluig Indexer Master seja iniciado antes do fluig Index Slave, caso contrário este último irá considerar que não há Serviço de Coordenação disponível.

Bloco de código
languagebash
themeEclipse
titleNo Windows
cd <ZOOKEEPER_HOME>/bin
zkServer.cmd


Configurando o Apache® Solr

...

A instalação do Apache® Solr pode ser realizada através da instalador do Fluig no modo caractere, seguindo o passo a passo para instalar somente o Servidor de indexação em Windows ou Linux.

Para existir redundância, deve conter no mínimo duas máquinas executando este serviço de indexação, podendo estas serem as mesmas máquinas que executam o serviço de gerenciamento (ZooKeeper) ou máquinas distintas na mesma rede, dependendo da arquitetura desejada de tolerância à falhas.

O Solr possui dois modos de inicialização: Standalone e Cloud. Em um ambiente de alta disponibilidade, é necessário utilizar o modo Cloud, apontando para os servidores onde estão sendo executados os serviços de gerenciamento das configurações e requisições (ZooKeeper). Para isso, basta incluir o parâmetro ZK_HOST no arquivo de configuração do Servidor de indexação, conforme exemplo abaixo:

Bloco de código
languagebash
themeEclipse
titleInicializando o Solr no modo cloud
ZK_HOST="<server1_address>:2181,<server2_address>:2181,<server3_address>:2181"
SOLR_HOST="<server>"
SOLR_IP_ALLOWLIST="<IP1>,<IP2>,<IP3>"

Neste caso, os endereços <server1_address>, <server2_address> e <server3_address> no item ZK_HOST são os mesmos informados anteriormente nos parâmetros 'server.X' do arquivo 'zoo.cfg', e a porta 2181 corresponde ao parâmetro clientPort informado nesse mesmo arquivo. As aspas devem ser mantidas.

O parâmetro <server> utilizado no item SOLR_HOST se refere ao endereço ou IP do próprio servidor que está configurando. As aspas devem ser mantidas.

Os parâmetros IP utilizados no item SOLR_IP_ALLOWLIST restringem o acesso ao Solr, garantindo que qualquer chamada de um IP/hostname diferente dos que foram configurados será bloqueada. Esta propriedade é imprescindível para aumentar a segurança do ambiente. Para mais informações, consulte a documentação do Solr

A localização deste arquivo de configuração varia de acordo com o sistema operacional e pode ser verificada na tabela abaixo:

Sistema operacionalArquivo de configuraçãoLocalização
Linuxfluig_Indexer.in.sh/etc/default/
Windowssolr.in.cmd[Instalação fluig Indexer]/solr/bin/

Após esta configuração, é necessário iniciar os serviços do Solr (fluig_Indexer) em todas as máquinas que o executarão para seguir com os próximos passos.

Nota
titleImportante!

O serviço de gerenciamento (ZooKeeper) deve ser iniciado antes do serviço de indexação (Solr), caso contrário, este último irá considerar que não há serviço de gerenciamento disponível.


Configurações de indexação

...

Quando o Apache® Solr é executado no modo Cloud, as configurações do índice são armazenadas e gerenciadas pelo Apache® ZooKeeper. Por isso, primeiramente é necessário publicar as configurações utilizadas pela plataforma. Estas configurações são instaladas juntamente com o serviço de indexação e para publicá-las no serviço de gerenciamento (ZooKeeper), pode-se utilizar o comando abaixo: 

Bloco de código
languagebash
themeEclipse
titlePublicando configurações de indexação da plataforma
<SOLR_DIR>/bin/solr zk upconfig -d fluig -n fluig -z <server1_address>:2181,<server2_address>:2181,<server3_address>:2181
  • O parâmetro '-d fluig' corresponde ao nome do diretório onde estão armazenadas as configurações utilizadas pela plataforma, instaladas por padrão juntamente com o serviço de indexação, no diretório 'fluig'. O comando irá efetuar o upload deste diretório para os endereços informados no parâmetro '-z'.
  • O parâmetro '-n fluig' corresponde ao nome que esta configuração irá receber no serviço de gerenciamento (ZooKeeper) e será utilizado no próximo passo (criação da collection).
  • O parâmetro '-z' informa a lista de serviços de gerenciamento (ZooKeeper) onde serão publicadas estas configurações, conforme detalhado anteriormente.
Nota
titleImportante!

Como existe o ZooKeeper para gerenciar o cluster, este comando precisa ser executando apenas em uma das máquinas do Solr.


Criação de collection

...

Cada empresa (tenant) criada no Fluig é mapeada para uma collection no Apache® Solr. Quando em cluster, é necessário definir a quantidade de nós (shards) em que o índice será dividido e o fator de replicação (replicationFactor) das informações referentes a esta collection, através do seguinte comando:

Bloco de código
languagebash
themeEclipse
titleCriando collection
<SOLR_DIR>/bin/solr create_collection -c <ID do Tenant> -d fluig -shards 1 -replicationFactor 2
  • Informe o código numérico que será usado para a empresa criada no Fluig em <ID do Tenant>.
  • Neste caso o parâmetro '-d' corresponde ao nome da configuração armazenada no ZooKeeper (parâmetro '-n' do comando utilizado anteriormente para upload).
  • Informe o número total de instâncias do Apache® Solr após o parâmetro '-replicationFactor'.
Nota
titleImportante!

Como existe o ZooKeeper para gerenciar o cluster, este comando precisa ser executando apenas em uma das máquinas do Solr, mas as outras máquinas precisam estar com o Solr em execução.


Configurando o Fluig para usar o Servidor de indexação

...

Se o Fluig estiver

Configurando o fluig para usar o Indexer

Se o fluig tiver em execução, siga os passos abaixo:

Deck of Cards
effectDuration0.5
historyfalse
idfi
effectTypefade
Card
defaulttrue
id1
labelPasso 1


  • Acesse o fluig Fluig com o usuário 'wcmadmin':

Image RemovedImage Added

Card
id2
labelPasso 2


  • Clique no menu Painel de Controle → Aba WCM → Configurações do Sistema:

Image RemovedImage Added

Card
id3
labelPasso 3


  • Clique na Aba aba Parâmetros da Plataforma e localize as configurações do Servidor de Indexação:

Image RemovedImage Added

Card
id4
labelPasso 4


  • Configure da seguinte forma:Diretório do Solr:
      Incluir o caminho para a pasta do Solr.
    • URL de acesso ao Solr:  Deve ser informando o endereço do servidor onde está sendo executado o fluig Indexer Master. Deverá ser incluido da seguinte forma: http://[Host Servidor Master]:[Porta].  A porta utilizada será a do serviço de coordenação do cluster que por padrão é a porta do 9983 Devem ser informados os endereços dos servidores onde estão sendo executados os serviços de gerenciamento (ZooKeeper), em uma lista de endereços separados por vírgula, da mesma forma que foram informados no parâmetro '-z' ao iniciar os serviços de indexação (Solr).
    • Solr em Servidor Remoto: Deve estar ativado (ON).
    • Solr em Cluster: Deve estar ativado (ON). Esta opção ativa o Solr em Cluster, necessária para ambientes em clusterCluster.

Image RemovedImage Added

Card
id5
labelPasso 5


  • As alterações nos parâmetros exigem a reinicialização da plataforma. Portanto inicie os serviços na ordem correta.



Se o fluig Fluig estiver parado, siga os passos abaixo:

Deck of Cards
effectDuration0.5
historyfalse
idfi2
effectTypefade
Card
defaulttrue
id1
labelPasso 1


  • No servidor onde está instalado o

...

html/xml
  • Fluig, acesse o diretório [Instalação fluig]/repository/wcmdir/config e edite o arquivo configuration.properties. Caso o arquivo configuration.properties não exista, crie um novo arquivo com este nome.
Bloco de código
language
js
themeEclipse
titleconfiguration.properties
totvs/solrURL=
<IP Servidor Master>:9983
10.171.70.21:2181,10.171.70.22:2181,10.171.70.23:2181
totvs/solrCloud=true
totvs/solrRemote=true
  • Modifique o parâmetro 'totvs/solrURL

...

  • ' informando a lista de endereços dos servidores onde estão sendo executados os serviços de gerenciamento, da mesma forma que foram informados no parâmetro '-z' ao iniciar os serviços de indexação (Solr). Deverá ser informado apenas o IP ou hostname

...

  •  do servidor e a porta, sem o protocolo e contexto.

...

Nota
titleImportante!

O parâmetro '

totvs/solrCloud' irá condicionar o

...

Fluig para ativar a opção do Solr em Cluster, necessária para ambientes

...

em Cluster.

Criação de Core

Cada empresa (tenant) criada no fluig é mapeada para um Core no Indexer. Quando em cluster, os Cores não são criados automaticamente, por isso é preciso criá-los manualmente antes de criar a empresa no fluig.

  • Inicie o Master e o(s) Slave(s) e crie o Core com o seguinte comando:
Bloco de código
languagebash
titleNo Linux
./bin/solr create_collection -c <ID do Tenant> -d fluig -shards 1 -replicationFactor 2
Bloco de código
languagebash
titleNo Windows
.\bin\solr.cmd create_collection -c <ID do Tenant> -d fluig -shards 1 -replicationFactor 2

Considerações:

  • Informe o código que será usado para a empresa criada no fluig em <ID do Tenant>.
  • Se utilizar mais de um Slave, informe o número de instâncias totais (Master + Slaves) após o parâmetro -replicationFactor.

Registrando o fluig Indexer como Serviço no Windows/Linux

...

Card
id2
labelPasso 2


  • Inicie os serviços do Fluig na ordem correta.


HTML
<script>
	$("b:contains('oculto')").parent().parent().hide();
</script>