ANSIBLE SERIES: h.t.wrt* … tasks, plays e books: como escrevê-los?

* Sigla para: < How To Write >

Recapitulando o que vimos até o momento acerca do Ansible:

  • Teoria
    • DevOps: conceito, história, curiosidades ✅
    • Por que automatizar com ansible? ✅
    • 5 conceitos fundamentais ✅
  • Prática
    • Linha de comando, hello.YML e Ad-Hoc ✅
    • Web console: AWX/TOWER ✅
    • Como executar um JOB graficamente em tempo real ✅

Poxa vida! 😲 Eu diria um bocado não é mesmo? Sendo ou não, o que importa é que a estrada ainda se encontra a nossa frente e aos poucos, devagar, mas com passos firmes vamos progredindo no ROADMAP de um DEVOPS. Portanto, e acho que todos já estão acostumados com as minhas deixas (ou chamados) para iniciar um POST do blog … Hey Ho! Let’s go!

Muito bem jovens, ao que interessa então. Se você já buscou material, ou até mesmo cursou algum tipo de preparatório para o Ansible, as chances do professor ter abordado logo no começo (imediatamente após o briefing/overview) esses itens que vou mostrar é muito grande. Em outras palavras, e simplificando, acredito que tenha sido dessa forma: 1. o que é ansible? / 2. definições e termos / 3. prompt, módulos e comandos ad-hoc / para finalmente chegar em 4. como escrever playbooks. Por último é que eles mostram o AWX, boas práticas, roles, hosts windows, network e paramiko, etc. Mas e daí Victor? Eu sei, não há nada de errado com isso. Cada um ministra e monta seu plano de aulas da maneira que achar melhor aos estudantes. E tudo bem, ok. Mas no nosso caso, vocês e eu, quis inverter um pouco as coisas e adiantar logo a parte gráfica do ansible, ou seja, o tower/awx. Na verdade o meu intuito era “cativar” a todos apresentando de cara as duas faces do mesmo: linha de comando e interface web. Assim cada pessoa poderia escolher a melhor forma de trabalhar, de acordo com seu gosto e afinidade. Gosta de terminal? Ótimo, vá de CLI e seja feliz! Não, prefiro botões, gráficos e menus. Maravilha, pegue a GUI e curta a vida! O que quero dizer aqui é não existe método certo ou errado, melhor ou pior. Não, pelo contrário, há vantagens e desvantagens em cada um deles. Cabe tão somente a você pesar os prós e contras e escolher sua forma de operar. Lembrando sempre que é possível combiná-las tá? Por exemplo, tal tarefa é mais rápido e comodo se fizer via bash, já aquela outra é necessário maior controle de usuários e permissões, então farei por meio da web. Entenderam? Ou enrolei demais? 🤔

POOL DE INFORMAÇÕES

https://docs.ansible.com/

Desde sempre admirei empresas de tecnologia, bem antes de entrar na faculdade. Talvez por isso que enveredei para este ramo. Google, Microsoft, IBM, Facebook, e tantas outras (ora gigantes, ora um pouco mais modestas) foram alguns exemplos de modelo a perseguir, almejar e quem sabe um dia entrar no time… Uma vez imerso nesse grande oceano, chamado TI, passei a ter bastante contato com Linux e suas distros. Além de ter curtido, comecei a ficar de olho, meio que acompanhar notícias e bastidores das empresas idealizadoras/responsáveis. Foi assim que fiquei maravilhado com todo o trabalho por trás de cada uma dessas distribuições. Digo, não apenas o resultado final: o lançamento periódico de novas versões. Mas sim o suporte, divulgação, comunidades, fóruns oficiais, documentação, e afins. Também vale um destaque especial, o principal “cartão de visita” dessas empresas: os websites. Falo sério, você já acessou a Canonical, Red Hat, Suse e System76 ?? É verdadeiro deleite, e de encher os olhos, devido a tanto primor e cuidado com o design e layout. São muito bonitos, sem exceção!!!

E como prova disso, trago a seguir uma captura de tela da página INDEX da documentação do ansible. Podemos dizer que ela é uma espécie de hub central, uma vitrine, para orientar sobre tudo que o mesmo é capaz, e como fazer. Confiram:

Figura 01. Docs INDEX page

Acima devidamente circulado está o nosso foco: a documentação base, ou seja, relacionada ao núcleo, chamado de ansible-core. Pelas próximas semanas vamos nos debruçar sobre a sintaxe, lógica, melhores práticas, organização de pastas e arquivos, reuso de código, otimização, e muito mais. Para isso, irei sempre pontuar já no título do POST em questão, o que vamos aprender nele. Ex: loops, variáveis, templates, roles, e assim por diante.

