AWS SERIES: DAY … TWO: (mapa) GLOBAL, (zona) REGION, (disponibilidade) DATACENTER, (máquina) ID, e (acesso) SSH-EC2-USER

Já ouviu aquela máxima que seres humanos gostam de palavras e máquinas preferem números? O que para nós é http://www.google.com.br para um computador na verdade é 142.251.129.67

Figura 01. ping http://www.google.com.br

Se adaptarmos para AWS, o que nós chamamos de Ohio e Virgínia do Norte, simplesmente são us-east-2 e us-east-1, respectivamente. Todos os códigos que representam cada região e zona da nuvem da Amazon estão presentes em https://docs.aws.amazon.com/pt_br/AWSEC2/latest/UserGuide/using-regions-availability-zones.html

Figura 02. zonas e regiões

O mapa completo para uma imagem geograficamente precisa, com possibilidade de interação através do mouse, está em https://aws.amazon.com/pt/about-aws/global-infrastructure/

Figura 03. infraestrutura global da AWS

Qualquer informação básica passível de consulta acerca da instância, selecione-a primeiro com apenas um clique, e depois role para baixo da tela no novo sub-painel a ser carregado. Uma aba geral chamada de Detalhes é exibida por padrão, ao lado de outras batizadas de Segurança, Redes, Armazenamento, Status, Monitoramento, Tags.

Figura 04. detalhes da instância
Figura 05. detalhes da instância
Figura 06. monitoramento em tempo real

Permanecendo na página, e deixando marcada a caixa de seleção, vamos agora entrar na EC2 similar ao que faríamos com qualquer outra máquina virtual. Para tal, localize o botão CONECTAR na parte superior da tela.

Figura 07. botão conectar

Copie e cole a seguinte linha para uso do SSH. Se estiver no Linux, o protocolo é suportado nativamente, bastando apenas abrir o terminal, colar e executar. Senão, no Windows baixe e instale o Git Bash antes do procedimento.

ssh -i "rootkiv-aws.pem" ec2-user@ec2-3-139-90-191.us-east-2.compute.amazonaws.com
Figura 08. copie e cole
Figura 09. git bash for windows

>_ BÔNUS EXTRA: Proteção contra exclusão acidental

Quando ligadas, as instâncias dentro da AWS CONSOLE se comportam como máquinas … E como bons exemplares, também é possível efetuar outras operações para além do boot. São elas: interromper, reinicializar e encerrar. Em particular, na interface web, estão denominadas como Estado da instância

Figura 10. estados da instância

Por estarem muito próximos um do outro, esses botões podem ser acionados sem querer. Exemplo, você queria hibernar a máquina quando na verdade apertou encerrar. Observe a seguir, um pouco mais de perto:

Figura 11. ações próximas

Encerrar aqui quer dizer apagar a máquina e o disco por inteiro. Sem volta ou garantia nenhuma de recuperação posterior. Por isso, ative sempre que puder o recurso que irei mostrar logo mais.

Figura 12. passo um
Figura 13. passo dois

Um pequeno teste final, simule uma exclusão acidental …

Figura 14.
Figura 15.
You Shall Not Pass by Gustavo Athayde on Dribbble
Você não irá passar!

Um feliz natal (atrasado) do blog @automatesmachines.org

ANSIBLE SERIES: h.t.wrt* … tasks, plays e books: where tasks run ???

CONT.

👈 ANTERIOR: LOOPS

Ao executar um playbook, o comportamento que se espera do Ansible é:

  1. antes, reunir todos os fatos referentes aos nodes ( gather_facts )
  2. depois, rodar as tarefas especificadas ( playbook ) somente nas máquinas-alvo que estão expressas ou de acordo com a linha “hosts” , presente no próprio main.yml, test.yml por exemplo.

Dito isso, quatro caminhos estão abertos ao admin responsável (você, eu). São eles:

  • delegar tarefas a uma máquina em particular
  • delegar tarefas a um grupo específico
  • delegar fatos a uma série de hosts ou grupos
  • executar um playbook inteiro localmente

03-a. Tasks que NÃO podem ser delegadas !!!

A execução de algumas pouquíssimas tarefas está restrita apenas ao controlador, e essas sempre serão rodadas única e exclusivamente nele, não importando o que você faça. include , add_hosts , e debug integram essa lista, não podendo de forma nenhuma serem delegadas a terceiros.

03-b. Delegando tasks . . .

Agora sim meus caros colegas 😉, tarefas que podem ser delegadas para nodes remotos. Trecho a seguir retirado da documentação oficial:

Se você deseja executar uma tarefa em um host com referência a outros hosts, use a palavra-chave delegate_to em uma tarefa. Isso é ideal para gerenciar nós em um pool com carga balanceada ou para controlar janelas de interrupção. Você pode usar a delegação com a palavra-chave serial para controlar o número de hosts em execução ao mesmo tempo

https://docs.ansible.com/ansible/latest/user_guide/playbooks_delegation.html#delegating-tasks
---
- hosts: webservers
  serial: 5

  tasks:
    - name: Take out of load balancer pool
      ansible.builtin.command: /usr/bin/take_out_of_pool {{ inventory_hostname }}
      delegate_to: 127.0.0.1

    - name: Actual steps would go here
      ansible.builtin.yum:
        name: acme-web-stack
        state: latest

    - name: Add back to load balancer pool
      ansible.builtin.command: /usr/bin/add_back_to_pool {{ inventory_hostname }}
      delegate_to: 127.0.0.1

** 127.0.0.1 : significa que será rodado na máquina corrente, ou seja, localmente naquela que executa o Ansible!

03-c. Delegando fatos . . .

Delegar tarefas do Ansible é como delegar tarefas no mundo real – seus mantimentos pertencem a você, mesmo que outra pessoa os entregue em sua casa. Da mesma forma, quaisquer fatos reunidos por uma tarefa delegada são atribuídos por padrão ao inventory_hostname (o host atual), não ao host que produziu os fatos (o delegado ao host). Para atribuir fatos coletados ao host delegado em vez do host atual, defina delegate_facts como true.

https://docs.ansible.com/ansible/latest/user_guide/playbooks_delegation.html#delegating-facts
---
- hosts: app_servers

  tasks:
    - name: Gather facts from db servers
      ansible.builtin.setup:
      delegate_to: "{{ item }}"
      delegate_facts: true
      loop: "{{ groups['dbservers'] }}"

Esta tarefa reúne fatos para as máquinas no grupo dbservers e atribui os fatos a essas máquinas, mesmo que a play seja direcionado ao grupo app_servers. Desta forma, você pode pesquisar hostvars [‘dbhost1’] [‘ansible_default_ipv4’] [‘endereço’], mesmo que dbservers não tenham feito parte da peça ou deixados de fora usando –limit.

https://docs.ansible.com/ansible/latest/user_guide/playbooks_delegation.html#delegating-facts

03-d. Playbooks locais . . .

Pode ser útil usar um playbook localmente em um host remoto, ao invés de conectar por SSH. Isso pode ser usado para garantir a configuração de um sistema, colocando um playbook em um crontab.

https://docs.ansible.com/ansible/latest/user_guide/playbooks_delegation.html#local-playbooks
ansible-playbook playbook.yml --connection=local
---
- hosts: 127.0.0.1
  connection: local

CONTINUA (…)

Próximo post >>> Conditionals

REFERÊNCIAS:

https://docs.ansible.com/ansible/latest/user_guide/playbooks_delegation.html#playbooks-delegation

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

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