Integração HOMER
Este documento cobre a integração opcional do HOMER para correlacionar logs de aplicativos com rastros SIP.
Visão Geral
OmniTAS pode encaminhar logs de aplicativos para um servidor HOMER usando o HEP3 (Homer Encapsulation Protocol) sobre UDP. Os logs são correlacionados com rastros SIP usando o SIP Call-ID, permitindo visibilidade de ponta a ponta do processamento de chamadas junto com a sinalização.
Como Funciona
- Metadados de Log: Durante o processamento da chamada, o OmniTAS define o SIP Call-ID nos metadados do Logger.
- Captura de Log: O módulo Homer se inscreve em mensagens de log via PubSub.
- Filtragem: Apenas logs contendo metadados
call_idsão encaminhados. - Codificação HEP3: Os logs são codificados como pacotes HEP3 com tipo de protocolo 100 (log).
- Correlação: O HOMER correlaciona logs com rastros SIP usando o Call-ID.
Configuração
Adicione a configuração homer_server ao seu config/runtime.exs:
config :tas,
homer_server: %{
host: "10.179.2.136",
port: 9060,
auth_key: nil,
capture_id: 2001
}
Parâmetros
| Parâmetro | Tipo | Necessário | Padrão | Descrição |
|---|---|---|---|---|
host | String | Sim | - | Endereço IP ou nome do servidor HOMER |
port | Inteiro | Não | 9060 | Porta UDP do receptor HEP |
auth_key | String | Não | nil | Chave de autenticação HEP opcional. Defina para corresponder ao authkey na configuração do heplify-server se habilitado |
capture_id | Inteiro | Não | 2001 | Identificador do agente de captura. Aparece na interface do HOMER para identificar a fonte do log |
Desabilitando a Integração HOMER
Para desabilitar a integração HOMER, você pode:
- Remover completamente a configuração
homer_server, ou - Comentar o bloco de configuração
Quando desabilitado, o módulo Homer não é iniciado e nenhum log é encaminhado.
Requisitos do Servidor HOMER
O servidor HOMER deve estar executando o heplify-server com a recepção HEP habilitada no UDP.
Configuração do heplify-server
Verifique se o seu heplify-server.toml inclui:
HEPAddr = "0.0.0.0:9060"
Tipos de Protocólos Suportados
OmniTAS envia logs com tipo de protocolo HEP 100, que o heplify-server roteia para logs_capture. Certifique-se de que o esquema do banco de dados HOMER suporte o armazenamento de logs.
Correlação de Logs
Injeção Automática de Call-ID
OmniTAS injeta automaticamente o Call-ID nos metadados do Logger durante:
- Processamento de Chamada MO: Ao processar chamadas originadas de dispositivos móveis
- Processamento de Chamada MT: Ao processar chamadas terminadas em dispositivos móveis
- Eventos de Chamada: Ao lidar com eventos de resposta e desligamento
Formato de Log
Os logs enviados para o HOMER incluem:
| Campo | Descrição |
|---|---|
| ID de Correlação | SIP Call-ID para correlação de rastros |
| Timestamp | Timestamp com precisão de microssegundos |
| Nível | Nível de log (debug, info, warning, error) |
| Mensagem | Conteúdo da mensagem de log |
| IP de Origem | Endereço IP do servidor OmniTAS |
| ID de Captura | Identificador do agente de captura configurado |
Exemplo de Log no HOMER
Após uma chamada ser processada, o HOMER exibe dados correlacionados:
[info] Processando chamada MO de: 61400123456 para: 61400654321
[debug] Busca sh para chamador: 61400123456
[info] Autorização OCS: CONCEDIDA (120 segundos)
[debug] Definindo variável: hangup_case = none
Esses logs aparecem ao lado das mensagens SIP INVITE, 200 OK e BYE na visualização de detalhes da chamada do HOMER.
Detalhes do Protocolo HEP3
OmniTAS implementa HEP3 conforme definido pelo projeto HOMER, compatível com o módulo siptrace do Kamailio.
Tipos de Chunk Usados
| ID do Chunk | Nome | Descrição |
|---|---|---|
| 0x0001 | Família IP | Sempre 2 (IPv4) |
| 0x0002 | Protocolo IP | Sempre 17 (UDP) |
| 0x0003 | IPv4 de Origem | Endereço do servidor OmniTAS |
| 0x0004 | IPv4 de Destino | Endereço do servidor HOMER |
| 0x0007 | Porta de Origem | 0 (não aplicável para logs) |
| 0x0008 | Porta de Destino | Porta HEP configurada |
| 0x0009 | Timestamp Sec | Segundos do timestamp Unix |
| 0x000A | Timestamp USec | Componente de microssegundos |
| 0x000B | Tipo de Protocolo | 100 (log) |
| 0x000C | ID de Captura | capture_id configurado |
| 0x0011 | ID de Correlação | SIP Call-ID |
| 0x000F | Payload | Mensagem de log |
| 0x000E | Chave de Autenticação | Autenticação opcional |
Solução de Problemas
Logs Não Aparecendo no HOMER
Sintomas: Chamadas completam com sucesso, mas nenhum log aparece no HOMER.
Possíveis causas:
- Servidor HOMER inacessível na porta configurada
- Firewall bloqueando tráfego UDP para a porta 9060
- heplify-server não configurado para receber HEP
- Logs sem metadados call_id
Resolução:
- Verifique a conectividade da rede:
nc -zvu <homer_host> 9060 - Verifique se o heplify-server está ouvindo:
ss -ulnp | grep 9060 - Revise os logs do heplify-server para pacotes recebidos
- Verifique se o call_id aparece nos logs do OmniTAS (verifique por
call_id=na saída do log)
Falhas de Autenticação
Sintomas: Logs do heplify-server mostram erros de autenticação.
Possíveis causas:
- Chave de autenticação não correspondente entre OmniTAS e heplify-server
- Chave de autenticação configurada de um lado, mas não do outro
Resolução:
- Se o heplify-server não tiver chave de autenticação configurada, defina
auth_key: nilno OmniTAS. - Se o heplify-server exigir autenticação, configure a chave correspondente em ambos os sistemas.
Correlação Ausente
Sintomas: Logs aparecem no HOMER, mas não estão correlacionados com rastros SIP.
Possíveis causas:
- Desconformidade no formato do Call-ID entre SIP e logs
- Configuração de correlação do HOMER
Resolução:
- Verifique se o Call-ID nos logs corresponde exatamente ao cabeçalho SIP Call-ID.
- Verifique as configurações de correlação do HOMER para a tabela logs_capture.
Métricas
Quando a integração HOMER está habilitada, monitore esses indicadores:
Logs do OmniTAS
Fique atento a avisos indicando falhas na transmissão HEP:
[warning] Falha ao enviar pacote HEP para Homer: <reason>
Métricas do heplify-server
Se as métricas do Prometheus estiverem habilitadas no heplify-server, monitore:
heplify_packets_total{type="log"}- Total de pacotes de log recebidosheplify_packets_dropped_total- Pacotes descartados (erros de buffer/análise)
Referência de Arquitetura
Interação de Componentes
Fluxo de Dados
Veja Também
- Projeto HOMER - Captura e monitoramento de VoIP/RTC de código aberto
- Especificação do Protocolo HEP - Documentação do protocolo HEP/EEP
- heplify-server - Servidor de captura HEP