O autor selecionou o Computer History Museum para receber uma doação como parte do programa Write for DOnations.
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.
Para seguir este tutorial, será necessário:
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.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.your_domain
apontando para o endereço IP público do seu servidor Zabbix.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.
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.
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