NetXMS como sistema de monitoramento para preguiçosos... e um pouco de comparação com Zabbix

NetXMS como sistema de monitoramento para preguiçosos... e um pouco de comparação com Zabbix

0. Introdução

Não encontrei nenhum artigo sobre o NetXMS no Habr, apesar de ter procurado bastante. E só por essa razão decidi escrever esta obra, a fim de dar atenção a este sistema.

É um tutorial, um guia e uma visão geral das capacidades do sistema.

Este artigo contém uma análise superficial e descrição das capacidades do sistema. Não me aprofundei nas funcionalidades por várias razões. Além disso, descrever toda a funcionalidade levaria mais de um artigo.

Como trabalhei apenas com o Zabbix, este artigo frequentemente mencionará este sistema para comparação com o tema em questão. Também, por alguma razão, tudo é comparado a algo reconhecido.

1. O que e por quê?

Um sistema de monitoramento, como é evidente pela definição, é um sistema que permite obter informações atualizadas sobre qualquer nó da rede, máquina, roteador ou algo similar a qualquer momento.

A necessidade disso é igualmente óbvia. Para estar atento ao que está acontecendo.

Com frequência, um sistema de monitoramento pode fornecer informações bastante abrangentes sobre o estado da infraestrutura como um todo, bem como de suas partes individuais. Além disso, se configurar alertas (e sem isso, não vale a pena qualquer monitoramento), no final obtemos uma ferramenta séria que permite não apenas reagir a situações de emergência que já surgiram, mas também, na maioria dos casos, prevenir essas emergências.

2. Por que NetXMS?

Um pouco de off-topic para aqueles que gostam de muitos textos.Quando eu era jovem e inexperiente… É assim que todas as histórias começam?.. De qualquer forma, quando eu era um maximalista, estudei a questão da monitorização da infraestrutura e o resultado dessas "pesquisas" foi a conclusão de que nada supera o Zabbix. E naquele momento, eu realmente gostei dele, porque ele pode fazer muitas coisas, possui muitos recursos, e sua funcionalidade pode ser expandida com scripts personalizados, então pode-se dizer que ele faz de tudo, se as mãos estiverem no lugar certo. Mas o Zabbix é uma ferramenta bastante complexa. Para conseguir entender minimamente, levei quase duas semanas. E isso foi apenas a fase de implementação. Depois, mais algumas semanas para configurar a monitorização de tudo que eu precisava na época. E quanto à forma de monitorar o estado das portas nos roteadores, eu li, li, fiquei assustado e decidi que isso não era tão necessário para mim... Na verdade, é realmente aterrorizante para uma mente não preparada logo após a faculdade...

E assim, depois de alguns anos, ao amadurecer e me desenvolver, decidi que era hora de atualizar meus conhecimentos sobre sistemas de monitoramento. E finalmente fazer uma monitorização de rede normal e estável, pois esse problema se tornou relevante devido ao crescimento de segmentos, à conexão de filiais e outras pequenas coisas. Tudo flui, tudo muda. Comecei a testar diversos instrumentos. Às vezes instalava um sistema, experimentava, outras vezes outro. E em todos faltava algo, em todos havia algo que não me agradava. Às vezes a interface era desconfortável, outras vezes a configuração era cansativa, ou algo mais. Foi então que encontrei o NetXMS. Vale mencionar que onde com o Zabbix eu levei duas semanas para entender, com o NetXMS tudo fluiu em algumas horas. Pode ser que a experiência com o Zabbix tenha influenciado, ou talvez seja algo específico do NetXMS... difícil saber.

O NetXMS se revelou um sistema bastante simples de instalar e configurar. Ele possui versões de servidor e console de administração tanto para Windows quanto para Linux, geração de gráficos, um "navegador" embutido que permite conectar-se aos mesmos roteadores através de protocolos httphttps diretamente do console de administração, e uma interface intuitiva, além de um agente para qualquer sistema operacional. Em uma palavra, esse sistema se mostrou simples e conveniente. À primeira vista.

A documentação deles, vale mencionar, é nota 8 de 10. As principais informações estão presentes, mas para entender os detalhes, é preciso fazer algumas investigações.

