O monitoramento da infraestrutura de TI é complexo, mas uma ferramenta como o Checkmk facilita isso.
Muitas organizações adicionaram tecnologias nativas da nuvem à sua pilha de tecnologia para aprimorar o desempenho de seus produtos. Ao mesmo tempo, eles geralmente continuam a executar suas próprias redes e infraestrutura local. Essa mudança para infraestruturas híbridas precisa ser abordada no monitoramento devido ao grande número de métricas geradas a cada segundo para vários componentes, como sistema operacional, armazenamento, servidor, ambientes em nuvem etc. Todos eles são importantes para garantir que os aplicativos sejam executados no pico atuação.
Essas métricas são um sinal essencial para que as equipes de DevOps entendam a integridade de sua infraestrutura. É por isso que as organizações precisam de uma solução de monitoramento para ajudá-las a identificar rapidamente problemas na produção com métricas, visualizações e análises. Checkmk é uma das ferramentas de monitoramento de infraestrutura mais populares e úteis. Neste artigo, direi por que a Checkmk merece sua boa reputação e como você pode dar os primeiros passos com ela.
últimas postagens
O que é Checkmk?
O Checkmk verifica constantemente a função de qualquer aspecto dos ambientes de TI modernos e é especialmente adequado para infraestruturas híbridas. Por um lado, o Checkmk é flexível e oferece suporte a contêineres, ativos em nuvem e sistemas locais, como switches e servidores. Por outro lado, é muito fácil começar e gerenciar seu monitoramento, porque o Checkmk vem com alertas automáticos baseados em muito conhecimento de TI e outros recursos inteligentes que economizarão muito tempo.
Se você deseja usar o Checkmk gratuitamente, você tem duas opções: Primeiro, você pode optar pelo Checkmk Raw Edition, que é totalmente de código aberto e gratuito para uso sem limitações. Em segundo lugar, há o Versão de avaliação do Checkmk Enterprise que possui todos os recursos adicionais do Checkmk Enterprise Editions, mas após 30 dias o número de hosts será limitado a 25.
Como o Checkmk resolve o problema?
O Checkmk pode monitorar aplicativos, servidores, bancos de dados, redes, contêineres, armazenamento e outros enfeites. Ele fornece uma lista enorme de mais de 2.000 plug-ins de monitoramento. Com esses plug-ins. O Checkmk pode ser estendido para monitorar tecnologias específicas de diferentes fornecedores disponíveis no mercado. Alguns plug-ins Checkmk populares são para Docker, Kubernetes, Cisco, Nginx, VMware, Linux, Windows, AWS, Dell. Com seus mais de 2.000 plug-ins, o Checkmk se destaca como uma solução de monitoramento de infraestrutura muito promissora disponível atualmente.
Além disso, para qualquer solução de monitoramento, é crucial o quão rápido e corretamente eles podem ler as métricas e configurar alertas e notificações inteligentes. A solução da Checkmk atende a todos esses critérios. Com seu recurso de descoberta automática, o Checkmk pode identificar mais de 90% dos serviços e dispositivos. Agora, a maioria das empresas exige escalabilidade e automação. Você pode dimensionar a capacidade de monitoramento de centenas de hosts para milhares de hosts com facilidade no Checkmk e aproveitar seus agentes disponíveis para automação.
Instale o Checkmk em um contêiner do Docker
Neste artigo, vou instalar o Checkmk Raw Edition em um contêiner do Docker em um servidor Linux rodando no Ubuntu 20.04. No Dockerhub, você pode baixar o Contêiner Checkmk Docker. Ele tem quase 5 milhões de pulls até agora, o que mostra o quão popular e amplamente usado é o Checkmk.
Pegue a imagem do Docker com a versão mais recente do Checkmk e execute-a dentro de um contêiner usando o comando docker container run.
docker container run -dit -p 8080:5000 --tmpfs /opt/omd/sites/cmk/tmp:uid=1000,gid=1000 -v monitoring:/omd/sites --name monitoring -v /etc/localtime:/etc/localtime:ro --restart always checkmk/check-mk-raw:2.0.0-latest
O nome do container será ‘monitoring’, o servidor web escutará a porta 5000 e abrirá na porta 8080 do nó. O contêiner usará o sistema de arquivos temporário e o fuso horário local.
[email protected]:~$ sudo docker container run -dit -p 8080:5000 --tmpfs /opt/omd/sites/cmk/tmp:uid=1000,gid=1000 -v/omd/sites --name monitoring -v/etc/localtime:/etc/localtime:ro --restart always checkmk/check-mk-raw:2.0.0-latest Unable to find image 'checkmk/check-mk-raw:2.0.0-latest' locally 2.0.0-latest: Pulling from checkmk/check-mk-raw 33847f680f63: Pull complete 474905f2790b: Pull complete 1804f0e63047: Pull complete f36fe6334464: Pull complete 03c68dfa69cf: Pull complete b60cfdb78e96: Pull complete Digest: sha256:7788fa2e31c7270be201d75285c13ccc7a74f67f991872ea63ba0cfa6708cac6 Status: Downloaded newer image for checkmk/check-mk-raw:2.0.0-latest 9729e323a840a08b0e758cfa9e6dbf76ba5dab4b2ecc4eea5174b8ee1a5cfbcf
Você pode verificar se a imagem do Docker foi baixada executando o comando docker images.
[email protected]:~$ sudo docker images REPOSITORY TAG IMAGE ID CREATED SIZE bitnami/node-exporter latest ba0f519ca49b 34 hours ago 104MB checkmk/check-mk-raw 2.0.0-latest 097319702432 13 days ago 1.03GB hello-world latest feb5d9fea6a5 7 weeks ago 13.3kB
Execute o comando docker ps para ver se o contêiner Checkmk está em execução.
[email protected]:~$ sudo docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 9729e323a840 checkmk/check-mk-raw:2.0.0-latest "/docker-entrypoint.…" About a minute ago Up 59 seconds (health: starting) 6557/tcp, 0.0.0.0:8080->5000/tcp, :::8080->5000/tcp monitoring 3d3a95ed3c25 bitnami/node-exporter:latest "/opt/bitnami/node-e…" 25 hours ago Up 25 hours 9100/tcp node-exporter
Para obter os detalhes de login da interface da Web Checkmk, imprima o log do contêiner Checkmk.
[email protected]:~$ sudo docker container logs 9729e323a840 ### CREATING SITE 'cmk' Adding /opt/omd/sites/cmk/tmp to /etc/fstab. Going to set TMPFS to off. Temporary filesystem already mounted Updating core configuration... Generating configuration for core (type nagios)...Precompiling host checks...OK OK Executing post-create script "01_create-sample-config.py"...OK Created new site cmk with version 2.0.0p15.cre. The site can be started with omd start cmk. The default web UI is available at http://9729e323a840/cmk/ The admin user for the web applications is cmkadmin with password: ClFxBPre For command line administration of the site, log in with 'omd su cmk'. After logging in, you can change the password for cmkadmin with 'htpasswd etc/htpasswd cmkadmin'. ### STARTING XINETD [ ok ] Starting internet superserver: xinetd. ### STARTING SITE Temporary filesystem already mounted Starting mkeventd...OK Starting rrdcached...OK Starting npcd...OK Starting nagios...OK Starting apache...OK Starting redis...OK Initializing Crontab...OK ### STARTING CRON ### CONTAINER STARTED
O contêiner Checkmk Docker será executado por padrão em https://localhost:8080/cmk/check_mk. A saída do comando acima informa que o nome de usuário é cmkadmin e a senha, no meu caso a senha é ClFxBPre. Abra o endereço em um navegador da Web e use suas credenciais para fazer login.
Depois de fazer login, este é o ‘painel principal’ que aparecerá. Está vazio porque você ainda não adicionou nenhum host.
Monitorar o Docker usando o Checkmk
Normalmente, você instalaria o agente Checkmk em sua máquina que hospeda seus contêineres do Docker e, em seguida, usaria o plug-in Checkmk para Docker para monitorar todos os contêineres. Este plug-in (mk_docker.py) usa a API Python do Docker para rastrear contêineres do Docker e obter visibilidade total de seu status e desempenho em tempo real. Você pode ler mais detalhes sobre Monitoramento do Docker com Checkmk no site da Checkmk.
Como no meu ambiente Docker há apenas um contêiner Docker em execução, meu contêiner Checkmk Docker, usarei apenas o agente Checkmk em execução no contêiner Docker e não instalarei o Checkmk no meu host Docker. O agente está pré-instalado no container Checkmk, portanto, só preciso adicionar meu container Checkmk como host.
Vamos obter o endereço IP no qual o serviço Docker está sendo executado usando ifconfig no terminal.
[email protected]:~$ ifconfig docker0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 172.17.0.1 netmask 255.255.0.0 broadcast 172.17.255.255 inet6 fe80::42:59ff:fe8a:8ba8 prefixlen 64 scopeid 0x20<link> ether 02:42:59:8a:8b:a8 txqueuelen 0 (Ethernet) RX packets 5559 bytes 7230215 (7.2 MB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 4164 bytes 614703 (614.7 KB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 enp0s3: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.0.108 netmask 255.255.255.0 broadcast 192.168.0.255 inet6 fe80::144a:4682:35e7:bb2 prefixlen 64 scopeid 0x20<link> ether 08:00:27:91:82:82 txqueuelen 1000 (Ethernet) RX packets 699491 bytes 1044235622 (1.0 GB) RX errors 0 dropped 7 overruns 0 frame 0 TX packets 101260 bytes 7555470 (7.5 MB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536 inet 127.0.0.1 netmask 255.0.0.0 inet6 ::1 prefixlen 128 scopeid 0x10<host> loop txqueuelen 1000 (Local Loopback) RX packets 20655 bytes 8446042 (8.4 MB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 20655 bytes 8446042 (8.4 MB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 veth44ba5ce: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet6 fe80::145f:1fff:fee9:a7b0 prefixlen 64 scopeid 0x20<link> ether 16:5f:1f:e9:a7:b0 txqueuelen 0 (Ethernet) RX packets 5559 bytes 7308041 (7.3 MB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 4173 bytes 616263 (616.2 KB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 vetha82ee43: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet6 fe80::585c:6fff:fe0a:a79b prefixlen 64 scopeid 0x20<link> ether 5a:5c:6f:0a:a7:9b txqueuelen 0 (Ethernet) RX packets 0 bytes 0 (0.0 B) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 92 bytes 9799 (9.7 KB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
No meu caso, o serviço Docker está sendo executado em 172.17.0.1. A próxima etapa é adicionar o serviço Docker como host no Checkmk para que ele possa ser monitorado.
- Vá para Checkmk e clique em Configuração -> Hosts.
- Agora forneça o nome do host e o endereço IP e clique em ‘Salvar e ir para a configuração do serviço’.
- Depois de fazer isso, o Checkmk iniciará a descoberta de serviço automaticamente.
Role para baixo para ver os serviços de monitoramento em execução no host do Docker. Você pode ver que os serviços não estão sendo monitorados no momento. Se você deseja monitorar tudo, a solução mais fácil é clicar em ‘Corrigir tudo’. Se você deseja configurar quais serviços devem ser monitorados, você também pode fazer isso em detalhes. Clique no sinal + se quiser monitorar um serviço.
Depois de selecionar os serviços que deseja monitorar, eles aparecerão na guia ‘Serviços monitorados’. Você obterá todos os detalhes de status de cada serviço que estiver monitorando. Se você clicar em ? sinal, esse serviço será movido para a lista de serviços indecisos. Se você clicar no sinal X, o serviço será movido para a guia ‘Serviços desabilitados’.
Desativei quatro serviços, para que possa vê-los na guia de desativação de serviços.
Quando terminar de adicionar os serviços, você precisa ativar as alterações antes que elas entrem em produção.
- Clique no campo destacado com o ponto de exclamação amarelo (!) no canto superior direito para ver as alterações pendentes.
- Clique em Ativar em sites selecionados.
Você monitorou com sucesso os serviços do Docker usando o Checkmk!
Conclusão
Então, isso era tudo sobre o Checkmk, uma ferramenta de monitoramento de infraestrutura. É uma ferramenta muito fácil de usar que você deve tentar para monitorar seus ambientes de produção. recomendo experimentar o Checkmk Edição Gratuita para iniciar seu monitoramento.