Semana de cursos gratuitos da Pluralsight

No início da pandemia, vários profissionais de TI estavam perdendo suas vagas no mercado de trabalho. Lembro que várias empresas estavam buscando uma forma de ajudar esses profissionais que precisariam buscar novas habilidades para se destacar e buscar novas oportunidades. Para isso, o profissional teria que se qualificar.

No final do mês de maio, eu conheci uma campanha bem bacana da Pluralsight que estava liberando todo seu acervo de cursos durante um período. Não me lembro bem qual foi esse período. O importante é que essa oportunidade estará de volta e promete ajudar milhares de profissionais das áreas de Aprendizado de Máquina, Operações de TI, Desenvolvimento de Software, Segurança, Nuvem e outros.

Estou falando da semana Live da Pluralsight.

De 12 a 18 de outubro de 2020, eles irão disponibilizar gratuitamente mais de 7000 cursos da plataforma. Minha opinião sobre isso: garanta já sua inscrição para receber as notificações sobre essa semana de cursos gratuitos. Eu já fiz alguns cursos nessa plataforma e os cursos são incríveis, muito bons mesmo.

Se você se interessou, clique aqui e faça a sua inscrição. Você não vai se arrepender.

É possível implantar cultura DevOps em empresas de pequeno porte?

Empresas pequenas raramente trabalham com uma estrutura funcional. Ou seja, elas não centralizam expertise, pois não possuem estruturas hierárquicas altas.

Empresas de pequeno porte não dividem os times de TI por especialidades (SysAdmin, DBA, Desenvolvedor etc.), mas preza pelo generalismo, o que acaba tornando os times independentes, entregando valor mais rápido para o cliente. Isso ajuda essas pequenas empresas a atingirem os resultados do DevOps em um período mais curto ao compararmos com empresas de médio e grande porte.

Conteúdo exclusivo para assinantes

Inscreva-se para obter acesso e continue sua leitura.

Subindo um cluster Kubernetes para estudos

Você está cansado de ficar brincando com o Minikube ou com o Kind?

Tá passando raiva com o Play with Kubernetes?

Quer subir um cluster K8S, mas seus créditos 0800 nos cloud providers se esgotaram?

Tá bom, tá bom!!! Isso não é propaganda das Organizações Tabajara.

Ok, vou tentar te ajudar.

Vamos usar três VM’s para subir nosso LAB K8S e brincar quando quiser.

Conteúdo exclusivo para assinantes

Inscreva-se para obter acesso e comece a ler agora mesmo.

Elimine tarefas penosas

Com tanta tecnologia envolvida atualmente e com as tarefas com prazos curtos para serem executadas, acaba que o SysAdmin, de maneira geral, não tem tempo para estudar novas tecnologias e se atualizar com o que o mercado está exigindo. O ideal de um SysAdmin que deseja ter sucesso em sua carreira, é que ele não perca tempo com tarefas operacionais, ou o que chamamos de tarefas penosas.

Antigamente, os SysAdmins se permitiam a ter o prazer de executar determinada tarefa que levava um tempo considerável de seu dia a dia de trabalho. E muitos até gostavam disso. Porém, o mundo evoluiu. Ficar fazendo trabalho repetitivo não vai fazer você evoluir. O ideal é você tornar aquela tarefa repetitiva (penosa) em uma tarefa automatizada, que faça o trabalho penoso para você. Portanto, tudo que for tarefa operacional e você puder automatizar, faça isso. Se for uma tarefa que você não tenha previsão de executar em um intervalo curto de tempo, analise se vale ou não automatizar o que lá na frente não será usado. Nesse caso, é  perder tempo fazendo algo desnecessário. Para esses casos, faça o básico, usando ferramentas mais práticas e que você já tem domínio sobre elas.

Se você estiver resolvendo um problema novo ou inventando uma nova solução, essa tarefa não é considerada tarefa penosa. Então, vale a pena você já pensar em automatizar uma tarefa que pode tornar-se penosa lá na frente. Neste caso, vale até estudar novas ferramentas para usar uma solução mais sólida e que você poderá ir adicionando novos recursos ao longo do tempo e, por que não, de seu uso.

O que não falta para um SysAdmin hoje em dia é eliminar tarefas penosas. Portanto, para eliminar essas tarefas, você precisará de algumas ferramentas:

  • Básicas, mas que ainda podem ser úteis:
    • Shell Script
    • Cron
    • AWK, grep (e suas variações), sed etc.
    • Expressões regulares (isso você sempre vai precisar)
  • Mais voltadas para o mundo DevOps

