O autor selecionou o Computer History Museum para receber uma doação como parte do programa Write for DOnations.

Introdução

Zabbix é um software de monitoramento de código aberto para redes e aplicativos. Ele oferece monitoramento em tempo real de milhares de métricas coletadas a partir de servidores, máquinas virtuais, dispositivos de rede e aplicativos Web. Essas métricas podem ajudar você a determinar a integridade atual da sua infraestrutura de TI e a detectar problemas com componentes de hardware ou software antes que os clientes se queixem. As informações úteis são armazenadas em um banco de dados para que você possa analisar os dados ao longo do tempo e melhorar a qualidade dos serviços prestados ou planejar atualizações para o seu equipamento.

O Zabbix utiliza diversas opções para coletar métricas, incluindo o monitoramento sem agente de serviços de usuário e arquitetura cliente-servidor. Para coletar métricas do servidor, ele usa um pequeno agente no cliente monitorado para coletar dados e enviá-los para o servidor do Zabbix. O Zabbix suporta comunicação criptografada entre o servidor e os clientes conectados, para que seus dados estejam protegidos enquanto viajam por redes inseguras.

O servidor do Zabbix armazena seus dados em um banco de dados relacional alimentado pelo MySQL ou PostgreSQL. Você também pode armazenar dados históricos em bancos de dados NoSQL como o Elasticsearch e o TimescaleDB. O Zabbix fornece uma interface Web para que você possa visualizar dados e configurar as definições do sistema.

Neste tutorial, você irá configurar o Zabbix em duas máquinas Ubuntu 20.04. Uma será configurada como o servidor do Zabbix e a outra como um cliente que você irá monitorar. O servidor do Zabbix irá usar um banco de dados MySQL para gravar os dados de monitoramento e usar o Nginx para atender à interface Web.

Pré-requisitos

Para seguir este tutorial, será necessário:

  • Dois servidores Ubuntu 20.04 configurados seguindo o Guia de configuração inicial de servidor para o Ubuntu 20.04, incluindo um usuário não root com privilégios sudo e um firewall configurado com o ufw. Em um dos servidores, você irá instalar o Zabbix; este tutorial irá se referir a ele como o servidor Zabbix. Ele irá monitorar seu segundo servidor; este segundo servidor será referido como o segundo servidor Ubuntu.
  • O servidor que irá executar o servidor Zabbix precisa do Nginx, MySQL e PHP instalados. Siga os Passos 1-3 do nosso guia sobre a Pilha LEMP no Ubuntu 20.04 para configurá-los em seu servidor Zabbix.
  • Um nome de domínio registrado. Este tutorial utilizará your_domain durante todo o processo. Você pode comprar um nome de domínio do Namecheap, obter um gratuitamente com o Freenom ou usar o registrador de domínios de sua escolha.
  • Ambos os registros de DNS a seguir serão configurados para o seu servidor Zabbix. Se você estiver usando a DigitalOcean, consulte nossa documentação de DNS para maiores detalhes sobre como adicioná-los.
  • Um registro A com your_domain apontando para o endereço IP público do seu servidor Zabbix.
  • Um registro A com o www.``your_domain apontando para o endereço de IP público do seu servidor Zabbix.

Além disso, o servidor Zabbix é usado para acessar informações valiosas sobre sua infraestrutura. Dessa forma, para garantir que usuários não autorizados tenham acesso a ele, é importante que você mantenha seu servidor seguro instalando um certificado TLS/SSL. Isso é opcional, mas altamente recomendado. Se você quiser proteger seu servidor, siga o guia do Let’s Encrypt no Ubuntu 20.04 depois do Passo 3 deste tutorial.

Passo 1 — Instalando o servidor Zabbix

Primeiro, você precisa instalar o Zabbix no servidor onde instalou o MySQL, o Nginx e o PHP. Faça login nesta máquina com seu usuário não root:

ssh sammy@zabbix_server_ip_address

O Zabbix está disponível no gerenciador de pacotes do Ubuntu, mas está desatualizado. Sendo assim, use o repositório oficial do Zabbix para instalar a versão estável mais recente. Baixe e instale o pacote de configuração do repositório:

