Unlimited Plugins, WordPress themes, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. Web Development

Monitore e Controle Aplicações Usando Supervisor: Parte 1

by
Difficulty:IntermediateLength:ShortLanguages:
This post is part of a series called Monitor and Control Applications Using Supervisor.
Monitor and Control Applications Using Supervisor: Part 2

Portuguese (Português) translation by Nösfe Rodrigo (you can also view the original English article)

Supervisor é uma ferramenta de monitoração que controla vários processos filhos e controla o início/reinício desses processos filhos quando eles encerram abruptamente ou encerram por alguma razão. Ele pode ser estendido para controlar os processos via XML-RPC API para locais remotos sem logging para o servidor. Eu cobrirei o XML-RPC API na segunda parte desta série de duas partes.

Na primeira parte desta série de tutorial, eu irei guiá-lo através da configuração do Supervisor para que ele trabalhe com a nossa aplicação. Para isso, vou criar um simples aplicativo no Flask juntamente com Gunicorn para atuar como nosso servidor WSGI HTTP.

Presumo que você tenha uma compreensão básica do Flask, Gunicorn e ambiente instalação práticas recomendadas usando virtualenv para ser seguido ao desenvolver um aplicativo Python.

Instalando pacotes

Os seguintes pacotes precisam ser instalados para desenvolver e controlar o aplicativo que estaremos desenvolvendo.

O aplicativo Trivial

Agora vou criar uma aplicação trivial Flask. Esta aplicação é pequena mas satisfará as necessidades deste tutorial.

Abaixo está a estrutura do aplicativo:

flask_app/my_app/__init__.py

No arquivo acima, o aplicativo foi configurado e iniciado.

flask_app/my_app/views.py

No arquivo acima, eu criei endpoint simples de Hello World.

Para executar o aplicativo como um processo, podemos usar Gunicorn. Para verificar se o Gunicorn está funcionando conforme o esperado, basta que execute o seguinte comando a partir da pasta do aplicativo.

Depois disso, aponte seu navegador para http://127.0.0.1:8000/ para abrir a aplicação Página inicial.

Configurando e usando o Supervisor

Agora, precisamos fazer o mesmo usando o Supervisor para que ele seja executado como um daemon e para que seja controlado pelo Supervisor em si, ao invés de intervenção humana.

Em primeiro lugar, precisamos de um arquivo de configuração do Supervisor. Supervisor, por padrão, procura uma pasta etc que tenha um arquivo chamado supervisord.conf. Em instalações de todo o sistema, esta pasta é /etc/, e em virtualenv, Vai procurar uma pasta etc em virtualenv e então se volta para /etc/.

No caso de uma instalação de todo o sistema, execute:

No caso de virtualenv, de dentro da pasta de raiz do virtualenv, execute:

O programa echo_supervisord_conf é fornecido por Supervisor; imprime um arquivo de configuração de exemplo para o local especificado. Isso criará um arquivo chamado supervisord.conf no local especificado no comando acima.

Para configurar o Supervisor para nosso aplicativo, adicione o seguinte bloco em algum lugar neste arquivo:

Aqui vamos configurar o comando que precisa ser executado e de qual local de diretório precisa fazê-lo sob a qual o usuário. Também especificado se é necessário reiniciar o aplicativo em caso de qualquer falha. Locais dos arquivos de log também podem ser especificados. Existem muitas outras opções de configuração, que podem ser pesquisadas na documentação oficial do Supervisor.

Anote que você nunca deve executar os aplicativos como um usuário root. Isto é uma enorme falha de segurança bem como o aplicativo trava, que podendo prejudicar o sistema operacional em si.

Para executar o aplicativo usando o Supervisor, execute os seguintes comandos:

O primeiro comando invoca o servidor supervisord, e o outro dá um status de todos os processos da filhos.

Cada vez que fizer uma alteração em seu aplicativo e em seguida deseja reiniciar Gunicorn para refletir as alterações, execute o seguinte comando:

Você também pode passar processos específicos em vez de reiniciar tudo:

Supervisor também fornece uma interface Web que pode ser habilitada, permitindo que o bloco de configuração de inet_http_server em supervisord.conf. Essa interface Web pode ser acessada na url http://localhost:9001/.

Conclusão

Neste tutorial, vimos como configurar Supervisor e usá-lo para executar um aplicativo como um processo de daemon e controlar os processos coletivamente ou seletivamente. Na segunda parte desta série de tutorial, veremos como controlar e interrogar o Supervisor e seus programas/processos usando a API XML-RPC.

Seja o primeiro a saber sobre novas traduções–siga @tutsplus_pt no Twitter!

Advertisement
Advertisement
Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.