Por que você deve eliminar tarefas penosas?

  • Estagnação na carreira
    • O progresso de sua carreira se tornará mais lento se você ficar executando tarefas repetitivas a todo instante ao invés de utilizar esse tempo para estudar novas tecnologias e propor soluções para sua empresa.
  • Baixo moral
    • Tarefas penosas em grande volume resultam em tédio e insatisfação. Pode confiar, muitos SysAdmins se sentem assim. Não seja mais um para essa estatística.
  • Produtividade baixa
    • Se você perder seu tempo executando tarefas repetitivas, você estará deixando uma tarefa importante em atraso.

Esse texto foi escrito baseado na leitura do capítulo 5 do livro Site Reliability Engineering.

Zabbix x Software Livre

Não é mais segredo que muitas gigantes de tecnologia e de varejo usam ferramentas livres (AWS, UOL, Mercado Livre, Renner, Pão de Açúcar, etc).

Uma coisa é usar um Sistema Operacional e outra é usar uma plataforma como o Zabbix, que é mantido somente por uma empresa, apesar das dezenas de desenvolvedores, mas que ainda assim depende da comunidade para identificar BUGs e receber feedbacks.

Antes de mais nada, reflita por qual motivo você usa SL. Se a resposta for porque não há custo de licenciamento, pense que não é porque não existe licença que não haverá mão de obra para implantá-lo, onde em ferramentas pagas, na maioria das vezes, é tudo muito mais simples. Mas, se a resposta for porque você se identifica com o propósito do Torvalds, você não terá nenhuma dificuldade em usar o Zabbix.

Mas então do que esse post se trata? Simples, seja qual o for o seu motivo de usar o Zabbix, tenha sempre em mente que as melhores práticas do SL devem ser colocadas em prática para que você ou a empresa a qual você implantou o Zabbix possa usufruir da plataforma.

Algumas delas:

  • Use sempre as versão mais estáveis
  • Mantenha sempre o SO atualizado (Atualizado não é o mesmo que o mais novo, ok?)
  • Faça backups/snapshot das configurações que virão a ser alteradas SEMPRE
  • Ao identificar problemas, se possível, reporte ao desenvolvedor e/ou a comunidade para que outros não passem pelo que você passou

Atitudes como essa, fizeram do Linux o que ele é hoje e continuaremos a ter soluções para os nossos problemas tão boas quanto aos softwares pagos se mantivermos o mesmo sendo de coletividade.

Agora se você não se identificou com nada que eu escrevi acima e só precisa do Zabbix para substituir qualquer outra ferramenta, peça ajuda a um especialista pois além de você perder muito tempo, poderá não saber usar todos os recursos e executar os pré-requisitos que o Zabbix ou qualquer outra plataforma livre necessite.

Aproveitando, segue o links para o report de BUGs da Zabbix SIA.

https://support.zabbix.com/

Fim do suporte completo para o Zabbix 4.4

Para quem ainda utiliza o Zabbix 4.4, hoje (31/03/2020) vence o full support dessa versão.

Isso significa que essa versão receberá apenas correções de problemas críticos e de segurança por mais um mês. Então, se você ainda utiliza essa versão, comece já a planejar para atualizar o seu ambiente para a próxima versão LTS que em breve estará disponível, a aguardada versão 5.0.

A Zabbix SIA não garante nenhuma correção de código para versões mais antigas e versões não estáveis.

Fonte: https://www.zabbix.com/life_cycle_and_release_policy

Novo fôlego para o monitoramento MySQL via ODBC

Desde que o Zabbix incorporou o suporte nativo a monitoração de banco de dados (realizada via ODBC), vejo muita gente torcendo o nariz para o uso desse tipo de monitoração.

Antes mesmo da Zabbix SIA disponibilizar esse tipo de monitoração, muitos SysAdmins já usavam soluções como o falecido DBforBix, PyODBC e até mesmos scripts personalizados para efetuar monitoramento de bases de dados.

Fato é que o monitoramento ODBC nativo do Zabbix veio para facilitar a implementação para esse tipo de monitoramento. Porém, nem tudo são flores. Administrar as configurações de bases de dados nos arquivos odbc.ini e tnsnames.ora, por exemplo, não é tarefa fácil quando você monitora muitas instâncias de banco de dados. Para ajudar essa administração, desenvolvi o Zabbix2ODBC na empresa em que trabalho e o projeto virou open source. Este projeto está disponível desde 2019 no GitHub. Em uma postagem futura vou mostrar como usar a imagem Docker desse projeto.