Qualquer dúvida ou lacuna que porventura tenha deixado, acessem o link e vão direto na fonte para saná-las. Até porque não pretendo abordar absolutamente tudo que está lá, ok? Senão o que estaria fazendo é um simples CTRL-C + CTRL-V do referido conteúdo. E isso não quero, e tão é algo ético. Resumindo: antes de ler aqui, recomendo dar uma estudada pela oficial, por favor. Embora prometo fazer o meu melhor para se aproximar ao máximo dos mestres da Red Hat 🎩

01-a. BECOME: acesso, usuários e permissões

Ansible utiliza meios de escalonamento de privilégios pré-existentes na máquina remota. Isso é o que eles chamam de become. Ele seria o equivalente ao su, sudo, runas e similares. O objetivo é tanto permitir quanto executar tarefas locais nos alvos (nodes), usando privilégios de root ou qualquer outra permissão já criada dentro do nó. O efeito prático disso é torna-se outro usuário¹ dentro do host² em questão, sendo o primeiro completamente diferente daquele que usou para entrar no segundo.

i ) Usando o become

É possível controlá-lo através de tasks, plays, variáveis de conexão ou linha de comando. Em caso de duas ou mais ao mesmo tempo (sim, isso é válido e às vezes comum) consulte atentamente as regras de precedência para as mesmas. Leia mais aqui: https://docs.ansible.com/ansible/latest/reference_appendices/general_precedence.html#general-precedence-rules

! ! ! Diretivas do become ! ! !

Estabeleça como definir o become, controlando o mesmo à nível de task ou play. Variáveis e diretivas são independentes entre si. Por exemplo, definir become_user não é a mesma coisa que “só” become.

become: defina para 'yes' e ative o escalonamento de privilégios
become_user : defina o usuário com os privilégios desejados. ou seja, a credencial que você pretende se tornar e não o usuário que fez login.
become_method : (à nível de play ou task) sobrescreve o método padrão definido em ansible.cfg
become_flags :(à nível de play ou task) permite o uso de flags específicas para uma tarefa ou play. bastante comum quando se quer mudar o usuário para 'nobody' em casos de 'shell' setado para 'nologin'

Por exemplo,

Gerenciar um serviço (daemon) que requer privilégios de root … Em um cenário onde o usuário conectado não é root … Neste caso, utilizamos o valor padrão de become_user, que é justamente ‘root’

- name: Ensure the httpd service is running
  service:
    name: httpd
    state: started
  become: yes

Executar algo como ‘nobody’ quando o shell (terminal) está configurado para ‘nologin’

- name: Run a command as nobody
  command: somecommand
  become: yes
  become_method: su
  become_user: nobody
  become_flags: '-s /bin/sh'

To specify a password for sudo, run ansible-playbook with --ask-become-pass (-K for short). If you run a playbook utilizing become and the playbook seems to hang, most likely it is stuck at the privilege escalation prompt. Stop it with CTRL-c, then execute the playbook with -K and the appropriate password.

! ! ! Variáveis de conexão ! ! !

Nós e grupos suportam diversas, e distintas, opções ‘become’. Em cada gerenciável existe a possibilidade de defini-las em um arquivo inventário, ou usá-las como se fossem variáveis comuns.

São elas,

ansible_become: em termos de finalidade, praticamente uma cópia da diretiva become. ou seja, define se o escalonamento de privilégio será utilizado ou não.
ansible_become_method: escolhe qual forma de privilégio será usada.
ansible_become_user: dita qual usuário você irá se tornar via método de escalonamento. não é a mesma coisa que ansible_become: yes
ansible_become_password: senha do usuário citado anteriormente. é possível, mas não aconselhável, passar segredos em texto plano. aprenda formas mais seguras em https://docs.ansible.com/ansible/latest/user_guide/vault.html#playbooks-vault
! ! ! Opções na linha de comando ! ! !
--ask-become-pass OU -K
Solicita a senha "privilegiada" ... É usada para todos os hosts
--become OU -b
Executa as instruções com o become ... Não necessariamente haverá sempre uma senha
--become-method=BECOME_METHOD
Método utilizado ... Padrão = SUDO ... Outros [su | pbrun | pfexec | doas | dzdo | ksu | runas | machinectl]
--become-user=BECOME_USER
Rode os comandos como este 'usuário' ... Padrão = ROOT ... Não é o mesmo que --become ou -b

ii ) RISCOS E LIMITAÇÕES DO BECOME

Intuitivo mas não perfeito, o become apresenta certas limitações em sua capacidade. O que gera algumas questões “interessantes” a serem avaliadas, para que não se transformem em “desagradáveis”. Todas elas podem ser estudadas no link a seguir:

https://docs.ansible.com/ansible/latest/user_guide/become.html#risks-and-limitations-of-become

  • Riscos de se tornar um usuário sem privilégios
  • Não compatível com todos os plug-ins de conexão
  • Apenas um método pode ser habilitado por host
  • O escalonamento de privilégios deve ser generalista
  • Talvez não seja possível acessar variáveis de ambiente preenchidas por pamd_systemd

CONTINUA (…)