wget https://repo.zabbix.com/zabbix/5.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_5.0-1+focal_all.deb
sudo dpkg -i zabbix-release_5.0-1+focal_all.deb

Você verá o seguinte resultado:

Output

Selecting previously unselected package zabbix-release.
(Reading database ... 64058 files and directories currently installed.)
Preparing to unpack zabbix-release_5.0-1+focal_all.deb ...
Unpacking zabbix-release (1:5.0-1+focal) ...
Setting up zabbix-release (1:5.0-1+focal) ...

Atualize o índice de pacotes para que o novo repositório seja incluído:

sudo apt update

Em seguida, instale o servidor Zabbix e o front-end Web com suporte ao banco de dados MySQL:

sudo apt install zabbix-server-mysql zabbix-frontend-php

Além disso, instale o agente Zabbix, que lhe permitirá coletar dados sobre o status do próprio servidor Zabbix.

sudo apt install zabbix-agent

Antes de poder utilizar o Zabbix, você precisa configurar um banco de dados para conter os dados que o servidor Zabbix irá coletar de seus agentes. Você pode fazer isso no próximo passo.

Passo 2 — Configurando o banco de dados MySQL para o Zabbix

Você precisa criar um novo banco de dados MySQL e preenchê-lo com algumas informações básicas para torná-lo adequado para o Zabbix. Você também criará um usuário específico para este banco de dados para que o Zabbix não faça login no MySQL com a conta root.

Faça login no MySQL com o usuário root:

sudo mysql

Crie o banco de dados Zabbix com suporte a caracteres UTF-8:

create database zabbix character set utf8 collate utf8_bin;

Em seguida, crie o usuário que o servidor Zabbix irá usar,dê-lhe acesso ao novo banco de dados e defina a senha para o usuário:

create user zabbix@localhost identified by 'your_zabbix_mysql_password';
grant all privileges on zabbix.* to zabbix@localhost;

Isso ajeita a situação do usuário e do banco de dados. Saia do console do banco de dados

quit;

Em seguida, será necessário importar o esquema inicial e os dados. A instalação do Zabbix forneceu-lhe um arquivo que configura isso.

Execute o comando a seguir para configurar o esquema e importar os dados no banco de dados zabbix. Use o zcat, já que os dados no arquivo estão comprimidos:

zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix

Digite a senha para o usuário zabbix do MySQL que você configurou quando solicitado.

Este comando pode demorar um ou dois minutos para ser executado. Se aparecer o erro ERROR 1045 (28000): Access need for userzabbix@'localhost' (using password: YES), então certifique-se de que você usou a senha certa para o usuário zabbix.

Para que o servidor Zabbix use este banco de dados, é preciso definir a senha do banco de dados no arquivo de configuração do servidor Zabbix. Abra o arquivo de configuração no seu editor de texto preferido. Este tutorial usará o nano.

sudo nano /etc/zabbix/zabbix_server.conf

Procure pela seguinte parte do arquivo:

/etc/zabbix/zabbix_server.conf

...
#### Option: DBPassword                           
##       Database password. Ignored for SQLite.   
##       Comment this line if no password is used.
##                                                
## Mandatory: no                                  
## Default:                                       
## DBPassword=
...

Esses comentários no arquivo explicam como se conectar ao banco de dados. Você precisa definir o valor do DBPassword no arquivo como sendo a senha para o usuário do seu banco de dados. Adicione esta linha após esses comentários para configurar o banco de dados:

/etc/zabbix/zabbix_server.conf

...
DBPassword=your_zabbix_mysql_password
...

Salve e feche o zabbix_server.conf pressionando CTRL+X, seguido de Y e, em seguida, ENTER se estiver usando o nano.

Agora, você configurou o servidor Zabbix para se conectar ao banco de dados. Em seguida, você irá configurar o servidor Web do Nginx para atender o front-end do Zabbix.

#ubuntu

Como instalar e configurar o Zabbix para monitorar servidores remotos com no Ubuntu 20.04
4.15 GEEK