Além da dificuldade em administrar os arquivos de configuração, ainda existe o problema principal do monitoramento ODBC, que é a performance. Raramente você vai notar perda de performance monitorando poucas bases de dados. Passando de 100 bases de dados com uma média de 50 itens coletados num intervalo médio de 3 minutos (usando um proxy com 4 CPUs e 8 GB de RAM), você já começa a sentir atraso na coleta dos dados. Isso acontece porque o monitoramento nativo de banco de dados do Zabbix utiliza uma conexão ao banco de dados para cada item configurado no host monitorado. Isso já causa um bloqueio temporário do poller do Zabbix Agent, pois o processo precisa aguardar a resposta do banco de dados com a métrica solicitada pelo processo de coleta para liberar o recurso, que pode partir do Proxy ou do Zabbix Server. Aqui uma observação: se você não usa Zabbix Proxy para esse tipo de coleta, corrija isso imediatamente. Além do uso de recursos de poller, existe outro problema ainda maior, que é o overhead no uso de CPU e load do sistema. Isso acontece pelo uso excessivo aos arquivos de configuração odbc.ini e tnsnames.ora (quando o Oracle é monitorado).

Para evitar o atraso na coleta de dados em grandes ambientes (que monitoram centenas ou milhares de instâncias de banco de dados) são necessários recursos computacionais (CPU e memória) para suprir a demanda pelo “faminto” monitoramento ODBC.

O que vem por aí? Teremos novidades?

No dia 30/01/2020, a Zabbix SIA disponibilizou um novo template para monitoramento do MySQL. Eu testei esse template e ele é compatível com a versão 4.4. A Zabbix SIA já está preparando o terreno para as novidades presentes na versão 5.0

Vale ressaltar que a versão 4.4 do Zabbix não é LTS e eu não recomendo o uso dessa versão em ambiente de produção. Se você está ansioso para testar esse template, que o faça em uma ambiente de testes/homologação.

Qual o ganho de uso com esse template?

O que eu observei nesse template, é que ele utiliza 5 itens ODBC nativo (sendo 2 em regras de discovery) e o restante são itens dependente usando recursos de pré-processamento de valores.

Isso significa que você terá um ganho elevado na performance, pois o seu sistema reduzirá drasticamente o uso de poller do Zabbix responsável por esse tipo de coleta, sem contar a redução do uso de CPU, que também contribuirá com a diminuição do load do sistema. Outro detalhe importante é que na versão 4.4 o gerenciamento de pré-processamento dos valores é suportado pelo Zabbix Proxy.

Como funciona a coleta com esse novo template?

Nesse novo template tem o item Zabbix_raw_items, que é responsável por fazer a coleta executando a query “show global status”. Com essa coleta, o Zabbix irá processar todos os itens dependentes, sem a necessidade de abrir uma conexão com o banco de dados para fazer a coleta desses itens. Isso já justifica o fôlego que esse tipo de monitoramento terá.

Se você usa monitoramento ODBC, a versão 5.0 do Zabbix já promete ganhos de performance em seu ambiente.

Para quem não estava satisfeito com a performance do monitoramento ODBC e pensava em desenvolver uma API ou escrever um exporter do Prometheus para entregar as métricas de banco de dados pra o Zabbix via HTTP Agent, sugiro analisar antes esse template. Com certeza você também ganhará um fôlego para esse monitoramento e evitará desenvolver algo sem necessidade.

O novo Template MySQL ODBC está disponível no repositório da Zabbix SIA.

No próximo post eu vou mostrar como subir o Zabbix em container Docker para testar esse novo template monitorando o próprio banco de dados do Zabbix.

Que versão do Zabbix devo usar em ambiente de produção?

No post anterior, eu mostrei como fazer a instalação do Zabbix 4.4 com SELinux habilidado.

Recebi muitas mensagens (por e-mail e Telegram) sobre esse assunto. Para minha surpresa, muitos leitores do blog questionaram por que eu demonstrei a instalação do Zabbix nessa versão. Digo que fiquei surpreso, justamente porque imaginei que surgiriam mais dúvidas a respeito do uso do SELinux, visto que é normal encontrar conteúdo sobre uso do Zabbix desabilitando o SELinux.

Eu demonstrei a instalação do Zabbix na versão 4.4, pois esta, no momento em que eu escrevi o post, era a versão estável lançada pela Zabbix SIA. Essa versão foi lançada em 7 de outubro de 2019 e atualmente está na release 4.4.1 (28/10/2019).

O motivo do questionamento de alguns leitores foi se deveriam usar essa versão em ambiente de produção, visto que a 4.4 não é uma versão LTS. Foi daí que eu escolhi o título desse post ;).

LTS significa Long Term Support. Ao pé da letra (Suporte de longo prazo).

Neste post vou mencionar não-LTS para a as versões Standard Release, que tem suporte em curto prazo.

Devo usar a versão 4.4 em ambiente de produção?

Depende se é uma nova instalação ou se é um upgrade de versão.

É a minha primeira instalação

Se você estiver na fase inicial de implantação, não vejo problemas de usar a versão 4.4, que é a versão estável. A única restrição nessa etapa é que você terá que planejar uma atualização para a versão 5.0 assim que a mesma for lançada.

