Como instalar e configurar o Zabbix 5 no Debian 10 com Ansible

Veja como instalar e configurar o Zabbix 5 no Debian 10 com Ansible. Para isso você precisa de um host onde será executado a automatização. Você pode criar uma box para poder subir sua máquina virtual com o Vagrant.

Não conhece o Vagrant, de uma lida no final desse post sobre Vagrant com libvirt no Debian e veja como criar sua box, configurar e criar o Vagrantfile com uma template pronta e comentada que servirá de exemplo, altere de acordo com sua necessidade.

Caso queira uma box já pronta, acesse o Vagrant Cloud, escolha o provider e a box que melhor lhe atenda. No nosso caso vamos usar a box do sistema Debian 10 generic/debian10 para provider libvirt.

Vamos dar uma pincelada de leve sobre o que é o Zabbix e o Ansible para quem ainda não ouviu falar.

O Zabbix consiste em três componentes básicos: um servidor para coordenar, gerar solicitações de teste e coletar estatísticas, agentes para realizar verificações no lado de hosts externos, interface para organizar o gerenciamento do sistema.

O Zabbix é um software de nível corporativo ideal para o monitoramento em tempo real de milhões de métricas coletadas de dezenas de milhares de servidores, máquinas virtuais e dispositivos de rede, além de ser de código aberto é também gratuito.

O Ansible gerencia várias máquinas de uma só vez via conexões SSH. Não precisa de instalação de agentes nos hosts a gerenciar para execução do Ansible. Ele utiliza uma linguagem própria “humanamente legível” baseada em YAML e Python.

O Ansible trabalha com os conceitos de inventário (lista de máquinas que serão gerenciadas), playbooks (comandos ou passo-a passo a ser executado) e roles (modularização do código). Atualmente o Ansible pertence a Red Hat.

O Ansible nos seus casos de uso:

  • Provisionamento
  • Gerenciamento de configurações
  • Implantação de aplicativo
  • Entrega Contínua
  • Automação de Segurança
  • Orquestração.

Para saber como o Ansible trabalha em suas configurações, explore sua documentação, pois com toda certeza você vai precisar usar!

Como instalar e configurar o Zabbix 5 no Debian 10 com Ansible

Depois de uma leve comentário sobre o Vagrant, Zabbix e Ansible, vamos colocar a mão no teclado de fato e com o Ansible automatizar a instalação do Zabbix 5 no Debian 10.

1. Iniciar a VM Debian com o Vagrant

Nessa etapa, fique à vontade de como vai criar sua máquina virtual, logo, vamos utilizar o método de criação com o Vagrant utilizando a box generic/debian10 do Vagrand Cloud.

Execute o comando abaixo para adicionar (fazer o download da box escolhida) a box do Debian 10.

$ vagrant box add generic/debian10

Será mostrado uma lista para escolher qual provider quer adicionar, em nosso caso o provider é o libvirt, opção 2.

Posteriormente, vamos iniciar nossa VM de acordo com o provisionamento feito na configuração do Vagrantfile. Caso não tenha configurado, veja no final desse post Vagrant com libvirt no Debian que lá tem um template que você poderá seguir como exemplo para criar a sua configuração de acordo com suas necessidades.

Veja opções de configurações na Documentação do Vagrant.

Execute o comando vagrant no diretório onde está o arquivo Vagrantfile. Em nossa configuração, o nome do nosso hostname é zabbix-server.

$ vagrant up zabbix-server

Com a VM do Debian já carregada, execute o comando abaixo para acessar a mesma.

$ vagrant ssh zabbix-server

Pronto, já temos a VM do Debian carregada e acessível para nosso servidor Zabbix.

2. Instalar o Ansible

Agora que já temos nosso servidor de pé, vamos instalar o Ansible no host onde será feita a gerência do mesmo.

No Debian 10 Buster o Ansible está na versão 2.7.7 e no site do Ansible a versão atual é 2.9.12 (até o momento do desenvolvimento desse post), sendo assim, vamos instalar a versão atual com o pip, instalador de pacote Python. Caso não tenha o pip instalado, execute o comando a seguir.

$ sudo apt install python3-pip

Em seguida, instale o Ansible.

$ sudo pip3 install ansible

Com o Ansible instalado, vamos para etapa a seguir e criar nossa playbook.

3. Criar Playbook

Como já foi dito no início, o Ansible trabalha com inventário, playbook e roles. No nosso caso, será criado a playbook com todas as tasks (tarefas) nela, assim ficando mais fácil o entendimento nessa primeira experiência.

Dentro do diretório do projeto, crie um subdiretório chamado task e dentro dela crie o arquivo playbook com a extensão yml.

Nossa playbook terá o nome de install_zabbix_v5.yml.

$ mkdir task; cd task/; touch install_zabbix_v5.yml

Essa playbook vai nos fornece as tasks (tarefas) de procedimento de configuração e instalação do NTP, do Nginx, do MariaDB e do Zabbix no Debian 10.

