sábado, 24 de abril de 2021

Monitoração com Zabbix - Instalação no Debian

Fala pessoal, tudo bem?
Espero que estejam todos bem!

Hoje vamos falar de monitoração, mais precisamente de monitoração com a ferramenta Zabbix.

Mas o que é o Zabbix?    
    - É uma ferramenta de monitoração de código aberto utilizada para monitoração de recursos de infraestrutura como Redes, Computação, Serviços e experiência de usuário.

Além disso é possível criar regras de relacionamento para análise de causa raiz para problemas que ocorram.

Sem contar a possibilidade de monitorar recursos por agente, sem agente, SNMP, IPMI e JMX. É realmente uma grande quantidade de opções.

Bem, vamos lá, para parte prática!

Nosso cenário será o seguinte:

  • Virtualização com VirtualBox;
  • Uma máquina virtual com Debian para ser nosso Zabbix Server
    • 1 vCPU
    • 2 GB Memory
    • 12 GB de Disco
    • Rede como Bridge Adapter
  • Uma máquina virtual com Debian para ser nosso cliente de monitoração
  • Uma máquina virtual com CentOS 7 para ser nosso cliente de monitoraçao
OBS.: Na parte dos clientes de monitoração, tanto faz o size da máquina que será criada, OK? O importante é estarem também como Bridge Adapter ou na mesma configuração de rede da máquina Zabbix Server para não termos problemas de comunicação.

1 - Instalando o Zabbix Server

O download pode ser feito pelo site ofical do Projeto Zabbix.

Os passos que devemos executar no server são:

a. Instalação do repositório
# wget https://repo.zabbix.com/zabbix/5.2/debian/pool/main/z/zabbix-release/zabbix-release_5.2-1+debian10_all.deb
# dpkg -i zabbix-release_5.2-1+debian10_all.deb
# apt-get update

b. Instalação do Zabbix Server, agent e frontend
# apt-get install zabbix-server-mysql zabbix-frontend-php zabbix-apache-conf zabbix-agent

2 - Instalação e configuração do MariaDB/MySQL
# apt-get install mariadb-common mariadb-server mariadb-client

a. Iniciando o serviço do MariaDB e criando o serviço para start automático
# systemctl start mariadb ; systemctl enable mariadb

b. Reset da senha de root do banco. Para isso precisamos subir o banco em modo de segurança
# mysql_secure_installation
Enter current password for root (enter for none): Pressione Enter
Set root password? [Y/n]: Y
New password: <Enter root DB password>
Re-enter new password: <Repeat root DB password>
Remove anonymous users? [Y/n]: Y
Disallow root login remotely? [Y/n]: Y
Remove test database and access to it? [Y/n]:  Y
Reload privilege tables now? [Y/n]:  Y

c. Vamos agora criar o database e dar permissão para permitir conexão com a mesma, além disso vamos já aproveitar e fazer o import do schema e data e habilitar o strict mode. Lembrando que o import do schema pode levar alguns minutos
- Criando o database -
# mysql -uroot -p'Senha-do-Banco-de-Dados' -e "create database zabbix character set utf8 collate utf8_bin;"

- Permitindo conexão -
# mysql -uroot -p'Senha-do-Banco-de-Dados' -e "grant all privileges on zabbix.* to zabbix@localhost identified by 'Senha-do-usuario-zabbix';"

- Importando o schema e data-
# mysql -uroot -p'Senha-do-Banco-de-Dados' zabbix -e "set global innodb_strict_mode='OFF';"
# zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p'Senha-do-usuario-zabbix' zabbix

- Habilitando o strict mode -
# mysql -uroot -p'Senha-do-Banco-de-Dados' zabbix -e "set global innodb_strict_mode='ON';"

d. Agora precisamos inserir a senha do usuário zabbix utilizado para conexão com o banco de dados no arquivo de configuração /etc/zabbix/zabbix_server.conf
Utilize um editor de texto de sua preferência e insira na respectiva linha a seguinte entrada (normalmente o arquivo já tem essa linha, é só descomentar e inserir a senha)

DBPassword=Senha-do-usuario-zabbix
Salve o arquivo e pode sair do editor de texto.

Uma ponto importante é se você utiliza firewall local. Caso a resposta seja sim, você deve liberar as respectivas portas:
  • 10050/tcp
  • 10051/tcp
  • 80/tcp

Até mesmo no ambiente produção (fora este lab que estamos fazendo) é bom já deixar anotado para solicitar ou fazer as liberações no firewall.

3 - Agora vamos fazer o start e enable do serviço Zabbix Server e Agent Processes

# systemctl restart zabbix-server zabbix-agent ; systemctl enable zabbix-server zabbix-agent

4 - Configuração do Zabbix frontend (interface gráfica)

a. Vamos editar o arquivo /etc/zabbix/apache.conf e novamente, para isso escolha um editor de texto de sua preferência.
Ao abrir o arquivo, descomente a linha php_value date.timezone Europe/Amsterdam e troque o timezone para o qual você utiliza (normalmente, no nosso caso é America/Sao_Paulo).
php_value date.timezone America/Sao_Paulo

b. Restart e habilitar o serviço do Apache
# systemctl restart apache2 ; systemctl enable apache2

Agora para concluir essa primeira parte, vamos acessar a interface web do Zabbix para finalizar a configuração incial.

Para isso, acesse http://ip-do-zabbix-server/zabbix e siga os passo-a-passo das seguintes telas:





Terá um passo também, o qual não tirei print, onde será possível definir o tema do Zabbix =)

Ao finalizar a configuração, você será redirecionado para tela de login (usuário Admin e senha default zabbix).

E pronto, você deve ter acesso a uma console semelhante à essa:


Prontinho!
Primeira parte finalizada com sucesso se você conseguiu chegar até aqui =)

Na parte II iremos adicionar alguns hosts para iniciarmos nossa monitoração básica.

Espero que tenham gostado e que seja útil para o dia-a-dia de vocês.

Até a próxima...
:wq!