– Por que preciso fazer isso? Porque a versão 4.4 não é LTS.

Uma versão não-LTS tem um suporte mais curto. Em um período de seis meses terminará o suporte completo. Isso significa que nesse período a Zabbix SIA se compromete a entregar todas as atualizações para essa versão. Finalizando esse período, essa versão terá mais um mês de suporte, apenas com atualizações de problemas críticos e de segurança. No fim desse período, essa versão será descontinuada e seu uso não é mais recomendado. Foi o que aconteceu recentemente com a versão 4.2

Figura 1: Versões do Zabbix atualmente suportadas.

Mantendo uma versão não-LTS em seu ambiente, você terá que realizar atualizações a cada seis meses. Isso pode ser um grande problema para infraestruturas de TI em grandes empresas.

Figura 2: Ciclo de vida da versão Standard

Já uso Zabbix em ambiente de produção em outra versão

Se você estiver usando uma versão LTS do Zabbix (atualmente a 4.0), não vejo porque correr para atualizar para uma versão não-LTS. Como mostrado na figura 1, uma versão LTS tem suporte mais longo: três anos para suporte total e mais dois anos para suporte limitado. O único revés que eu vejo nesse caso, é que precisa esperar (em média um ano e meio) para ter acesso aos novos recursos.

Figura 3: Ciclo de vida da versão LTS

Se estiver usando uma versão mais antiga, por exemplo, a 3.0 (que também é LTS), deve tomar cuidado com o fim do suporte, que pode acontecer justamente com o lançamento da versão 5.0. Não é regra, mas pode acontecer de não ter suporte para um upgrade direto da versão 3.0 para a versão 5.0. Portanto, se você ainda não atualizou para a 4.0, seria bom planejar essa atualização antes mesmo do lançamento da versão 5.0 e não ficar sem atualizações da versão 3.0. Caso contrário, seu ambiente estará vulnerável.

Dicas

  • Para saber mais detalhes sobre o ciclo de vida das versões do Zabbix, acesse https://www.zabbix.com/life_cycle_and_release_policy.
  • Vale conferir as notas de lançamento que a Zabbix SIA disponiliza, informando sobre novos recursos, melhorias e correção de bugs.
  • A previsão para lançamento do Zabbix 5.0 você também encontra na página de Roadmap do Zabbix. Nessa página você encontrará informações importantes sobre o que está no radar para ser desenvolvido. É um bom local para se preparar para um recurso importante que você quer usar e está em desenvolvimento.
  • Vale a pena ir testando as versões que estão em desenvolvimento e já tem alguns recursos disponíveis em versões RC, Alpha e Beta. Se você pensa em usar tais recursos para aplicar em produção, não correrá o risco de aplicar uma atualização sem ter conhecimento desses novos recursos.
  • Para encontrar as versões que estão atualmente em desenvolvimento, acesse https://www.zabbix.com/developers.

Espero que tenham gostado do assunto. Até o próximo post.

Instalação do Zabbix 4.4 no CentOS 8 com SELinux habilitado

Já tentou instalar o Zabbix e sempre dá problema na inicialização do serviço?
Para “resolver o problema” você desabilita o SELinux, certo? ERRADO.

Nesse post você vai aprender como instalar o Zabbix deixando o SELinux habilitado, ou seja, no modo Enforcing.

O modo Enforcing é o modo padrão do SELinux. Geralmente o SELinux é desabilitado pela trabalheira (??) que dá para configurar as políticas para que um determinado serviço funcione corretamente.

Para esse primeiro post, eu gravei um vídeo e disponibilizei no YouTube justamente para demonstrar como fazer com que o Zabbix Server funcione com o SELinux no modo Enforcing. Com as dicas presentes nesse vídeo, você poderá usar para configurar a política de outros serviços que por ventura não sobem quando o SELinux está em modo Enforcing.

Resolvi fazer esse vídeo porque encontramos vários sites e blogs mostrando como desabilitar o SELinux, como se isso fosse a solução do problema.

Aprender a usar o SELinux te dará mais conhecimento do que apenas desabilitar esse recurso. Fica a dica.

Deixo aqui alguns links sobre esse projeto:

Espero que tenham gostado do assunto. Até o próximo post.

systemctl start new-blog

Estou apenas começando este novo blog. Pretendo falar muito sobre Zabbix, Linux, Python, Docker, Git, Jenkins, Ansible e outras ferramentas DevOps. Tudo voltado para equipes de Infraestutura.

Ao longo dos posts também escreverei muito sobre cultura DevOps para equipes de Infraestrutura, sobretudo como organizar seu ambiente de trabalho para ser mais organizado e eficiente. Sim, equipes de Infraestrutura também fazem isso muito bem.

Fique atento para as novidades.

Inscreva-se abaixo para ser notificado quando eu publicar novas atualizações.