Principais benefícios apontados pelo desenvolvedorMonitoramento profundo da rede
Detecção automática, visualização e busca de componentes conectados nos níveis 2 e 3
Suporte total ao SNMPv3
Detecção ativa com sondas de varredura
Detecção passiva com base nas informações de dispositivos controlados — ARP e tabelas de roteamento, interfaces
Monitoramento de aplicativos e servidores
Todas as principais métricas que você espera: processador, sistemas de arquivos, entrada e saída, memória, tráfego
Bridge JMX para monitoramento de aplicativos Java
Extensões para aplicativos específicos: Oracle, MySQL, PostgreSQL, MongoDB, DB2, Tuxedo e muitos outros
API de integração para aplicativos próprios
Destinado a grandes redes
Um servidor pode monitorar centenas de métricas em milhares de dispositivos
Suporte completo para monitoramento distribuído e escalabilidade horizontal
Monitoramento de sub-redes IP sobrepostas
Controle de acesso flexível para operadores e clientes

3. Aprofundando

Como instalar o sistema — existe um completo manual do administrador, disponível em site do desenvolvedor, e não há nada complicado nisso, então não vou me aprofundar. A parte mais difícil da instalação é conectar o sistema ao banco de dados… A única diferença será na escolha do SGBD e do sistema operacional do servidor. Eu escolhi Windows (continuar — inserir dados — pronto) e MSSQL, pois já o tinha.

3.1. Ativando a detecção automática

A detecção automática de nós da rede pode ser ativada durante a instalação. Se isso não foi feito por algum motivo, sempre pode ser ativada em «Configuration-Network Discovery» ou clicando no ícone com o mesmo nome. Na área de trabalho aparecerão as propriedades de detecção. É necessário ativá-la, mudando para o modo passivo ou ativo, e definir outras propriedades, como as sub-redes a serem consultadas. Também é possível ajustar filtros, escolhendo e aperfeiçoando tanto os embutidos no sistema quanto escrevendo seus próprios scripts. Para ser sincero — eu não precisei dos filtros. Mas a configuração parece bastante amigável e clara.

Aqui também é possível definir a comunidade SNMP padrão e suas credenciais (entenda como autorização).

3.2. Adicionando nós

Com a auto-descoberta ativada, os nós finais (PCs, impressoras) serão adicionados e distribuídos automaticamente pelas sub-redes. Com o equipamento de rede ativo, tudo é um pouco mais complicado.

Comece ativando o SNMP no equipamento de rede e configurando a comunidade. Se o valor padrão das propriedades de auto-descoberta dos nós de rede não foi alterado, o sistema usará a comunidade pública, podendo alterar essa configuração para cada nó nas propriedades do nó adicionado.

Para maior conveniência, você pode agrupar dispositivos de acordo com qualquer critério que desejara; para isso, você pode criar contêineres na árvore na ramificação Serviços de Infraestrutura e vincular neles os nós da Rede de Entrada.

Após habilitar e configurar o SNMP nos roteadores e adicioná-los à lista de equipamentos monitorados, o sistema se conectará a eles, interrogará, identificará quais dispositivos são, aplicará modelos, começará a coleta de dados e mostrará o painel frontal para cada roteador. Tudo isso automaticamente. Na caixa. Quando eu configurava o Zabbix, eu só podia sonhar com algo assim.

NetXMS como sistema de monitoramento para preguiçosos... e um pouco de comparação com Zabbix

Adicionei todos os meus equipamentos de rede manualmente, pois por algum motivo eles não foram detectados. É bem simples. Crie um contêiner em Serviços de Infraestrutura com qualquer nome adequado (por exemplo, switches), e Clique com o botão direito do mouse - criar - nó, indique o nome exibido do nó, seu endereço IP e é melhor marcar a opção de "desativar o uso do agente NetXMS", já que não é possível instalá-lo em equipamentos de rede, e pacotes desnecessários não são úteis.