Próximo post >>> LOOPS

REFERÊNCIAS:

https://docs.ansible.com/

https://docs.ansible.com/core.html

https://docs.ansible.com/ansible/latest/

https://docs.ansible.com/ansible/latest/user_guide/index.html

https://docs.ansible.com/ansible/latest/user_guide/index.html#writing-tasks-plays-and-playbooks

https://docs.ansible.com/ansible/latest/user_guide/become.html#become

ZABBIX Series: how to … adicionar um host linux ao monitoramento zabbix

Olá, aqui e de volta outra vez ( J. R. R. Tolkien feelings 😊 ) A série não pode parar e por isso, vamos nessa!!!!

Neste episódio veremos como adicionar um servidor linux ao nosso monitoramento. Ué Victor, e por acaso não já o fizemos no POST anterior? E a reposta é: não meus caros, ainda não. Ou melhor, eu diria quase. Não basta apenas instalar o agente zabbix e esperar que ele faça o restante do trabalho, não é bem assim. Mesmo apresentando o recurso de autodescoberta (que vale um artigo num futuro próximo), é bom, e por que não saudável também, aprender a configurar sozinho um host linux na interface web do zabbix.

ADD HOST

Uma vez logado na web console, vá para Configuration >> Hosts >> Create Host

** http://192.168.1.10/zabbix/

username: Admin

password: zabbix

Figura 01

Agora, informe os detalhes para os seguintes parâmetros:

Hostname: Nome do host remoto/cliente/alvo (nó)
Visible nameNome do host, algumas vezes chamado de nó
GroupSelecionar o(s) grupo(s) de hosts ao(s) qual(is) o nó pertence
Agent Interface: Digitar o endereço IP ou o nome DNS (IP recomendado)
Connect toEscolher entre IP / DNS (Forma de comunicação: IP recomendado)

Figura 02

NÃO clique em Add, por favor … O próximo passo são os templates, a setinha amarela (canto superior)

TEMPLATE

Um template é um conjunto de entidades que reduz seu esforço manual na configuração de gatilhos, itens, gráficos, aplicativos, etc. para cada host.

Templates podem ser aplicados a vários hosts ao mesmo tempo. E para diminuir ainda mais o trabalho, o próprio Zabbix já vem com alguns pré-definidos por padrão.

Vá para Templates >> Link new templates. Aqui é possível tanto digitar para pesquisar um modelo quanto clicar em Selecionar para escolher dentre uma lista (Marque o modelo que deseja vincular ao novo host)

Figura 03
Figura 04
Figura 05

Feito isso, redirecionado automaticamente (e de volta) para Configuration >> Hosts

Observe a mensagem (tarja verde) dizendo que o novo host que foi adicionado com sucesso:

Figura 06

MONITOR

Qualquer problema é sempre listado em Monitoring >> Dashboard Então, dirija-se até lá:

Figura 07

Para dados, valores, estatísticas e informações mais detalhadas acerca dos recursos coletados, vá para Monitoring >> Graphs

Escolha um host, procure pelo parâmetro do recurso desejado (CPU, RAM, HD, etc) e finalmente clique em GRAPH, sendo esta a última coluna no canto direito.

Figura 08

Aos mais atentos, percebam que a categoria Monitoring >> (lado esquerdo) possui muitas outras opções, como OVERVIEW, LATEST DATA, MAPS, DISCOVERY, SERVICES … Mas não se preocupem, pois todas elas serão cobertas e tratadas em artigos futuros da série

Bom galera, esse foi o conteúdo que quis trazer para vocês. Como disse no início, o BLOG não pode parar e tenho planejado algumas outras séries ainda este ano. Acredito que vão gostar bastante 😋 Mas primeiro, preciso concluir essas duas em aberto: o Zabbix e o Ansible. Então, já sabem: favorite no seu browser, seja um seguidor por e-mail ou redes sociais, e volte sempre pra checar se não saiu texto novo por aqui.

Grande abraço a todos! Um ótimo fim de semana

REFERÊNCIAS:

https://www.itzgeek.com/how-tos/linux/how-to-add-a-node-to-zabbix-server-for-monitoring.html

https://blog.zabbix.com/zabbix-agent-active-vs-passive/9207/

https://www.zabbix.com/auto_discovery

ZABBIX SERIES: how to … install zbx-agent on centos_7

Saudações 🖖 Agora que a páscoa ficou para trás, e esse é oficialmente o início do 2º ano do BLOG, nada melhor que começar com o pé direito e resgatar a série “pausada” do nosso querido Zabbix … Para tal vamos aprender hoje como instalar os agentes que monitoram toda a atividade no outro lado, nas pontas, ou melhor, nas máquinas alvo (nodes).

O mais legal é: trata-se de um tutorial bem curtinho e fácil de reproduzir. Quando piscarem os olhos verão que já terá acabado. Sendo assim, terminais abertos, usuários logados, e atenção aos comandos necessários. Vem comigo! 🚶‍♂️🚴‍♂

