
Em
nosso blog, conversamos muito sobre soluções estrangeiras para monitoramento e auditoria, e agora é hora do desenvolvimento doméstico.
O MONQ é um sistema abrangente com conectores para sistemas de monitoramento comuns, modelos de serviço de recursos, análise de dados, alto potencial de IA e um modelo de licenciamento especial. Foi-nos dada uma distribuição para analisar e decidimos compartilhar como ela está escondida e se tudo é tão nanotecnológico quanto o fornecedor diz (o projeto, afinal, é um residente de Skolkovo). A honra dos testes recaiu sobre mim e vou falar sobre a instalação, os recursos do sistema e um pouco sobre o licenciamento. Eu peço gato.
1. Introdução
Em 2018, o Gartner introduziu um novo termo para descrever como a inteligência artificial (IA) pode ser aplicada ao suporte de TI. "O AIOps (Inteligência Artificial para Operações de TI) promete economizar tempo e esforço dos serviços de TI na identificação de vários problemas no ambiente cada vez mais complexo em que eles precisam trabalhar". O Gartner sugere que a IA seja usada para identificar automaticamente os problemas e corrigi-los. Em 2019, isso parece um conto de fadas, e ainda não vi casos reais de suporte de TI totalmente automático.
Eu peguei a plataforma
MONQ no laboratório MONQ Digital . O próprio desenvolvedor o posiciona como uma solução AIOps. Mas eu chamaria isso de sistema de monitoramento abrangente, gerenciamento de eventos e lançamento de scripts de automação. Ainda não há muita inteligência.
Em serviço, apoio mais de 100 sistemas, servidores, serviços, serviços diferentes. Minhas ferramentas de monitoramento casuais são Zabbix e Prometheus, como eles cobrem a maioria das tarefas de monitoramento de desempenho. Alguns sistemas no loop de monitoramento às vezes param de responder, é tratado pela reinicialização do servidor (não há outra maneira, ninguém reescreverá o código da curva). Eu sempre quis tentar implementar um caso em que o sistema de monitoramento identificasse um problema de duas fontes independentes e reiniciasse o próprio servidor. Para essas tarefas, geralmente são usados sistemas guarda-chuva com subsistemas de script, como agora é denominado RPA (Robotic Process Automation). Não conheço sistemas livres, mas os comerciais são como uma ponte de ferro fundido.
Hoje tentaremos instalar o MONQ juntos, conectar o Zabbix e o Prometheus a ele, configurar alertas e escrever um script de reinicialização do servidor. Para que amanhã você possa calmamente jogar os pés sobre a mesa, observando apenas ocasionalmente o processo de tratar uma máquina com outra e tomar café com um croissant.
Arquitetura da solução
Arquitetura MONQO sistema é implantado em contêineres de encaixe no cluster kubernetes. Conjuntos de microsserviços são combinados em blocos funcionais. Todos os dados dos usuários, informações técnicas, eventos e logs após o enriquecimento com várias tags úteis voam para o data lake no ClickHouse; depois, o processo de cálculo e análise ocorre. Padrões, eventos importantes são detectados, gatilhos compostos são formados e vários processos importantes podem ser iniciados para eventos importantes: de alertas e incidentes a scripts de usuário complexos.
Desembalar
O YouTube está cheio de vídeos descompactando algo. Agora vou tentar fazer o mesmo, mas em um formato de imagem de texto e não com um produto físico, mas com uma distribuição. Para começar, prepare - instale o cluster kubernetes.
Você pode ler sobre como configurar um cluster kubernetes, por exemplo,
aqui . Vou falar sobre os recursos de configuração:
- coredns é usado como DNS do cluster;
- controlador de entrada nginx;
- autorização rbac em um cluster;
- armazenamento compartilhado (pv / pvc) é usado.
Para cada projeto, o fornecedor fornece requisitos técnicos para o hardware. A configuração mínima para instalação é de 4 servidores. Isso é suficiente para conduzir um piloto, sujeito à integração com um sistema de monitoramento. Para meus propósitos, verificar a funcionalidade do sistema, esta opção também funcionará.
Em condições de combate, como me disseram, o sistema se adapta às necessidades do cliente, dependendo da carga e da tolerância a falhas necessária.
Minha configuração para o sistema no mínimo:
Depois que a plataforma estiver pronta, lancei o manual de instruções do fornecedor para instalar a infraestrutura básica e iniciar o sistema. O Playbook faz o seguinte:
- instala pacotes necessários nos servidores;
- lança kubernetes;
- instala e configura aplicativos no servidor de banco de dados. Entre eles: Clickhouse, RabbitMQ, PostgreSQL, ArangoDB, Redis e tudo isso em contêineres;
- instala o Consul para armazenamento centralizado de configurações de microsserviços;
- adiciona terminais, entidades de entrada de serviço para DBMS e partes da infraestrutura do sistema;
- gera uma tabela com dados de autorização.
Para não iniciar o aplicativo de microsserviço manualmente, o fornecedor preparou um registro de microsserviço interno que adiciona e atualiza microsserviços, configura o DBMS e a autorização entre serviços.
A inicialização do sistema se resume às seguintes ações:
- o instalador do sistema é iniciado com um arquivo de configuração pré-preparado (contém dados de autorização no kubernetes, DBMS e Consul, o nome de domínio do sistema);
- o instalador inicia o registro do microsserviço;
- usando o registro, os microsserviços são iniciados um a um; o registro gera a configuração dos microsserviços no cônsul, na implantação de entidades, no serviço, na entrada no kubernetes;
- na inicialização, cada microsserviço carrega um esquema para seu próprio banco de dados.
O resultado do instalador que lancei está na imagem abaixo.
Painel Kubernetes: o resultado do instaladorApós a conclusão do processo de instalação, o MONQ estará disponível pelo nome de domínio especificado no arquivo de configuração do instalador. E aqui está ele.
Interface de Login MONQPersonalização
Na configuração inicial do sistema, já existe um usuário com direitos totais de controle. Faço login e olho para o que o MONQ é capaz.
Criando usuários no sistema e configurando grupos de trabalho
Existem dois métodos de autorização do usuário no sistema:
- Diretório ativo
- Construído em.
Para o primeiro conhecido, a autorização incorporada é adequada.
Usuário do sistema predefinidoOs direitos de acesso aos objetos e recursos do sistema (integração, unidades de configuração (KE), gatilhos sintéticos, scripts etc.) são emitidos no nível de grupos de trabalho (GTs). Qualquer GT pode ser o proprietário do objeto ou ter o direito de ler ou escrever. Existem vários níveis de acesso:
- Os membros do GT com o nível de direitos de proprietário podem executar qualquer ação com o objeto (GT com este nível de direitos, o objeto pode ter apenas um);
- Um GT com o direito de registrar pode gerenciar o objeto, mas não pode excluí-lo e distribuir direitos a outros GTs;
- Um WG somente leitura pode exibir informações sobre um objeto;
- Um GT sem um direito de acesso a um objeto não tem consciência de sua existência.
Por padrão, o sistema foi criado WP "Administradores do espaço", que acabou de resolver o meu usuário. Este GT tem direitos totais para todos os objetos que serão criados nesta entidade. Para colegas que também querem dar uma olhada no sistema, criou um WP de Superadministradores adicional.
Grupos de trabalho, funções e participantesOs direitos de usuários específicos são configurados na estrutura do WG na forma de funções.
Configuração PCM
É sobre o modelo de serviço de recursos. Este é um modelo de serviço lógico que descreve a composição e os relacionamentos dos KEs com os recursos da KE, que juntos fornecem o serviço em um nível acordado. O PCM é necessário para armazenar informações sobre objetos, entidades e os relacionamentos entre eles. PCM no MONQ é um gráfico de rede que contém informações sobre KEs e seus relacionamentos.
A principal diferença e, na minha opinião, a vantagem de implementar o PCM no sistema é o foco nos serviços de negócios. Isso ajuda a apresentar a estrutura completa do serviço ou serviço que o usuário final usa e não se concentrar no sistema de infraestrutura no qual o serviço ou serviço se baseia.
Para fins de teste, criei uma PCM simplificada "Conta pessoal do usuário".
PCM "Conta pessoal do usuário"Depois de configurar o monitoramento, mostrarei como ele será transformado.
Composição do PCM:
- A máquina virtual na qual o sistema de informações (IS) SRVe3_VM15 está em execução;
- STR: Nginx_LK, PHP-fpm_LK, MySQL_LK;
- Nosso serviço (IS) - LK (conta pessoal);
- Módulos IP: autorização, pesquisa, gerenciamento de documentos, pagamento. De fato, há mais deles, mas até agora apenas os criamos.
Configuração de integração
O MONQ fornece conexão de vários tipos de sistemas:
- Sistemas de monitoramento (Zabbix, Prometheus, SCOM e outros);
- Sistemas de coleta de logs (Splunk, Logstash e outros);
- Sistemas de inicialização de autoteste (Jenkins, Gitlab CI e outros)
- Balcões de atendimento, rastreadores de tarefas (Microfocus SM, Jira, Redmine, Naumen e outros).
Conectei os sistemas de monitoramento Zabbix, Prometheus. Esses conectores são configurados na seção Integração.
Integração com sistemas de monitoramentoMétricas e eventos vêm do Zabbix e Prometheus para o MONQ.
Conexão de monitoramento sintético (teste funcional automatizado)
No MONQ, você também pode configurar o teste funcional de aplicativos. No meu exemplo, esta é uma conta pessoal. Conectei várias construções de autoteste de Jenkins.
Módulo de monitoramento funcional “projetos FMON”O monitoramento funcional no MONQ é um módulo separado com sua própria tela “Teste Funcional”. E aqui está um exemplo de um relatório sobre a execução de um dos meus testes:
Projeto de autorização de usuário FMON, falha na montagemConfigurar monitoramento e alertas
Usando modelos padrão (vários modelos prontos para gatilhos sintéticos para cada integração estão disponíveis imediatamente), ele criou gatilhos sintéticos para eventos primários do Zabbix e Prometheus. Os gatilhos sintéticos aqui são gatilhos criados dentro da plataforma que funcionam com dados primários de diferentes fontes. Em seguida, vinculei os gatilhos resultantes aos elementos PCM (KE).
Seção "Gatilhos sintéticos"E parece um gatilho sintético criado pelo modelo.
Um exemplo de um gatilho sintético criado pelo modelo para PrometheusNa seção "Meus scripts", por exemplo, já existe um script que reinicia o servidor. O script em si é escrito em Lua e pode ser alterado. Com base nisso, criei meu próprio script para reiniciar o serviço.
Script de reinicialização do serviço no servidorAlém da integração usual com o cliente de email, você pode configurar imediatamente o envio de notificações para vários mensageiros instantâneos. Nesse caso, você pode configurar um bot de bate-papo que gravará em um grupo especial, por exemplo, no chat de administradores em um telegrama.
Para usar integrações com mensageiros instantâneos, você precisa abrir o acesso à nuvem do Microsoft Azure.
Usuários avançados podem escrever seus próprios plugins de notificação no Lua. Abaixo está um exemplo do meu script para enviar notificações por SMS.
Plug-in de envio de SMS para a plataforma MONQMonitorando a visualização
Após o ajuste, meu PCM mudou um pouco, mais três sistemas foram colocados para monitoramento geral, cujo estado determina o desempenho da “Conta de Usuário Pessoal” do IS. Também foram adicionados vários serviços.
PCM "Conta pessoal do usuário" com gatilhos anexadosInformações gerais sobre o estado dos objetos sob monitoramento são exibidas na visualização principal na forma de widgets customizados.
A principal apresentação da "Conta Pessoal" do ISNo momento da captura da captura de tela, há um problema com um grande número de consultas no banco de dados, devido ao aumento da resposta das páginas na "Conta de usuário pessoal" do IS. O sistema informa sobre isso na tela e envia SMS.
Para monitoramento operacional, a “Tela Operacional” é usada na qual existe apenas um widget com a lista atual de eventos (eventos ativos e eventos que foram fechados 15 minutos atrás).
Apresentação em tela ao vivoPara o teste, eu gerei uma carga alta na CPU da máquina virtual usando o MySQL. O sistema capturou o evento e iniciou a ação com um script de reinicialização do serviço mysqld pré-preparado. Se após 15 minutos o evento ainda estiver ativo, uma reinicialização ocorrerá.
O serviço foi reiniciado corretamente e recebi uma notificação de que está tudo bem.Todos os eventos no tempo podem ser visualizados na seção "Linha do tempo". E se o sistema ITSM ainda estiver conectado, ele exibirá o trabalho planejado de acordo com a KE.
Monitorando eventos na exibição da linha do tempoInformações sobre a disponibilidade dos sistemas que foram instalados para monitoramento podem ser encontradas na visualização "Relatórios de SLA".
Relatar SLA no IP "Conta pessoal do usuário"Para maior clareza, gerei um relatório por duas semanas excluindo eventos com as prioridades 3 e 4, bem, testes, é claro. Se você acredita no relatório, o sistema funciona bem. O relatório é exportado para PDF e XLS.
As telas mostram informações sobre filtros pré-configurados pelo usuário. Qualquer evento nas telas pode ser marcado para pesquisa ou filtragem rápida.
Licenciamento
A vantagem não funcional, mas não menos importante, do MONQ que eu salvei para o final do artigo. Isso é licenciamento. A grande maioria das soluções de monitoramento guarda-chuva estrangeiras é licenciada pelo número de dispositivos (geralmente chamados por nós de extremidade, por Instância do SO ou outra coisa) a partir dos quais os eventos ou métricas são processados. Independentemente de você coletar dados dos objetos de monitoramento finais, ou outro sistema de monitoramento faz isso. Se as métricas são coletadas usando um sistema comercial, o pagamento duplo pela mesma coisa é inevitável. O MONQ é licenciado pelo número de conectores usados em sistemas externos. Ou seja, se você usar dois sistemas, de onde deseja coletar informações - estes são dois conectores usados ou duas licenças. Assim, do ponto de vista da “taxa de cobrança”, ao usar o MONQ, nada mudará. Você pagará apenas o custo da integração com esses sistemas. Nisto eu vejo uma grande vantagem e potencial.
Como me disseram, os planos para o desenvolvimento do sistema são muitas melhorias que estão sendo constantemente introduzidas. Das inovações notáveis nos próximos seis meses, aparecerão: um construtor de painel, um mestre para criar gatilhos sintéticos, mais detalhes ao calcular o SLA (você verá qual fator e quanto influenciou a acessibilidade do objeto) e uma API pública externa.
Conclusões
Eu gostei do fato de os caras da empresa desenvolvedora fazerem contato, conversar e compartilhar informações com facilidade, e eu gostei do sistema. Ele ainda não tem muita funcionalidade e é difícil comparar diretamente com o Splunk ou AppDynamics em termos de AIOps, mas, claramente, se tudo o que eles dizem se tornar realidade, esse sistema ocupará seu devido lugar entre os líderes de mercado e o quadrante do Gartner.
Se você deseja avaliar o sistema, obter uma apresentação, assistir a uma demonstração ou procurar uma solução abrangente há muito tempo e estiver pronto para um projeto piloto, deixe uma solicitação no
formulário de feedback em nosso site.