Navegador embutido. Você pode simplesmente clicar com o botão direito do mouse no roteador desejado e abrir a interface web do dispositivo. Achei isso mais prático do que verificar minhas anotações e procurar o IP desejado. Embora o navegador seja bem simples.

3.3. Construção do mapa de rede

Antes de tudo, você precisa criar um mapa de rede como um objeto. Como de costume — na ramificação Mapa de Redes, clique com o botão direito do mouse, criar, escolher o tipo de mapa, definir os parâmetros, e o sistema fará o restante automaticamente.

Os tipos de mapa são os seguintes:

  1. Personalizado. Este é um mapa projetado para formação manual, de acordo com o desejo do usuário.
  2. Topologia de Camada 2. Este é um mapa que permite fazer tudo automaticamente em nome do usuário, baseado na camada 2 do modelo OSI (basicamente, constrói um mapa com base nos endereços MAC dos dispositivos).
  3. Topologia IP, também conhecida como Camada 3. O mesmo que no caso da Camada 2, apenas o mapa é construído com base na camada 3 do modelo OSI (endereços IP).

Ao optar pela criação manual do mapa, é necessário arrastar nós da árvore para a camada do mapa, conectá-los, etc. É um desenho comum.

Nos outros dois casos, é necessário escolher um ponto de referência a partir do qual o sistema começará a construir o mapa. Por exemplo, um nó de algum roteador. O sistema lê dele os dados sobre os dispositivos conectados e as portas às quais estão ligados, e em seguida lê os dados do próximo roteador, faz a correspondência, e assim por diante. Após a análise de todos os dispositivos, o NetXMS desenhará as conexões entre os dispositivos da rede, indicando as portas às quais cada um está conectado. Também é possível indicar que o sistema coloque no mapa, inclusive, os dispositivos finais (impressoras, PCs, servidores), simplesmente clicando na opção correspondente nas propriedades do mapa.Botão direito do mouse — propriedades — propriedades do mapa.Neste item, também é possível definir o "raio de descoberta", se desejado ou necessário.

Uma pequena recomendação. Ative a propriedade Sempre ajustar layout à tela, para que a cada atualização do mapa da rede não seja necessário rolar o espaço de trabalho e usar o zoom.

NetXMS como sistema de monitoramento para preguiçosos... e um pouco de comparação com Zabbix

Em uma topologia de rede distribuída, é possível sobrepor objetos ao mapa geográfico. Também é possível usar, por exemplo, uma foto do rack com equipamentos no data center como fundo, sobrepondo os objetos necessários. Dessa forma, é possível rapidamente determinar o status de qualquer dispositivo no rack. Na minha opinião, isso é extremamente útil no caso de ser necessário passar as responsabilidades para um sucessor ou para um colega recém-chegado explicar a situação. É visual, conveniente e autoexplicativo.

3.4. Agentes

Os agentes existem tanto para Windows quanto para Linux. O princípio de operação é o mesmo que o dos agentes do Zabbix: é instalado na máquina da qual se deseja coletar métricas, e transmite dados para o servidor de monitoramento. O agente pode ser instalado antes ou depois de adicionar o nó ao sistema. Após a instalação do agente no nó, o sistema começará a receber dados dele após um tempo, utilizando o modelo padrão. É possível adicionar parâmetros monitorados tanto para um único nó quanto acoplar a ele um ou mais modelos predefinidos. Naturalmente, recomenda-se trabalhar com modelos, pois essa configuração é mais flexível.

A lista de parâmetros monitorados para agentes é bastante extensa. Você pode visualizar a lista completa em Wiki NetXMS

Assim que o sistema determinar que um agente está funcionando no nó, ele imediatamente anexará esse nó a um dos modelos padrão — Windows, Linux, HP-UX, Generic UNIX, AIX, dependendo do sistema operacional do nó.

Modelo padrão para hosts Windows:

NetXMS como sistema de monitoramento para preguiçosos... e um pouco de comparação com Zabbix

Você pode adicionar um parâmetro para monitorar um nó específico clicando em "Botão Direito do Mouse - Parâmetro de Coleta de Dados" e em seguida "Botão Direito do Mouse no espaço de trabalho - Novo parâmetro", e escolher o desejado na lista. Aqui também é possível configurar gatilhos para o parâmetro monitorado.