01. REPOSITORIO

Entre como root ou mude para o mesmo:

sudo su -

ou

su -

Devido ao pacote zabbix-agent não estar listado nos repositórios base do CentOS, adicione o endereço correspondente para configurá-lo em sistemas clientes (somente aqueles que deseja monitorar, é claro)

rpm -ivh https://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm

02. PACOTE

Use o comando a seguir para instalar o agente propriamente dito:

yum install -y zabbix-agent

03. ARQUIVO

Modifique o arquivo do cliente para expressividades referentes ao servidor mãe/central:

vi /etc/zabbix/zabbix_agentd.conf

Atualize as seguintes informações no arquivo de configurações:

### Zabbix Server IP Address or Hostname ###

Server=192.168.1.10

### Client Hostname ###

Hostname=control-A

04. CONTROLE

Reinicie o agente zabbix:

systemctl restart zabbix-agent

Ative o zabbix-agent para um start automático no boot:

systemctl enable zabbix-agent

Fim

Eu avisei (…) O tempo passou e você nem viu 😄 hahaha

Vejo todos na próxima !!!

Tchau 👋

Referências:

https://www.itzgeek.com/how-tos/linux/ubuntu-how-tos/how-to-install-zabbix-agent-on-centos-7-ubuntu-16-04-debian-8.html

ANSIBLE Series: Web … Observando a execução de um JOB em tempo real

<head>
       Dedico esse post às mulheres 🌷 Especialmente para todas as  devs,
       sysadmins, engenheiras, pesquisadoras e cientistas 👩🏻‍🔬👩🏻‍💻👩🏻‍🏫👩🏻‍🎓 da computação
       ao redor do globo
</head>

E estamos aqui novamente, de volta ao Ansible. Mais precisamente continuando a parte gráfica, batizada de AWX/Tower. Preciso que resgatem na memória o que vimos no post ANSIBLE Series: Lab … Modo GUI = Web Console

Um resumo rápido e para ajudá-los…

1ª parte – Teoria: o que é AWX, por que foi criado, funções principais, e explicação sobre cada componente integrante da arquitetura.

2ª parte – HOW TO: como instalá-lo usando o método docker-compose.

3ª parte – Mão na massa: adicionar usuários, inventários, hosts, criar projetos e templates na interface web.

Portanto, sendo assim, não pretendo repetir ou me alongar demais nas explicações de cada coisa, seja item ou subitem, seja menu ou submenu, seja aba ou opção. Para que isso ocorra e todos compreendam recomendo a leitura do já citado ANSIBLE Series: Lab … Modo GUI = Web Console … Basta pesquisar no blog ou retroceder alguns artigos, ok? 😏

O que verão a seguir serão apenas telas já com os campos preenchidos por mim, de acordo com as minhas definições e configurações, ou seja, hosts, iventário, chave SSH, repositório GIT, etc. Se por acaso os nomes que você utilizou no laboratório diferem dos meus (o que é bem provável e possível), preste atenção e preencha os campos de acordo com eles.

Ultima chamada e reforço antes da prática de hoje: Caso queira saber/localizar aonde deve clicar selecionar ou digitar em cada passo/etapa no AWX, pare agora, leia e só retorne após o ANSIBLE Series: Lab … Modo GUI… Aaaaahhhhh, vocês já sabem muito bem o quê 😂😂😂😂 Chega de enrolar!!! rsrs

IF (TIMEOUT=TRUE) OR (ERROR=TRUE) THEN:

Control-A

# firewall-cmd --zone=public --add-masquerade --permanent
# firewall-cmd --permanent --add-service=http
# firewall-cmd --permanent --add-service=https
# firewall-cmd --reload

Node-01, Node-02

# systemctl status firewalld
# systemctl stop firewalld
# iptables -L

CRIANDO UMA ORGANIZAÇÃO (…)

Figura 01

ADICIONANDO UM USUÁRIO (…)

Figura 02

DEFININDO INVETÁRIO (…)

Figura 03

ACRESCENTANDO HOSTS (…)

Figura 04

ESTABELENCENDO CREDENCIAL (…)

Figura 05

INICIANDO UM PROJETO (…)

Figura 06

CRIANDO TEMPLATE (…)

Figura 07

RUNNING A JOB (!!!)

Figura 08

(**) Legendas:

Verde -> Sucesso -> OK!
Laranja -> Modificações/Alterações!
Vermelho -> Avisos/Falhas -> ERROR!

https://www.linuxtechi.com/install-ansible-awx-docker-compose-centos-8/

https://en.wikipedia.org/wiki/Margaret_Hamilton_(software_engineer)

https://pt.wikipedia.org/wiki/Margaret_Hamilton_(cientista_da_computa%C3%A7%C3%A3o)

Margareth Hamilton & Apollo 11

Happy women’s day 🙂

