Monitore a Saúde do Seu WebUI Aberto 🩺
Monitorar sua instância do WebUI Aberto é crucial para garantir que ela funcione de forma confiável, tenha um bom desempenho e permita que você identifique e resolva problemas rapidamente. Este guia descreve três níveis de monitoramento, desde verificações básicas de disponibilidade até testes detalhados de resposta do modelo.
Por que monitorar?
- Garantir disponibilidade: Detecte proativamente interrupções e falhas de serviço.
- Insights de desempenho: Acompanhe os tempos de resposta e identifique possíveis gargalos.
- Detecção antecipada de problemas: Identifique problemas antes que eles afetem significativamente os usuários.
- Tranquilidade: Tenha confiança de que sua instância do WebUI Aberto está funcionando perfeitamente.
🚦 Níveis de Monitoramento
Cobriremos três níveis de monitoramento, progredindo do básico ao mais abrangente:
- Verificação básica de saúde: Verifica se o serviço WebUI Aberto está funcionando e respondendo.
- Verificação de conectividade do modelo: Confirma que o WebUI Aberto pode se conectar e listar seus modelos configurados.
- Teste de resposta do modelo (Verificação detalhada de saúde): Garante que os modelos possam processar solicitações e gerar respostas.
Nível 1: Endpoint de Verificação Básica de Saúde ✅
O nível mais simples de monitoramento é verificar o endpoint /health
. Este endpoint é acessível publicamente (não requer autenticação) e retorna um código de status 200 OK
quando o serviço WebUI Aberto está funcionando corretamente.
Como testar:
Você pode usar curl
ou qualquer cliente HTTP para verificar este endpoint:
# Verificação básica de saúde - sem autenticação necessária
curl https://sua-instancia-do-webui-aberto/health
Saída esperada: Uma verificação de saúde bem-sucedida retornará um código de status HTTP 200 OK
. Normalmente, o conteúdo do corpo de resposta não é importante para uma verificação básica de saúde.
Usando o Uptime Kuma para Verificações Básicas de Saúde 🐻
Uptime Kuma é uma excelente ferramenta de monitoramento de tempo de atividade, de código aberto e fácil de usar, auto-hospedada. É altamente recomendada para monitorar o WebUI Aberto.
Passos para configurar no Uptime Kuma:
- Adicionar um novo monitor: No painel do Uptime Kuma, clique em "Add New Monitor".
- Configurar as configurações do monitor:
- Tipo de monitor: Selecione "HTTP(s)".
- Nome: Dê ao seu monitor um nome descritivo, por exemplo, "Verificação de Saúde do WebUI Aberto".
- URL: Insira a URL do endpoint de verificação de saúde:
http://sua-instancia-do-webui-aberto:8080/health
(Substituasua-instancia-do-webui-aberto:8080
pelo endereço e porta reais do seu WebUI Aberto). - Intervalo de monitoramento: Defina a frequência das verificações (por exemplo,
60 segundos
para cada minuto). - Número de tentativas: Defina o número de tentativas antes de considerar o serviço como inativo (por exemplo,
3
tentativas).
O que esta verificação verifica:
- Disponibilidade do servidor web: Certifica-se de que o servidor web (por exemplo, Nginx, Uvicorn) está respondendo às solicitações.
- Aplicativo em execução: Confirma que o aplicativo WebUI Aberto está rodando e inicializado.
- Conectividade básica com o banco de dados: Normalmente inclui uma verificação básica para garantir que o aplicativo possa se conectar ao banco de dados.
Nível 2: Conectividade do Modelo no WebUI Aberto 🔗
Para ir além da disponibilidade básica, você pode monitorar o endpoint /api/models
. Este endpoint requer autenticação e verifica se o WebUI Aberto pode se comunicar com sucesso com seus provedores de modelo configurados (por exemplo, Ollama, OpenAI) e recuperar uma lista de modelos disponíveis.
Por que monitorar a conectividade do modelo?
- Problemas do provedor de modelo: Detecte problemas com seus serviços de provedores de modelo (por exemplo, falhas de API, problemas de autenticação).
- Erros de configuração: Identifique erros de configuração nas configurações dos provedores de modelo no WebUI Aberto.
- Garantir disponibilidade do modelo: Confirme que os modelos que você espera que estejam disponíveis estão realmente acessíveis pelo WebUI Aberto.
Detalhes do Endpoint da API:
Consulte a documentação da API do WebUI Aberto para obter todos os detalhes sobre o endpoint /api/models
e sua estrutura de resposta.
Como testar com curl
(autenticado):
Você precisará de uma chave de API para acessar este endpoint. Consulte a seç ão "Configuração de Autenticação" abaixo para instruções sobre como gerar uma chave de API.
# Verificação de conectividade do modelo autenticada
curl -H "Authorization: Bearer SUA_CHAVE_DE_API" https://sua-instancia-do-webui-aberto/api/models
(Substitua SUA_CHAVE_DE_API
pela sua chave de API real e sua-instancia-do-webui-aberto
pelo endereço do seu WebUI Aberto.)
Saída esperada: Uma solicitação bem-sucedida retornará um código de status 200 OK
e uma resposta JSON contendo uma lista de modelos.
Configuração de Autenticação para a Chave de API 🔑
Antes de monitorar o endpoint /api/models
, você precisa ativar as chaves de API no WebUI Aberto e gerar uma:
-
Ativar Chaves de API (Requer Administrador):
- Faça login no WebUI Aberto como administrador.
- Vá para Configurações do Admin (geralmente no menu superior direito) > Geral.
- Encontre a configuração "Habilitar Chave API" e ative-a.
- Clique em Salvar Alterações.
-
Gerar uma Chave API (Configurações do Usuário):
- Vá para suas Configurações do Usuário (geralmente clicando no ícone do perfil no canto superior direito).
- Navegue para a seção Conta.
- Clique em Gerar Nova Chave API.
- Dê um nome descritivo para a chave API (ex.: "Chave API de Monitoramento").
- Copie a chave API gerada e armazene-a com segurança. Você precisará dela para sua configuração de monitoramento.
(Opcional, mas Recomendado): Para melhores práticas de segurança, considere criar uma conta de usuário não administrativa especificamente para monitoramento e gerar uma chave API para esse usuário. Isso limita o impacto potencial caso a chave API de monitoramento seja comprometida.
Se você não visualizar a opção de geração de chave API em suas configurações, entre em contato com o administrador do Open WebUI para garantir que as chaves API estejam habilitadas.
Usando o Uptime Kuma para Monitoramento de Conectividade do Modelo 🐻
-
Crie um Novo Monitor no Uptime Kuma:
- Tipo de Monitor: "HTTP(s) - Consulta JSON".
- Nome: "Verificação de Conectividade do Modelo Open WebUI".
- URL:
http://sua-instancia-open-webui:8080/api/models
(Substitua pelo seu URL). - Método: "GET".
- Código de Status Esperado:
200
.
-
Configure a Consulta JSON (Verificar Lista de Modelos):
- Consulta JSON:
$count(data[*])>0
- Explicação: Esta consulta JSONata verifica se o array
data
na resposta da API (que contém a lista de modelos) tem uma contagem maior que 0. Em outras palavras, verifica se pelo menos um modelo é retornado.
- Explicação: Esta consulta JSONata verifica se o array
- Valor Esperado:
true
(A consulta deve retornartrue
se modelos forem listados).
- Consulta JSON:
-
Adicione Cabeçalhos de Autenticação:
- Na seção "Cabeçalhos" da configuração do monitor no Uptime Kuma, clique em "Adicionar Cabeçalho".
- Nome do Cabeçalho:
Authorization
- Valor do Cabeçalho:
Bearer SUA_CHAVE_API
(SubstituaSUA_CHAVE_API
pela chave API que você gerou).
-
Defina o Intervalo de Monitoramento: Intervalo recomendado:
300 segundos
(5 minutos) ou mais, já que a lista de modelos geralmente não muda com muita frequência.
Consultas JSON Alternativas (Avançadas):
Você pode usar consultas JSONata mais específicas para verificar modelos ou provedores específicos. Aqui estão alguns exemplos:
- Verificar pelo menos um modelo da Ollama:
$count(data[owned_by=ollama])>0
- Verificar se um modelo específico existe (ex.: gpt-4o):
$exists(data[id=gpt-4o])
- Verificar se vários modelos específicos existem (ex.: gpt-4o e gpt-4o-mini):
$count(data[id in [gpt-4o, gpt-4o-mini]]) = 2
Você pode testar e refinar suas consultas JSONata em jsonata.org usando uma resposta de API de exemplo para garantir que funcionem conforme esperado.
Nível 3: Teste de Resposta do Modelo (Verificação Profunda de Saúde) 🤖
Para o monitoramento mais abrangente, você pode testar se os modelos são realmente capazes de processar solicitações e gerar respostas. Isso envolve o envio de uma solicitação de conclusão de chat simples ao endpoint /api/chat/completions
.
Por que Testar Respostas dos Modelos?
- Verificação de Ponta a Ponta: Confirma que todo o pipeline do modelo está funcionando, desde a solicitação da API até a resposta do modelo.
- Problemas de Carregamento do Modelo: Detecta problemas com modelos específicos que não conseguem carregar ou responder.
- Erros de Processamento de Backend: Identifica erros na lógica de backend que podem impedir que os modelos gerem respostas.
Como Testar com curl
(Solicitação POST Autenticada):
Este teste requer uma chave API e envia uma solicitação POST com uma mensagem simples ao endpoint de conclusões de chat.
# Teste de resposta do modelo - solicitação POST autenticada
curl -X POST https://sua-instancia-open-webui/api/chat/completions \
-H "Authorization: Bearer SUA_CHAVE_API" \
-H "Content-Type: application/json" \
-d {
"messages": [{"role": "user", "content": "Responda com a palavra SAUDÁVEL"}],
"model": "llama3.1", # Substitua por um modelo que você espera que esteja disponível
"temperature": 0 # Configure a temperatura para 0 para respostas consistentes
}
(Substitua SUA_CHAVE_API
, sua-instancia-open-webui
e llama3.1
pelos seus valores reais.)
Saída Esperada: Uma solicitação bem-sucedida retornará um código de status 200 OK
e uma resposta JSON contendo uma conclusão de chat. Você pode verificar se a resposta inclui a palavra "SAUDÁVEL" (ou uma resposta similar esperada com base no seu prompt).
Configurar o Monitoramento do Nível 3 no Uptime Kuma envolveria configurar um monitor HTTP(s) com uma solicitação POST, corpo JSON, cabeçalhos de autenticação e, potencialmente, uma consulta JSON para validar o conteúdo da resposta. Esta é uma configuração mais avançada e pode ser personalizada com base nas suas necessidades específicas.
Ao implementar esses níveis de monitoramento, você pode garantir de forma proativa a saúde, confiabilidade e desempenho da sua instância Open WebUI, proporcionando uma experiência consistentemente positiva para os usuários.