É importante destacar que os agentes, assim como no Zabbix, conseguem executar scripts personalizados.

Como instalar?Isso é fora do tópico, pois cada um... hmmm... faz como quer.

A questão aqui é: devemos espalhar os agentes apenas nos servidores, ou em todas as máquinas da rede? Se forem servidores e forem poucos — é mais fácil fazer manualmente. Se forem muitos — políticas de domínio, KIX, PoSh. O que for. Os agentes têm a chave /SILENT, que permite "implantar" de forma transparente para o usuário (se falarmos sobre a distribuição em todas as máquinas da rede). Eu prefiro scripts, pois posso definir uma condição e criar um sinalizador, ao contrário das políticas, que instalam o programa toda vez que o PC é ligado. Então, escrevemos um script do tipo "verificar a existência de um arquivo-sinalizador, se não houver — executar o instalador com a chave /SILENT e após a instalação bem-sucedida, criar o arquivo-sinalizador". Lucro.

3.5. Gatilhos

Os gatilhos podem ser configurados para reagir a determinados eventos nos dados coletados. Por exemplo, a superação de um valor específico de ping-pong até o roteador. Da mesma forma, é configurado o método de notificação para cada gatilho (para alguns, é suficiente um ícone no console, enquanto outros enviam notificações para onde quer que seja). A reação a um evento é escolhida entre as predefinidas na Configuração de Ação.

Para criar um gatilho: entre na Configuração de Coleta de Dados do nó ou modelo, clique duas vezes no parâmetro de interesse (se não houver, é preciso criá-lo primeiro), e nas propriedades vá para a aba Limiares, clique no botão adicionar.

NetXMS como sistema de monitoramento para preguiçosos... e um pouco de comparação com Zabbix

«Função» — quais ou quais valores usar para calcular a condição. Pode aceitar os seguintes valores (a quantidade de valores utilizados para verificação é indicada no campo Amostras):
— Último valor sondado: último/últimos valor/valores recebidos
— Valor médio: valor médio dos últimos
— Desvio médio: desvio médio
— Diferença em relação ao valor anterior: diferença em relação ao valor anterior
— Erro de coleta de dados: erro ao obter dados
— Soma dos valores: soma dos valores
— Script: valor obtido como resultado da execução do script do usuário

«Operação» — condição de acionamento do gatilho. Pode assumir valores (o valor é indicado no campo correspondente Valor):
— <: menor que: menor que
— <=: menor ou igual a: menor ou igual a
— == igual a: equivalente a
— >=: maior ou igual a: maior ou igual a
— >: maior que: maior que
— !=: não é igual a: não equivalente a
— like: aproximado a
— not like: não aproximado a
Sobre os dois últimos parâmetros, não tenho certeza de como eles funcionam. Por isso não vou nem tentar supor quais são os limites neles incorporados.

Em outras palavras, tudo como no Zabbix, só que não é preciso digitar as fórmulas manualmente, com medo de errar ou cometer um erro de digitação. Para a restauração do gatilho (evento de desativação), o sistema irá automaticamente inserir o valor. (No Zabbix, novamente é preciso digitar e não cometer um erro).

3.6. Modelos

Clique com o botão direito do mouse - criar modelo, inserir o nome do modelo. Clique com o botão direito do mouse - Configuração de Coleta de Dados.

Um pouco de teoriaAs informações coletadas podem vir de várias fontes. Isso pode ser um agente NetXMS, funcionando na máquina, pode ser "uma consulta simples" ou "Interno" enviado pelo próprio servidor (por exemplo, o mesmo ping), "SNMP«, «ponto de verificação SNMP«, «Push«, «Contadores de Desempenho do Windows«, «SM-CLP", ou um "script" do usuário. Para cada tipo de informação, é possível escolher o tipo que o sistema esperará ao receber. Por exemplo, ping retornará um valor inteiro, a quantidade de espaço livre em disco em bytes também será um inteiro, mas a temperatura será um valor real.