ZABBIX Series: How to … install Zbx-Srv_5.0 on CentOS_7

Dando prosseguimento ao Zabbix, hoje vamos aprender como instalar a versão LTS (Long Term support) mais recente do mesmo. Pelo site oficial ainda é possível baixar a família anterior, representada pelo 4.0, bem como a versão não-LTS mais nova que é a 5.2 … Outras opções correlatas, à exemplo de DISTRO, DATABASE, WEB SERVER, também estão presentes na página.

Escolhi a 5.0 LTS, ao invés da 5.2, simplesmente por ser mais estável e amplamente depurada (sem bugs) tendo em vista que o intervalo de lançamento entre as duas foram alguns bons meses. Outro fator é o próprio suporte de vida prolongado, garantido assim patches de correção e segurança pelos anos conseguintes, mesmo após o seu encerramento.

Papel, caneta e lápis na mão para os requerimentos de instalação 👨🏻‍🏫

Hardware

A quantidade de memória e o tamanho do espaço em disco depende muito do número de hosts a serem monitorados. Para 500 hosts o mínimo recomendado é 2GB de RAM e 2 GB de HD. De acordo com a documentação oficial este pode ser considerado um ambiente mediano, portanto 2 núcleos de CPU e 2 GB de RAM são mais do que suficientes.

Para nossos laboratórios e exercícios futuros, no VirtualBox:

uma VM com 1 núcleo, 2GB ram, e 5GB ou >/+ hd

( Isso mais do que satisfaz nossos objetivos muito bem! )

Para outros cenários, configurações, ambientes … Maiores informações em 👇🏻👇🏻👇🏻

https://www.zabbix.com/documentation/5.0/pt/manual/installation/requirements

SOFTWARE

Apache: 1.3.12 ou superior
MySQL: 5.5 ou 8.0.x / MariaDB: 10.0.3 ou superior
PHP: 7.2.0 ou superior

Abra o virtualbox, inicie a VM, aguarde pelo CentOS e entre no terminal 👨🏻‍💻

01. REPOSITORIO

Ativar a ‘coleção de softwares’ (scl) via repositório:

yum install -y centos-release-scl

Baixar o repositório zabbix para obter depois os pacotes servidor, agente e frontend:

rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm

02. PKG ‘ ZABBIX-SERVER ‘

Instalar o servidor zabbix com suporte ao banco de dados MySQL/MariaDB:

yum install -y zabbix-web-mysql-scl zabbix-apache-conf-scl zabbix-server-mysql zabbix-agent --enablerepo=zabbix-frontend

03. TIMEZONE

Para usar o apache com o zabbix, atualize o arquivo de configuração do mesmo:

vi /etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf
php_value[date.timezone] = America/Recife

Encontre a sua zona em:

https://www.php.net/manual/en/timezones.php

04. BANCO DE DADOS (DB)

Instalar o MariaDB listado nos repositórios do sistema:

yum install -y mariadb-server mariadb

Criar a base de dados:

systemctl start mariadb
mysql -u root -p
create database zabbixdb character set utf8 collate utf8_bin;

grant all privileges on zabbixdb.* to zabbixuser@localhost identified by 'password';

quit;

Importar os dados e esquema inicial para a recém-criada database:

cd /usr/share/doc/zabbix-server-mysql*/
zcat create.sql.gz | mysql -u zabbixuser -p zabbixdb

Apontar configuração da base, informando os detalhes no zabbix:

vi /etc/zabbix/zabbix_server.conf
DBHost=localhost
DBName=zabbixdb
DBUser=zabbixuser
DBPassword=password

Reiniciar todos os serviços:

systemctl restart zabbix-server zabbix-agent httpd rh-php72-php-fpm

Ativá-los para subirem automaticamente no reboot do sistema:

systemctl enable zabbix-server zabbix-agent httpd rh-php72-php-fpm

05. SELINUX

Caso você goste, conheça ou utilize em seus servidores de produção, execute esses comandos:

yum install -y policycoreutils-python
setsebool -P httpd_can_connect_zabbix on

Se preferir, também adicione algumas regras personalizadas executando os seguintes comandos:

curl https://support.zabbix.com/secure/attachment/53320/zabbix_server_add.te > zabbix_server_add.te
checkmodule -M -m -o zabbix_server_add.mod zabbix_server_add.te
semodule_package -m zabbix_server_add.mod -o zabbix_server_add.pp
semodule -i zabbix_server_add.pp

Caso contrário… Siga em frente e pule esta etapa 😬

Fonte : https://catonrug.blogspot.com/2018/04/set-up-zabbix-server-on-centos-6.html

06. FIREWALL

Configurar regras que permitam o agente zabbix alcançar o servidor zabbix:

firewall-cmd --permanent --add-port=10050/tcp
firewall-cmd --permanent --add-port=10051/tcp
firewall-cmd --permanent --add-port=80/tcp
firewall-cmd --reload

07. WEB INSTALADOR

