Alertas (alerter)¶
O alerter é um serviço de notificações integrado. Ele monitora o estado dos fluxos, do hardware do nó, da recepção DVB e da gravação DVR, e gera alertas (incidentes) quando algo ultrapassa os limites definidos. A lista de alertas ativos é visível no painel de administração; em uma rede com a replicação em todo o domínio ativada, cada nó mostra um conjunto consolidado de alertas de todo o domínio.
O alerter também funciona em um nó isolado — o Meshwork só é necessário para a replicação de alertas em todo o domínio.
Como funciona um alerta¶
Cada incidente tem um identificador estável: a reincidência do mesmo problema é o mesmo incidente, não um novo.
Um incidente passa por estados: gerado (observado pela primeira vez), atualizado (observado novamente com uma alteração significativa), resolvido (o problema desapareceu). O conjunto ativo são os incidentes que ainda não foram resolvidos.
Cada alerta tem um nível de gravidade (em ordem crescente: informação, aviso, erro, crítico, requer ação do administrador), um código (o tipo numérico de incidente — veja o catálogo abaixo), uma fonte (fluxo, nó, armazenamento), um nó de origem (quem gerou o alerta) e um nome de objeto legível.
O nível de gravidade não fica preso ao incidente para sempre. Enquanto o incidente estiver aberto, o serviço o reavalia junto com as demais verificações (cerca de uma vez a cada 5 segundos) e, havendo alteração, passa o incidente ao estado «atualizado» — com o mesmo identificador, por isso uma segunda linha não aparece na lista, e a lista é reordenada. Aos destinatários externos essa alteração não é enviada: uma reavaliação não deve transformar-se em um e-mail ou em uma mensagem de chat.
A maioria dos alertas é baseada em nível: o serviço reavalia periodicamente a condição e gera ou resolve o alerta por conta própria. Parte dos alertas que exigem ação do administrador é persistente — eles não se resolvem sozinhos enquanto a causa não for eliminada (são resolvidos manualmente, veja Visualização e resolução de alertas).
A lista de alertas ativos é mantida na memória e é apagada ao reiniciar o serviço.
Controle no nível do fluxo. Cada fluxo dispõe de um interruptor que silencia por completo os seus alertas (junto com os das suas entradas e saídas) e de um atraso de alerta: uma fonte que se restabelece dentro do tempo definido não levanta alerta — isso suaviza oscilações breves. O mesmo atraso absorve também uma falha curta da entrada principal: se o fluxo chegou a passar para a reserva antes de ele expirar, não haverá alerta algum de erro de entrada — a comutação é informada pelo alerta de operação em reserva (código 27), que esse mesmo atraso adia. O limiar de ausência de dados de um fluxo é contado à parte e não é contido pelo atraso, por isso pode disparar antes.
Configurações do alerter¶
As configurações estão na seção de alertas e exigem o papel de administrador. Os campos exatos estão descritos na seção Interface web; abaixo, o que pode ser configurado.
Interruptor principal do serviço de notificações (ativado por padrão). Um alerter desativado silencia por completo: o nó não gera alertas próprios e não envia nada aos destinos externos — nem os seus alertas, nem os replicados em todo o domínio a partir dos nós vizinhos.
Replicação em todo o domínio (ativada por padrão): um nó compartilha seus alertas com os nós do mesmo domínio e recebe os deles — cada nó mostra um conjunto consolidado. Só tem efeito quando um domínio está definido.
Replicação de alertas do sistema (desativada por padrão): os alertas sobre o hardware do nó (CPU e memória do host, processo do streamer e transcodificadores, carga de rede e GPU, threads de trabalho e o frontend DVB — códigos 16–23 e 40–45) são locais por padrão; ative-a para que também sejam replicados em todo o domínio. Os alertas de armazenamento (códigos 24–25) permanecem sempre locais.
Limiares de fluxo: tempo limite de ausência de dados (padrão 15 s), taxa de bits mínima admissível (verificação desativada por padrão), limiar de erros do contador de continuidade em uma janela de 10 s (níveis de aviso e erro).
Limiares de recursos do nó — pares «aviso / erro» em porcentagem para o CPU e a memória do host, o processo do streamer e os transcodificadores, a carga da interface de rede e do GPU, bem como o preenchimento do armazenamento DVR. Os limiares do host são definidos mais altos que os do processo do streamer e dos transcodificadores, para que um componente individual avise antes que toda a máquina fique saturada. O valor 0 desativa o nível correspondente.
Limiares do frontend DVB — nível de sinal, SNR/qualidade, taxa de erros de bit e blocos não corrigidos; aplicados a um adaptador com captura de sinal (lock).
Limiares de gravação DVR — o número de gravações falhadas consecutivas, o multiplicador de estagnação da gravação, a proporção de não cobertura do arquivo e o tempo de leitura/gravação dos chunks no disco.
Catálogo de códigos de alerta¶
O código é o tipo numérico de incidente, conveniente para agrupamento e localização. A coluna «Replicação» indica se o alerta é replicado em todo o domínio (quando a replicação está ativada) ou permanece local ao nó.
Fluxos: estado e ciclo de trabalho (fonte — fluxo)
Código |
Evento |
Replicação |
|---|---|---|
1 |
uma entrada ou saída passou ao estado de erro |
em todo o domínio |
2 |
erro irrecuperável do ciclo de trabalho, é necessário reset manual (requer ação do administrador) |
em todo o domínio |
3 |
um fluxo em execução não fornece dados por mais tempo que o tempo limite |
em todo o domínio |
4 |
a taxa de bits do fluxo permanece abaixo do mínimo |
em todo o domínio |
13 |
o fluxo está pausado: não resta nenhuma entrada utilizável (requer ação do administrador) |
em todo o domínio |
14 |
uma entrada ou saída se autoestacionou e não se recupera na nova tentativa (requer ação do administrador) |
em todo o domínio |
27 |
o fluxo funciona na entrada de reserva — ocorreu uma comutação |
em todo o domínio |
39 |
carga alta de CPU pela thread de trabalho do fluxo |
em todo o domínio |
58 |
um salto de PCR da fonte além da janela de descontinuidade rompeu a emissão — o acumulado foi descartado |
em todo o domínio |
59 |
a emissão foi ressincronizada pelo tempo real: a alimentação não sustenta o atraso configurado |
em todo o domínio |
60 |
um fluxo em execução ficou sem nenhuma entrada que o alimente |
em todo o domínio |
61 |
um salto de PCR da fonte além da janela de descontinuidade ocorreu sem perdas |
em todo o domínio |
O nível de um alerta de código 1 é determinado pelas consequências da falha, e não pelo simples fato de haver um erro. Uma saída com falha é sempre «crítica»: atrás dela não há reserva, é entrega perdida. Uma entrada com falha só é crítica se o fluxo passa justamente por ela ou se ainda não há entrada ativa; a falha de uma entrada que o fluxo não está usando no momento é uma perda de redundância, e a esse alerta é atribuído o nível «erro». Assim a gravidade consolidada de um fluxo concorda com o seu estado: uma reserva defeituosa não pinta de crítico um fluxo saudável. E se já não há para onde comutar e o fluxo parou, um incidente sobre uma entrada que ainda tenta subir lê-se como «crítico» — atrás dela já não há reserva. Ao comutar para a reserva, o incidente da entrada abandonada é retirado por completo: a entrada é parada, enquanto a causa pela qual o fluxo saiu dela permanece visível na interface como histórico (Redundância de fontes).
O código 60 descreve o fluxo por inteiro, e não um ponto isolado: ele se mantém enquanto nenhuma entrada de um fluxo em execução trouxer dados, e sobrevive a qualquer número de comutações para a reserva — ao contrário do código 1, sempre ligado a uma entrada ou saída específica e que, num fluxo com reserva, se fragmenta em vários incidentes efêmeros. A condição precisa durar quinze segundos, de modo que a partida do nó e a aplicação de configurações, em que as entradas deixam de entregar dados por um instante, não levantam o código 60. Um fluxo parado pelo administrador ou colocado em pausa não se enquadra nele: esse estado é descrito pelos códigos 13 e 14.
Os códigos 58, 59 e 61 são uma recomendação sobre os ajustes de sincronização da entrada, e não o relato de uma falha isolada: o nó conta esses eventos em uma janela deslizante de uma hora e levanta um incidente quando passam do limiar. Eles se distinguem pelo custo para o destinatário. O código 58 é um salto de PCR da fonte que custou conteúdo: o buffer de sincronização foi descartado e a emissão se rompeu; a mensagem informa quanto do fluxo acumulado o último caso desse tipo descartou. O código 61 é a mesma ruptura da linha do tempo da fonte, conduzida sem perdas. O código 59 não trata da fonte de modo algum: o buffer de sincronização se esvaziava, ou seja, a alimentação não sustenta o atraso configurado — corrige-se aumentando o buffer (Sincronização) e, numa entrada de transcodificador, também suavizando o bitrate no fluxo pai. Os três são persistentes: reconectar a entrada não os resolve. O incidente se resolve sozinho quando se altera qualquer um dos ajustes de sincronização da entrada ou do fluxo — o ajuste alterado é reavaliado — ou após seis horas sem um único evento. Um fluxo parado conserva o incidente: a recomendação continua valendo.
Conformidade do fluxo de transporte (analisador TR 101 290) (fonte — fluxo; todos replicados em todo o domínio)
Código |
Evento |
|---|---|
5 |
descontinuidades PCR repetidas (TR 101 290, 2.3) |
6 |
intervalo de repetição PCR maior que 40 ms (2.3a) |
7 |
intervalo de repetição PAT maior que 500 ms (1.3) |
8 |
intervalo de repetição PMT maior que 500 ms (1.5) |
9 |
intervalo de repetição PTS maior que 700 ms (2.5) |
10 |
precisão PCR pior que 500 ns (2.4) |
11 |
estouro ou subfluxo do buffer T-STD para vídeo (3.3) |
12 |
deriva PCR maior que 30 ppm (histórico: o alerta não é mais gerado, a deriva é exibida como métrica — Medições contínuas) |
15 |
erros do contador de continuidade acima do limiar em uma janela curta (1.4) |
46 |
erro de CRC nas tabelas PSI (2.2) |
47 |
o indicador transport_error_indicator está ativado (2.1) |
48 |
intervalo de repetição da tabela SI excedido (SDT / EIT / TDT / NIT) |
49 |
veredito geral: o fluxo não está em conformidade com a TR 101 290 |
Parte dos códigos do analisador aparece apenas quando as opções de análise estão ativadas (análise profunda, análise de descontinuidades PTS, análise do buffer T-STD) e aplica-se somente a fluxos de taxa de bits constante; o veredito geral (49) só é emitido para uma taxa de bits comprovadamente constante. Mais detalhes na seção Analisador.
Recursos e hardware do nó (fonte — sistema)
Código |
Evento |
|---|---|
16 |
carga de CPU do host acima do limiar |
17 |
uso de memória do host acima do limiar |
18 |
CPU do processo do streamer acima do limiar |
19 |
memória do processo do streamer acima do limiar |
20 |
CPU total dos transcodificadores acima do limiar |
21 |
memória total dos transcodificadores acima do limiar |
22 |
carga da interface de rede acima do limiar (por interface) |
23 |
carga de GPU acima do limiar (por dispositivo) |
24 |
preenchimento do armazenamento DVR acima do limiar (por armazenamento) |
25 |
o sistema de arquivos do armazenamento DVR está indisponível (requer ação do administrador) |
40 |
carga alta de CPU pela thread de trabalho do adaptador DVB |
41 |
o frontend DVB perdeu o sinal (lock) |
42 |
nível de sinal DVB abaixo do limiar |
43 |
SNR/qualidade do sinal DVB abaixo do limiar |
44 |
taxa de erros de bit (BER) DVB acima do limiar |
45 |
blocos não corrigidos DVB acima do limiar |
Todos os alertas deste grupo são locais por padrão. Os códigos 16–23 e 40–45 podem ser replicados em todo o domínio com o interruptor de replicação de alertas do sistema; os códigos 24–25 permanecem sempre locais. Os alertas de limiar do frontend DVB (42–45) são avaliados apenas em um adaptador com captura de sinal; o código 41 é gerado na perda do enganche (lock). O BER (44) está desativado por padrão, pois a escala bruta depende do receptor (veja Receptor DVB).
Meshwork e ciclo de vida (fonte — rede/sistema; local)
Código |
Evento |
|---|---|
26 |
um nó da rede ficou em silêncio — parou de confirmar a conexão |
28 |
o processo do streamer concluiu a inicialização (notificação de curta duração) |
37 |
dois nós com o mesmo nome em um mesmo domínio (requer ação do administrador) |
O alerta de código 26 mantém-se durante todo o tempo em que o nó constar como indisponível — até uma semana (Mapa da rede). Ele é resolvido sozinho quando o nó volta a comunicar e desaparece junto com a linha do nó, se o nó indisponível tiver sido esquecido manualmente.
Saúde da gravação DVR (fonte — fluxo; local)
Código |
Evento |
|---|---|
29 |
as gravações de segmentos ou do índice DVR falham — o arquivo não está sendo gravado |
30 |
a gravação DVR estagnou: há entrada, mas um novo segmento não é salvo há muito tempo |
31 |
o arquivo DVR degradou — lacunas na cobertura recente |
32 |
o índice do arquivo DVR está corrompido (requer ação do administrador) |
50 |
tempo de leitura/gravação elevado dos chunks DVR no disco |
Configuração, transcodificadores, OTT, certificados e licença (fonte — sistema/fluxo)
Código |
Evento |
Replicação |
|---|---|---|
33 |
a configuração principal não foi carregada na inicialização, o serviço iniciou com a de reserva (requer ação do administrador) |
em todo o domínio |
34 |
no modo low-latency HLS/DASH, as faixas de áudio em um codec não suportado foram descartadas (AAC e AC-3 são suportados) |
em todo o domínio |
35 |
não foi possível emitir ou renovar o certificado HTTPS por meio do cliente ACME integrado |
em todo o domínio |
36 |
um transcodificador configurado não foi carregado na inicialização — não há arquivo executável ou dispositivo (requer ação do administrador) |
em todo o domínio |
38 |
o fluxo requer um transcodificador (software, NVIDIA ou Intel VPL) indisponível neste nó (requer ação do administrador) |
local |
55 |
a licença do nó está expirando: um aviso duas semanas antes do fim do prazo e, uma vez atingido este, requer ação do administrador, e o nó reinicia o serviço |
em todo o domínio |
56 |
a licença do nó foi considerada não autêntica (requer ação do administrador): o nó reinicia o serviço e a inicialização é recusada — o serviço permanece parado até que haja uma licença autêntica no nó e ele seja iniciado novamente |
em todo o domínio |
57 |
a licença do nó é autêntica, mas pertence a uma geração que esta versão não aceita mais (requer ação do administrador): o prazo não venceu e não há falsificação — a geração 2 é aceita apenas como licença de teste temporária, por isso uma perpétua dessa geração é recusada de imediato |
em todo o domínio |
Desembaralhamento: módulo de acesso condicional (CI/CAM, EN 50221) e BISS (fonte — sistema; local)
Código |
Evento |
|---|---|
51 |
o módulo CAM foi removido (requer ação do administrador) |
52 |
sem assinatura: o módulo informa que o programa não está pago |
53 |
erro CI/CA — um erro irrecuperável de canal ou de acesso condicional |
54 |
o desembaralhamento não funciona: um programa com a chave BISS definida ou atribuído ao CAM continua embaralhado |
Visualização e resolução de alertas¶
O painel de administração tem uma seção de alertas com uma lista de alertas. Ela pode ser filtrada por conjunto (apenas ativos / apenas resolvidos / todos), por nível de gravidade, por tipo e identificador da fonte, por código, por domínio e por tempo, e também é possível pesquisar pelo texto da mensagem. Por padrão são exibidos tanto os registros ativos quanto os recentemente resolvidos (o log de transições), por isso o número total de linhas pode exceder o número de incidentes ativos — para o conjunto ativo atual, escolha o modo «apenas ativos».
Não é necessário consultar o estado manualmente: o painel de administração recebe as alterações do conjunto ativo em tempo real e atualiza a lista por conta própria, assim que um alerta é gerado, atualizado ou resolvido.
Os alertas baseados em nível são resolvidos automaticamente quando a condição desaparece. Os alertas persistentes que exigem ação do administrador (por exemplo, um erro de carregamento da configuração, a indisponibilidade do armazenamento, um erro grave do ciclo de trabalho) não se resolvem sozinhos: após a eliminação da causa, tal incidente é resolvido (confirmado) manualmente. A resolução tem efeito no nó que gerou o alerta: se na rede você vir um incidente alheio (replicado em todo o domínio), deve resolvê-lo no nó de origem (ele é indicado na linha). Se a fonte se calar, os vizinhos retiram as linhas dela da sua lista consolidada cerca de quarenta e cinco segundos após a última mensagem. Isso não é uma resolução do incidente, e sim a remoção da cópia: na própria fonte o incidente permanece e, quando o nó voltar a se comunicar, as linhas não resolvidas ali retornarão à lista. É assim que também sai da lista consolidada o alerta de licença vencida de um nó parado — não é possível resolvê-lo na fonte, porque ali o serviço não está funcionando.
Um incidente que se levanta e se resolve repetidamente deixa de ser apagado de imediato pelo nó. Após três ciclos completos de «levantamento — resolução» separados por não mais de dez minutos, as resoluções ficam retidas: a linha permanece no conjunto ativo, e uma única resolução verdadeira só sai depois que a condição se mantiver resolvida por pelo menos o tempo da própria série — por padrão, esses mesmos dez minutos. Um novo levantamento cancela a contagem, e a série se lê como um incidente contínuo em vez de uma dezena de curtos. Uma recuperação primeira ou rara é apagada instantaneamente, como antes, ao passo que a resolução manual, a exclusão do fluxo, o desligamento dos alertas no fluxo e o desligamento do próprio serviço contornam a espera. O mecanismo vem ativado por padrão e é necessário sobretudo para a entrega externa: sem ele, uma condição oscilante enviaria aos destinatários um par de mensagens por ciclo.
Replicação de alertas em todo o domínio¶
Com a replicação ativada e um domínio definido, cada nó mostra um conjunto ativo consolidado de todo o domínio: os alertas próprios do nó mais os alertas dos peers do mesmo domínio. Cada linha indica o nó de origem, de modo que se vê em qual nó exatamente o problema ocorreu.
Replicados em todo o domínio: os alertas de fluxo e os alertas de conformidade do fluxo de transporte, a comutação para a entrada de reserva, os erros de carregamento da configuração e do transcodificador, o descarte de áudio OTT, o erro de certificado ACME, o vencimento da licença e a sua consideração como não autêntica.
Permanecem locais: os alertas de recursos sobre hardware e armazenamento, «nó em silêncio», a colisão de nomes de nós, a notificação de inicialização do serviço, os alertas de saúde da gravação DVR, a exigência de um transcodificador indisponível no nó, os alertas do módulo de acesso condicional e o desembaralhamento malsucedido. Os alertas do sistema sobre o hardware (códigos 16–23 e 40–45) podem ser passados para replicação com o interruptor de replicação de alertas do sistema.
Cada nó gera por conta própria o alerta «nó da rede em silêncio» sobre o peer que parou de responder — por isso, para um mesmo nó que caiu, seus peers gerarão tal alerta independentemente uns dos outros.
Entrega externa de alertas¶
Além da lista no navegador, os alertas podem ser entregues a um comando externo, a um chat do Telegram e por e-mail (SMTP). Cada canal é independente e está desativado por padrão, e realiza a entrega em sua própria thread em segundo plano, de modo que um destinatário lento ou inacessível não atrasa os demais canais nem o próprio serviço.
Cada canal tem um nível de gravidade mínimo para a entrega (aviso por padrão): é entregue cada alerta visível no nó (próprio ou replicado em todo o domínio) que não seja inferior a este nível, tanto na geração quanto na resolução. Os parâmetros de conexão de cada canal estão descritos na seção Interface web.
Os canais são independentes apenas entre si: os três estão subordinados ao interruptor principal do alerter (Configurações do alerter). Com o serviço desativado não sai nada — nem pelos alertas próprios, nem pelos replicados a partir dos nós vizinhos, nem pela resolução de um incidente já comunicado.
Problemas comuns¶
Os alertas dos peers não estão visíveis. Verifique se a replicação em todo o domínio está ativada nos nós e se há um domínio comum definido. Os alertas do sistema sobre o hardware são locais por padrão — ative a replicação de alertas do sistema se você também precisar vê-los em todo o domínio.
Um alerta persistente não desaparece após a eliminação da causa. Resolva-o manualmente no nó de origem.
As notificações externas não chegam, embora o canal esteja configurado e o limiar seja adequado. Verifique o interruptor principal do alerter no nó de que você espera a entrega: um serviço desativado silencia também os alertas alheios, replicados em todo o domínio, embora eles continuem visíveis no painel de administração.