Para coletar informações via SNMP no NetXMS, há uma enorme lista de parâmetros predefinidos, ou seja, não é necessário inserir um OID específico, mas encontrá-lo na árvore MIB, o que na verdade é bastante problemático... Mas, no final, é preciso consultar a documentação do fabricante e procurar os valores IOD para cada dispositivo separadamente. Pode-se gastar muito tempo configurando a leitura de informações dos dispositivos, esbarrando na mensagem do sistema "NÃO SUPORTADO", e acaba que este dispositivo específico simplesmente não pode fornecer as informações solicitadas. Aqui resta apenas estudar os manuais e torcer.

Por exemplo, para coletar informações sobre o tempo de resposta do nó (ping), é necessário adicionar um novo parâmetro (botão direito - novo parâmetro), selecionar Internal no campo Origin, clicar no botão Select e escolher Ping Time. Há uma pesquisa lá, algo que eu sempre sonhei em ter no Zabbix. Também faz sentido alterar o período de sondagem do nó (por padrão definido para 60 segundos, ou seja, se o roteador parar de responder logo após ter sido sondado pelo sistema de monitoramento, se passará quase um minuto até que o sistema perceba que há algo errado e dispare um alerta).

Lista de dados internos que podem ser processados:

NetXMS como sistema de monitoramento para preguiçosos... e um pouco de comparação com Zabbix

Após adicionar todas as configurações necessárias ao template, é preciso clicar em botão direito - aplicar e selecionar todos os nós aos quais este template deve ser aplicado (ctrl+clique esquerdo). E pronto. Após isso, aparecerá um ramo na árvore sob o template, que ao ser expandido, mostrará todos os nós aos quais este template foi aplicado.

Ao desanexar um nó do template, os dados coletados não param de ser coletados. Para cancelar a coleta, é necessário acessar a Data Collection Configuration para cada nó e excluir tudo manualmente, ou primeiro remover os parâmetros do template e só então excluir os nós dele. Não sei por que foi feito assim, mas, na minha opinião, é algo extremamente estranho. Mas... é como é.

No template, é possível selecionar os dados coletados desejados e copiá-los para outro template. Em massa. E não é necessário copiar e colar de um template para outro manualmente... Estou começando a odiar o Zabbix.

3.7. Painéis

Por mais estranho que pareça, a Wiki do NetXMS contém apenas um link para o youtube sobre isso: Criando um Painel, não há nem mesmo uma lista e descrição dos elementos que podem ser adicionados ao Painel. O princípio é basicamente intuitivo. Rótulo — é simplesmente... bem... é um rótulo. Não sei nem como traduzir isso. Em resumo, é um campo com uma etiqueta, usado para denominar e distinguir os elementos, já que os próprios elementos não contêm nomes. Gráfico de Linhas — é um gráfico linear. Gráfico de Barras — é um diagrama. Visualizador de Alarmes — é uma lista de avisos para o(s) nó(s) selecionado(s). Em suma, os nomes falam por si só.

Em seguida, você precisa abrir as propriedades do painel e configurar as exibições. Estamos interessados na aba Elementos do Painel. Número de colunas — é a quantidade de colunas, elementos que estarão dispostos horizontalmente. Cada objeto tem suas próprias propriedades, e eu recomendaria desmarcar a opção Layout-Grab excessive vertical space, para minimizar o tamanho de cada elemento.

NetXMS como sistema de monitoramento para preguiçosos... e um pouco de comparação com Zabbix

3.8. Configuração de Ações

(Configuração-Ações de Configuração)
Basicamente, estas são ações em resposta à ativação de gatilhos.

NetXMS como sistema de monitoramento para preguiçosos... e um pouco de comparação com Zabbix

NetXMS pode enviar e-mail, mensagem SMS, mensagem XMPP em resposta à ativação de um gatilho. Aqui tudo é trivial — basta preencher os campos necessários.

Também é possível:

— Transferir a notificação para outro servidor NetXMS
— Executar um comando no servidor de administração do NetXMS
— Executar um comando no nó usando o agente NetXMS
— Executar um script NXSL (NSXL é a linguagem de programação da NetXMS))