Abrir o navegador (firefox, chrome, edge) e informar a URL:

http://ip_da_maquina/zabbix/

Pronto! Agora siga os passos e complete a instalação.

(a) Na página de boas-vindas clique em Next

(b) Verifique se todos os pré-requisitos estão OK. Em seguida, Next

(c) Digitar nome, usuário e senha da base de dados ‘zabbix’. Next

(d) Defina alguns detalhes do servidor, como porta e nome da instalação. Next

(e) Quase lá! Revise todas as informações presentes no sumário descrito na tela. Next

(f) Parabéns!!! Você conclui a instalação do Zabbix. Clique em Finish

Uma vez feito, você será redirecionado para a web console, mais precisamente na página de login …

08. ZABBIX DASHBOARD

=== Ou Painel em pt-BR ===

Faça logon com as credenciais padrão:

Username: Admin
Password: zabbix

Feito! Está pronto para uso!

Dark mode is the law … Law is the dark mode 🤣 lol

Agradeço imensamente sua paciência nesse começo “triplo” de mais uma série. Os capítulos subsequentes veremos como instalar o zabbix-agent e também acrescentar nós clientes no zabbix-server para monitoramento.

É isso pessoal. Por hoje é só. Nos vemos na próxima! 👋🏻

REFERÊNCIAS:

https://www.itzgeek.com/how-tos/linux/centos-how-tos/how-to-install-zabbix-server-3-2-on-centos-7-ubuntu-16-04-debian-8.html

https://technologyrss.com/how-to-install-zabbix-5-0-on-centos-7/

https://www.itzgeek.com/how-tos/mini-howtos/securing-mysql-server-with-mysql_secure_installation.html

https://catonrug.blogspot.com/2018/04/set-up-zabbix-server-on-centos-6.html

ZABBIX Series: Teoria … Convenções = Palavras + Significados

No episodio anterior de MachinesBecomeServices (…) 👀 Vimos basicamente três coisas: o que é Zabbix? qual sua função? aonde utilizá-lo? Além disso, fui um pouco “categórico demais” ao afirmar que a teoria do mesmo se comparado a do Ansible é mais suave e tranquila. Bem, para me redimir e se por acaso ofendi alguém, segue a minha defesa. Ops! Quis dizer, desculpas (rsrs): Teoricamente falando, Ansible > Zabbix !!! Mas relaxem, não precisamos brigar 😅 Esse é tão somente o meu ponto de vista, opinião pessoal, e até mesmo o sentimento que aflora quando comparo um com o outro. (Use os comentários para expressar a sua: Ansible > Zabbix? Ou Zabbix > Ansible?)

Pedido de desculpas feito, papo introdutório terminado. Passemos agora ao contexto desse post ( e antes de tratarmos/abordarmos seu conteúdo na sequência).

CONTEXTUALIZANDO:

Uma vez instalado, nos deparamos com a interface do Zabbix acessível via browser. Primeiro é necessário finalizar algumas etapas de configuração, que na prática são páginas com perguntas e parâmetros a serem respondidos. Depois criar o próprio usuário para não utilizar mais o root/admin. Finalmente, entrar e conferir a página inicial do Zabbix. Nela, é possível exibir gráficos (simples e composto), mapas, telas, dentre outros elementos. E mais, tanto na barra superior (v_4.0) quanto na barra lateral esquerda (v_5.0), estão localizados todos os menus, sub-menus e opções relativas ao Zabbix e ao monitoramento como um todo.

Agradável visualmente e ao mesmo tempo “complexo” à primeira vista, foi pensando nisso, em facilitar as coisas, que a equipe do Zabbix propôs uma convenção entre palavras-termos-significados. O intuito é unir o útil ao agradável. Ou melhor, em outras palavras, auxiliar não apenas o uso, mas também o entendimento acerca do funcionamento da ferramenta por parte dos administradores e analistas.

Veremos que certas palavras/termos, trazem consigo um mero significado para determinado componente (“peça”) do sistema (zabbix). Ex: “isso é aquilo e ponto final”. E outras vezes significam uma ação para determinada tarefa em um local especificado. Ex: “fulano” é “beltrano” que “faz” tal coisa em “sicrano”.

CONVENÇÕES DO ZABBIX:

=== OU MELHOR, COMO SÃO AS COISAS? OU AINDA, COMO A BANDA TOCA? ===

Um brevíssimo crédito ao autor original e sua obra consultada para esta seção…

Nome: Werneck Bezerra Costa

Perfil técnico: https://br.linkedin.com/public-profile/in/werneckcosta?challengeId=AQENq7hye0XNQgAAAXe1oEyTMh3grPgdcN9gQk2A1SNB5KaM0_yJ-Y5t893eNYfqr9Rm_IyXD52hDmmbCeWQ1gHqKs8p6ifQZA&submissionId=ad992420-25df-6416-9570-61eb71224718

