Objetivos
Este documento é direcionado para detalhar o que é, como funciona e como deve ser configurado o Sispetro Monitor (SispetroMon).
O que é o SispetroMon
O SispetroMon é uma plataforma onde é feita a parametrização e o monitoramento do SispetroWeb.
...
Principais Funções do SispetroMon
- Monitorar o SispetroWeb a partir de seu log.
- Permitir editar os arquivos de configuração do SispetroWeb numa interface Web.
- Sincronizar arquivos com a nuvem (Ordens de Carregamento).
- Monitorar pasta para inclusão automática OC's no SispetroWeb.
- Disponibilizar interface Web para controlar/editar todos os parâmetros necessários para realizar os procedimentos acima.
Como iniciar o SispetroMon
O SispetroMon depende de duas configurações para ser executado:
Porta Servidor WebServidorWeb: O padrão é a porta 11000.
Ambiente de Execução: O padrão é production.
A partir daí, o usuário deve utilizar a interface Web digitando <endereço do SispetroMon>:11000
Nesta tela, podemos ver o log no próprio SispetroMon. Caso ocorra algum erro inesperado, pode-se visualizá-lo no log. Como é possível que a própria ação do usuário (em outra tela) gere algum erro, para visualizá-lo, seria necessário abrir uma outra aba no Browser apontando para o SispetroMon para poder ler o log. O log é sempre gerado independente da sua visualização via web.
...
I. Monitorar o SispetroWeb
Para tanto, basta ir até o menu SispetroWeb/Log para visualizar seu log. Este log é importante pois mostra eventuais problemas que o usuário está tendo no momento utilizando o SispetroWeb.
II. Permitir visualizar e editar os arquivos de configuração do SispetroWeb
Anteriormente, a edição dos arquivos do SispetroWeb só era possível caso o usuário se conectasse à máquina virtual via SSH editando os arquivos manualmente. Agora, é possível fazer isso a partir de uma interface WEB.
Temos 3 configurações possíveis:
- Dados de conexão do banco de dados.
- Interface de rede da máquina virtual (para trocar o IP dela, por exemplo).
- Dados do endereço do servidor para links em emails.
III. Inclusão automática de Ordens de Carregamento
O processo de inclusão automática de ordens de carregamento passa por uma série de configurações e passos para ser executado com sucesso.
Vamos dividir o processo em passos, que são as etapas que os sistemas executam, e configurações, que é o que eles esperam ter como parâmetros.
Passos
- Usuário na congênere salva um arquivo na sua pasta Processar.
- CloudBerryDrive Server Edition instalado no computador dele sincroniza imediatamente este arquivo na nuvem.
- SispetroMon monitora a cada x minutos a pasta Processar na nuvem, copiando os eventuais arquivos e excluindo-os da nuvem (importante: a direção de sincronização da pasta Processar é sempre da nuvem para a armazenadora, sendo que o arquivo é excluído de lá logo após sua cópia para a pasta Processar da armazenadora).
- SispetroMon tenta ler o arquivo transformando-o num objeto JSON (JavaScript Object Notation). Caso dê algum erro, move o arquivo para a pasta Erros e cria um novo arquivo com o mesmo nome do original com uma extensão _ERR, salvando o erro dentro dele.
- SispetroMon acessa SispetroWEB via API de inclusão de ordem de carregamento, sendo autenticado a partir de uma chave de acesso e uma chave secreta, cadastrados no próprio SispetroMon para cada congênere.
- SispetroWeb tenta localizar usuário a partir da chave de acesso passada. Caso não o encontre ou a chave secreta seja diferente da chave secreta passada, gera um erro, retornando-o para o SispetroMon.
- SispetroWeb abre o objeto e acessa o campo de CNPJ da empresa congênere. Se não conseguir localizar a empresa pelo CNPJ passado, retorna um erro para SispetroMon.
- SispetroWeb tenta incluir Ordem de Carregamento com os dados passados. As regras de validação são as mesmas do Sispetro normal. Caso alguma regra impeça inclusão, SispetroWeb retorna os erros.
- Caso inclusão seja bem sucedida, SispetroWeb retorna a OC incluída com um código OK (200).
- SispetroMon recebe os erros ou a OC incluída. Caso receba erros, faz o mesmo procedimento descrito acima para erro (move arquivo original e cria um outro com conteúdo dos erros para a pasta Erros). Caso receba OC, move arquivo original para pasta processados, criando um novo arquivo com extensão _<numeroOC> com o conteúdo da OC incluída.
- SispetroMon sincroniza as pastas processados e erros com a nuvem copiando portanto os eventuais arquivos para ela.
- CloudBerryDrive Server Edition sincroniza os arquivos das pastas processados e erros da nuvem para as pastas da congênere.
...
Na Nuvem
- Criar bucket da armazenadora para cada nova armazenadora. Este bucket deve ter o nome da armazenadora.
- Criar pasta para cada congênere que irá armazenar na armazenadora. O nome da pasta é o nome da congênere.
- Criar dentro da pasta da congênere três pastas: processar, processados, erros. Estes nomes devem ser fixos e em minúsculas.
- Criar um usuário para a congênere via interface IAM da Amazon. Marcar este usuário para que acesse a Amazon somente via API (essa é a primeira opção).
- Criar uma regra de acesso para este usuário, copiando a regra da área de testes e alterando somente o nome das pastas, de forma que este usuário consiga ler e gravar nas pastas da congênere.
- Gerar um access key e um secret key anotando ambos.
Na Congênere
- Criar três pastas no computador onde os arquivos serão salvos: processar, processados, erros. Estes nomes devem ser fixos e em minúsculas.
- Instalar o CloudBerry Drive server edition. Este programa é comprado (portanto temos de adquirir a licença antes do funcionário ir para a congênere). A versão server edition é utilizada caso a congênere queira que as pastas fiquem em algum servidor Windows (o cenário mais comum). Após instalar, configurá-lo para sincronizar com as pastas dessa congênere na nuvem, utilizando também o access key e secret key criado anteriormente na nuvem. Testar copiando qualquer arquivo para dentro da pasta na congênere e visualizando, via browser, as pastas no S3. Ele deve aparecer imediatamente após o arquivo ter sido copiado. Exclua o arquivo na nuvem e o mesmo será excluído da pasta local.
Na Armazenadora
No Sispetro
Criar um usuário no Sispetro com a opção de incluir e/ou cancelar ordens de carregamento, conforme o caso. Este usuário poderá ser utilizado tanto para o SispetroWeb, para que o usuário possa incluir as Ordens de Carregamento manualmente pela Web, quanto para que o SispetroMon possa se autenticar como se fosse ele.
Aviso Existem dois campos no cadastro do usuário que são fundamentais para que a API do SispetroWeb encontre e autentique o usuário: accessKey e secretKey na tabela Usuario. Não existe ainda uma interface para geração dos dados aleatórios para este campo nem para sua visualização. Assim, deve-se atualizar estes campos manualmente via ISQL tendo em mente que ambos os campos devem ser longos, com muitos caracteres aleatórios (exemplo: eQ1tClN+No7Xo6lv548uOKH4NRS0Vp+Bg/oYTvSm) e não devem ser iguais.
- Dentro da armazenadora, cada congênere é uma empresa. Assim, verificar se já foi criada a empresa para esta congênere. Caso não tenha, deve-se criá-la.
- Deve ser criado ou localizado no cadastro de clientes o cliente que "representa" esta congênere, preenchendo o campo específico no cadastro da empresa.
Neste cliente, deve ser configurado um de-para para o cadastro de produtos da congênere, incluindo todos os produtos que a congênere movimenta, relacionando assim cada código de produto com o seu respectivo código interno no Sispetro. - Dentro do cliente que representa a congênere, vincular o de-para do produto.
Na máquina Virtual
- Após instalar a máquina virtual e verificar se consegue acessar tanto o SispetroWeb quanto o SispetroMon, iniciar as etapas de configuração.
No SispetroMon
...
- Nome Congênere: Coloque o nome usual da congênere. Este campo é informativo apenas.
- Pasta Local: Desabilitado. Sispetromon vai criar automaticamente estes diretórios conforme o nome da pasta remota.
Informações |
---|
Ele também vai excluir os diretórios automaticamente ao excluir congênere do cadastro. |
- Pasta Remota: nome da pasta remota dentro do bucket da armazenadora, criado anteriormente para a congênere (passo 2 do tópico Na Nuvem).
Deve ser preenchido somente com o nome sem '/' antes ou depois (exemplo: teste). - Access Key e Secret Key Nuvem: dados do usuário criado na nuvem (passo 4 do tópico Na Nuvem).
- Access Key e Secret Key Sispetro: dados do usuário criado no Sispetro (passo 1 do tópico Na Armazenadora / No Sispetro).
- Delay Sincronização: Tempo em milisegundos que o SispetroMon utilizará para verificar se houve alguma inclusão na pasta 'processar' na nuvem. Como essa é uma operação mais lenta, existe um tempo mínimo de 1 minuto para este parâmetro.
- Serviço de sincronização Ativo: Pode-se habilitar ou desabilitar este serviço para cada congênere de forma independente e sem precisar reiniciar o servidor.
Aviso |
---|
Para fazer o serviço funcionar, o usuário deve ainda configurar o de-para da empresa conforme detalhado no documento da API de inclusão do serviço de inclusão de Ordens de Carregamento |
IV. Criação de Usuários
Aqui, podemos criar usuários administradores do SispetroMon.
...
Para mais informações sobre a administração do SispetroMon, acesse SispetroMon.
Se deseja monitorar o SispetroWeb, acesse Monitorando o SispetroWeb.
Se deseja configurar o monitoramento do Servidor Hermes, clique em Monitorando o Servidor Sispetro.