Após criar a ação, você pode definir um tempo de atraso na execução, assim como aplicar uma macro para a execução. O tempo de atraso serve para não incomodar o operador caso o problema se resolva sozinho (por exemplo, o tempo de resposta ao ping foi maior que o valor definido, mas na próxima verificação pode voltar ao normal, então por que incomodar com tais trivialidades?).

3.9. Delimitação de Permissões

Para cada objeto, você pode definir suas próprias permissões. Para cada objeto dentro de outro objeto, também é possível definir permissões. Isso permite uma distribuição muito flexível de deveres e possibilidades de monitoramento para diferentes grupos de usuários. Isso é tudo que eu queria dizer.

4. Conclusão

Gostaria de refutar o título do meu próprio artigo. O NetXMS não é para os preguiçosos. Apenas os desenvolvedores não enfatizaram a funcionalidade, como alguns, mas, além de tudo, também se preocuparam com a interface.

Vamos lá. Eu usei o Zabbix e o NetXMS. Por isso, vou simplesmente escrever minhas impressões sobre esses dois sistemas.

Assim.

NetXMS parece ser um sistema extremamente amigável para o usuário. Bem… para o administrador… sim, para o administrador. Ele tem o que chamamos de interface intuitiva, e isso é realmente ótimo. Não é necessário escrever suas próprias fórmulas ou ler um monte de documentação de acompanhamento apenas para ativar a verificação de pings até o switch ou qualquer outra coisa simples. Mas. No Zabbix, essa mesma coisa simples não difere muito de algo realmente complexo, ou seja, uma vez que você domina isso, pode fazer o resto da mesma forma. No NetXMS, há dicas, a maioria dos parâmetros pode ser encontrada na interface, selecionada com o mouse e configurada. No Zabbix, você precisa descobrir se o sistema pode fazer isso e aquilo, e se sim — como isso é escrito e quais parâmetros são retornados. O Zabbix ganha na comunidade e em toneladas de modelos para todas as ocasiões… se conseguir encontrar o que precisa nesse mar de informações… Por outro lado, o NetXMS também tem muitos fãs e complementos criados para ele. E o próprio sistema monitoriza as aplicações mais populares desde o início, conforme mencionado na página principal do projeto.

O principal ponto positivo do NetXMS em relação ao Zabbix, para mim, foi a possibilidade de executar um script em um nó problemático em resposta à ativação de um gatilho. Se a temperatura da CPU ultrapassa o limite — ela desliga o host sozinha. E depois vamos ver qual é o problema. É possível que o Zabbix também tenha essa função, mas eu não consegui. Assim como o monitoramento de portas em roteadores. Aqui, é automático… Bem, não é bem automático… É preciso aprender a linguagem de script, e tudo…

As permissões de acesso no NetXMS permitem uma delimitação muito flexível das capacidades dos diferentes usuários do sistema. Mas, para configurar tudo isso, é preciso realmente se dedicar.

No geral, os sistemas são bastante semelhantes, e suas capacidades, à primeira vista, parecem pelo menos comparáveis. Embora se sinta que o Zabbix pode fazer mais, mas essas capacidades estão profundas sob o capô e são inalcançáveis para um simples administrador que busca uma solução "tudo em um". O NetXMS, por outro lado, parece ser simples e compreensível, amigável e agradável.

O Zabbix possui excelente documentação, wikis, como fazer, perguntas frequentes, melhores práticas, além de vários fóruns, etc., onde se pode encontrar respostas para praticamente todas as perguntas. E se necessário — fazer a própria pergunta.

Resumindo, eu recomendaria o NetXMS para pessoas que estão apenas começando ou para aquelas que não precisam se aprofundar no monitoramento de tudo e todos. Estou certo de que, se você se dedicar mais a ele, poderá configurar observações muito detalhadas.

Mas, ainda assim, o principal ponto positivo que vejo é a interface muito agradável e a facilidade de configuração.

5. Materiais utilizados

canal do youtube Tomas Kirnak
Wiki do NetXMS
pesquisa no Google

Fonte: habr.com

Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS 🔥 Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS | ProHoster