A execução desta playbook terá ações no(s) host(s) alvo(s), que nesse caso é a VM Debian 10 criado e carregado com o Vagrant.

Para não ficar muito extenso o post, segue abaixo o link do projeto no GitHub para acesso aos arquivos mencionados, logo, veja uma breve descrição das tasks dentro da playbook:

  • ajustar o timezone;
  • alterar o idioma;
  • alterar o layout do teclado;
  • instalar, configurar e habilitar o NTP;
  • o MariaDB;
  • o Zabbix;
  • e o Nginx.

4. Criar Inventário e arquivo de Variável para a Playbook

Ainda falta configurar o Ansible para executar a playbook. Para isso, vamos criar o inventário setando o(s) host(s) onde será executado a playbook e o arquivo de variável onde é referenciada pela playbook.

O Ansible carrega arquivos de variáveis de hosts e grupos pesquisando caminhos relativos ao arquivo de inventário. Nesse caso, vamos criar primeiro o inventário no diretório do projeto.

$ touch hosts

Em seguida incluiremos no arquivo hosts o ip do host e a variável para o interpretador python conforme é visto logo abaixo.

[VMs]
#nome_do_host ansible_host=ip.do.host
zabbix-server ansible_host=192.168.121.115

[VMs:vars]
#variavel=valor
ansible_python_interpreter=auto

Prosseguindo, vamos criar um subdiretório chamado group_vars e dentro do mesmo criar o arquivo chamado all.yml com variáveis que usamos na playbook conforme é visto abaixo.


# Acesso ao host do Vagrant
ansible_ssh_user: vagrant
ansible_ssh_pass: vagrant

# Password para o MariaDB
mysql_root_password: root
mysql_zabbix_password: zabbix

Agora, vamos dentro do subdiretório task criar o arquivo main.yml e adicionar o dicionário a ser executado com referência ao arquivo de hosts e a playbook.


– name: “hosts”
hosts: VMs
become: true
tasks:
– include: install_zabbix_v5.yml
tags: install_zabbix_v5

Continuando, vamos criar o arquivo de configuração ansible.cfg dentro de nosso diretório do projeto e setarmos algumas configurações de acordo com nossa necessidade, como o caminho de nosso inventário, usuário remoto etc.

[defaults]

# Files/Directory settings
inventory =/home/mcnd2/Vagrant/ProjZabbix/AnsibleDebian/hosts

# Users settings
remote_user = vagrant
sudo_user = vagrant

# SSH settings
host_key_checking = False

#[privilege_scalation]
become = True
become_method = sudo

A recomendação é que você leia atentamente a documentação do Ansible para ver todas as possibilidades na configuração.

Após toda configuração feita, já tendo a conexão do Ansible com o host, execute o comando para rodar a playbook

$ ansible-playbook -i hosts task/main.yml

Concluído a execução da playbook sem falha, vamos a configuração do Zabbix na interface Web.

5. Configurar o Zabbix na interface Web

Com seu navegador aberto, digite o endereço IP do servidor Zabbix. Na primeira tela clique em “Próxima etapa”.

Na página seguinte certifique-se de que todos os requisitos, registre um “OK” verde e se tudo ocorreu bem clique em “Próxima etapa”.

Já na próxima página e visto a solicitação dos dados do banco de dados. Entre com os dados de acordo com a configuração feita na playbook. Note que o TLS pode ser configurado nesta etapa se você deseja ter criptografia no seu banco de dados. Clique em “Próxima etapa”.

Agora, insira os detalhes do seu servidor Zabbix, e clique em “Próxima etapa”. Você deve ver um resumo da instalação, basta clicar em “Próxima Etapa”.

Em seguida, basta finalizar as configurações clicando em “Concluir”.

Para fazer login, entre com o nome Admin e a senha do usuário administrador que no caso é o usuário zabbix conforme configuração da playbook.

6. Conclusão

Com o Ansible, existem várias maneiras de automatizar tarefas seja para um host ou vários de uma vez. Portanto, esse post foi uma experiência de estudo dessa poderosa ferramenta que ajuda muito a área de infraestrutura no dia a dia, seja configurações para a área de desenvolvimento, produtos, produção etc.

Sendo assim, esse projeto como já mencionado está disponível no GitHub, de fácil acesso a quem quiser, modificando de acordo com seu projeto e necessidade.

Pronto! Nesse post foi demostrado como instalar e configurar o Zabbix 5 no Debian 10 com Ansible.

Para ficar atualizado no Sempre Update siga lá no canal do Telegram ou no Twitter e fique sabendo sempre de novas postagens.

Entre em nosso grupo no Telegram e compartilhe experiências ou tire dúvidas.

Veja também:

Como usar o Vagrant com libvirt no Debian

Lançada nova versão do Zabbix 5.0

Cultura DevOps e seus paradigmas

Red Hat Ansible Automation Platform é apontado como principal solução do mercado

Share This Article
Usuário do GNU/Linux desde 2004, graduado em Sistemas de Informação, entusiasta na cultura DevOps.
Sair da versão mobile