Artigo: http://www.revistas.unirn.edu.br/index.php/revistaunirn/article/view/415/358

Meio publicado: http://www.revistas.unirn.edu.br/index.php/revistaunirn/issue/view/27

Quero deixar claro que apenas sintetizei os principais conceitos baseado na leitura desta como também de outras fontes igualmente analisadas e referendadas por entidades, pares e empresas. Reconhecidas tanto na academia quanto no mercado. Todos os links para consulta estão presentes no final deste texto!

1. Host

Dispositivo de rede que possa ser monitorado por IP ou DNS. Ex: servidores, roteadores, desktops, impressoras.

2. Grupo

Conjunto lógico de hosts usando critérios de tipo, função ou localidade. Ex: Grupo Linux, Grupo Windows, Grupo Firewall, Grupo WEB, Grupo E-mail, etc.

3. Item

Dado, peça ou componente (físico/lógico) de determinado host monitorado. Na prática também pode ser chamado de métrica de dados. Ex: disco, memória, serviço (HTTP, NTP), porta, ping.

4. Template

Conjunto de elementos ou “agrupador” de elementos. É um tipo de “container”, um modelo para entidades (itens, triggers, gráficos, telas, aplicações) iguais e comuns entre ativos de rede, por exemplo, servidores virtuais. Ex: Template_Linux_RedHat, Template_Linux_Debian, Template_Web_Apache, Template_Web_NGINX

5. Triggers

Espécie de “supervisor” para itens. Usualmente monitora valores. Apresenta a capacidade de disparo e aviso por meio de e-mails, ou visualmente altera a cor de um item. Ex: Saída para internet inoperante, ou seja, de verde para vermelho.

6. Eventos

Ocorrência gerada pós-ativação de uma trigger. Normalmente algo que merece atenção. Lista dos últimos eventos está presente na interface inicial do usuário no Zabbix.

7. Actions

Resposta pré-definida à determinado evento. Uma ação é formada por condicionantes + operações a serem executadas. Ex: envia mensagem e depois executa um comando remotamente no servidor.

8. Gráfico simples

Criado automático após a adição de um item. O mesmo não permite mudanças estéticas.

9. Gráfico composto

Oposto do simples. Manualmente ou via template para relacionar itens.

10. Mapas

Conjunto de hosts aglutinados visualmente para melhor identificação de eventos e conexões.

11. Telas

Elemento visual composto. É um “aninhador” de informações. Gráficos, mapas e texto em um só local.

12. Aplicação

Grupo/conjunto lógico de itens.

13. API Zabbix

Possibilita o uso do protocolo RPC Json para criar, atualizar e receber objetos Zabbix (como hosts, itens, gráficos, dentre outros) ou executar qualquer tarefa personalizada.

https://www.zabbix.com/documentation/current/pt/manual/concepts/definitions

http://zabbixbrasil.org/files/Network_Conference.pdf

ZABBIX Series: Teoria … Monitoramento e os 3 “Q”s (O que? Por que? Para que?)

A ideia que tenho (e sustento até o momento) para reger a linha temporal, bem como a sequência entre as ferramentas abordadas aqui no BLOG, é a seguinte:

1º mandamento: Sempre que começar uma SÉRIE, terminar o mais breve possível (em um futuro próximo). Nunca, jamais deixá-la no limbo e retomar depois. O raciocínio se perde e a lógica se esvai. 2º mandamento: Manter no ar (online/disponível) no máximo duas ou três SÉRIES simultâneas. Mais que isso, corre o risco de comandos, códigos e conceitos serem trocados, gerando dessa forma uma baita confusão. 3º mandamento: Entre uma SÉRIE e outra, durante seus intervalos, fazer pequenas pausas trazendo conteúdo menos denso. Por exemplo, notícias (NEWS) e extras (PLUS+). A justificativa é dar tempo para efeitos de laboração e assimilação da(s) SÉRIE(s) principal(is).

Pois bem, cientes disso agora, e sem floreios ou enrolação, podemos começar 👍 Avante!

Conceitualmente falando, o Zabbix difere muito se comparado ao Ansible. Principal motivo/razão? O primeiro apresenta uma teoria simples, enxuta, fácil e até mesmo, de tamanho reduzido. Já o último possui uma vasta (pra não dizer enorme) “galáxia” de termos e definições. Metaforicamente, cada um desses seria uma “estrela” atraindo gravitacionalmente “planetas” e suas “luas” (itens e subitens, respectivamente) compondo assim, isoladamente, um “sistema solar”. Porém, uma vez somados, estes próprios formam um grande “sistema” de “sistemas”. Daí a escolha da palavra galáxia. E o que seríamos nesse contexto? Pequenos astronautas, é claro! 👨🏻‍🚀 🚀 Desbravando e contemplando todo o seu esplendor.

Se no passado precisamos de pelo menos três partes (links abaixo), deveras longas, para nos situar diante da teoria do Ansible… Veremos que no presente, e com o Zabbix, é necessário apenas duas postagens, curtas por sinal (diga-se de passagem), para expor todos os elementos que servem de fundamentos teóricos.

ANSIBLE Series: Teoria … Um papo sobre DevOps

https://machinesbecomeservices.com/2020/11/12/ansible-series-intro-parte01-um-papo-sobre-devops/

ANSIBLE Series: Teoria … Dicionário Ansible

https://machinesbecomeservices.com/2020/11/16/ansible-series-introducao-parte02-dicionario-ansible-e-a-importancia-da-automacao/

ANSIBLE Series: Teoria … 5-V Conceitos Fundamentais

https://machinesbecomeservices.com/2021/01/22/ansible-series-teoria-5-v-conceitos-fundamentais/

O QUE É ZABBIX?

É um sistema open source robusto e altamente confiável que estende suas funcionalidades desde o monitoramento de componentes em infraestrutura de TI até processos/análise de indicadores críticos de desempenho para negócios, com monitoramento de dados em tempo real.

Complemento Tecnologia (https://complemento.net.br/zabbix/)

É uma ferramenta que oferece um serviço distribuído de monitoramento, possibilitando o acompanhamento e a geração de alertas e relatórios para auxiliá-lo na gestão e a fazer intervenções em sua infraestrutura de TI.

Mário Neto (https://www.devmedia.com.br/zabbix-monitoramento-de-infraestrutura-revista-infra-magazine-5/24089)

Acima estão dois conceitos, duas fontes, e duas palavras-chave a destacar (uma em cada citação)… ¹ Indicadores e ² Alertas… Simplificando ao máximo: 1) É a interpretação, ou contexto, dos resultados advindos de uma medição realizada em determinado componente de um sistema. 2) Refere-se a uma mensagem cujo objetivo é avisar que algo aconteceu (evento) fora do comportamento esperado, o que pode indicar na maioria das vezes uma possível anomalia.

Pontuados e esclarecidos tais termos, e antes de passar para a próxima seção, deixo a seguir a minha definição para o Zabbix. Não que a mesma vá de encontro, bata de frente com outros conceitos. Não. O intuito é apenas registrar com palavras próprias o meu entendimento.

Trata-se de uma solução aberta, gratuita, acessível via WEB, para monitorar toda sorte de itens, sejam eles: (a) componentes e sistemas, (b) hardware e software, (c) aplicações e serviços, (d) métricas e parâmetros, entre muitos outros. Ex: utilização da rede, carga de CPU, espaço em disco, integridade de peças e equipamentos, etc.

POR QUE MONITORAR?

Qualquer ambiente/infraestrutura/rede de uma empresa (pequena, média ou grande), atualmente apresenta uma natureza heterogênea. Servidores Linux, Estações Windows, Macbooks/iMacs, Blades HP, Roteadores Cisco… Esses são só alguns para exemplificar. Na prática, gerenciar e concatenar diversos softwares, equipamentos distintos, fornecedores com marcas diferentes, e afins, é um desafio a ser superado todos os dias pelas equipes de TI. Então, saber o que está acontecendo e ao mesmo tempo ser proativo (não reativo!), deixa de ser um mero detalhe e passa ao status de primordial. Somente assim é possível alcançar uma boa gestão, fazendo intervenções precisas (quase cirúrgicas) no datacenter e seus elementos, lógicos ou físicos. Portanto, a resposta para: por que monitorar? é a seguinte… Evitar, mitigar ou até mesmo eliminar sinistros, bugs, anomalias, sintomas adversos, enfim, todo tipo de problema (maior ou menor).

Em sua maior parte, o Zabbix desempenha e opera funções de forma visual. Opções como gráficos, mapas, tabelas de histórico, alertas interativos, notificações via email – jabber/xmpp – SMS, estão presentes e inteiramente disponíveis ao administrador, analista, ou equipe responsável.

PARA QUE?

Sem rodeios, direto ao ponto, o Zabbix serve para garantir:

  • Qualidade de links e conectividade de redes;
  • Utilização justa e igualitária de banda;
  • Saúde dos ativos de rede (roteadores , switches, access points, etc);
  • Serviços em perfeita execução;
  • Descoberta de novos servidores e dispositivos na rede.
** Lista completa **

https://www.zabbix.com/features

https://www.zabbix.com/br/solutions

(+) Bonus: Scenarios designed by Zabbix LLC

Figura 01. Coleta de métricas
Figura 02. Detecção de problemas
Figura 03. Painel único e customizável
Figura 04. Notificações
Figura 05. Facilidade nos Deploys
Figura 06. Autodescoberta

REFERÊNCIAS:

https://www.zabbix.com/

https://complemento.net.br/zabbix/

https://www.devmedia.com.br/zabbix-monitoramento-de-infraestrutura-revista-infra-magazine-5/24089

TO BE CONTINUED …

( Continua no próximo episódio … )

👀👀👀