Monitor MySQL com o Zabbix agent 2

Introdução

Esta página orienta você pelas etapas necessárias para iniciar o monitoramento básico de um server MySQL.

Para monitorar um server MySQL, há várias abordagens: Zabbix agent, Zabbix agent 2 ou o padrão Open Database Connectivity (ODBC). O foco principal deste guia é o monitoramento de um server MySQL com o Zabbix agent 2, que é a abordagem recomendada devido à sua configuração simples em diferentes cenários. No entanto, esta página também oferece instruções para as outras abordagens, então sinta-se à vontade para escolher a que melhor atenda aos seus requisitos.

Para quem este guia é destinado

Este guia foi elaborado para novos usuários do Zabbix e contém o conjunto mínimo de etapas necessárias para habilitar o monitoramento básico de um servidor MySQL. Se você estiver procurando opções de personalização avançadas ou precisar de uma configuração mais avançada, consulte a seção Configuration do manual do Zabbix.

Pré-requisitos

Antes de prosseguir com este guia, você precisa baixar e instalar o Zabbix server, o Zabbix frontend e o Zabbix agent 2 de acordo com as instruções para o seu sistema operacional.

Dependendo do seu ambiente, algumas etapas deste guia podem diferir ligeiramente. Este guia é baseado em um ambiente executando Ubuntu.

Criar usuário MySQL

Para monitorar um servidor MySQL, o Zabbix requer acesso a ele e aos seus processos. Sua instalação do MySQL já possui um usuário com o nível de acesso necessário (o usuário "zabbix" que foi criado durante a instalação do Zabbix), no entanto, esse usuário tem mais privilégios do que o necessário para um monitoramento simples (privilégios para DROP de bancos de dados, DELETE de entradas de tabelas, etc.). Portanto, é necessário criar um usuário MySQL com a finalidade de apenas monitorar o servidor MySQL.

1. Conecte-se ao cliente MySQL, crie um usuário "zbx_monitor" (substitua <password> do usuário "zbx_monitor" por uma senha de sua escolha), e GRANT os privilégios necessários ao usuário:

mysql -u root -p
# Enter password:

mysql> CREATE USER 'zbx_monitor'@'%' IDENTIFIED BY '<password>';
mysql> GRANT REPLICATION CLIENT,PROCESS,SHOW DATABASES,SHOW VIEW ON *.* TO 'zbx_monitor'@'%';
mysql> quit;

Depois que o usuário for criado, você pode passar para a próxima etapa.

Configurar o frontend do Zabbix

1. Faça login no frontend do Zabbix.

2. Crie um host na interface web do Zabbix:

  • No campo Host name, informe um nome de host (por exemplo, "MySQL server").
  • No campo Templates, digite ou selecione o template "MySQL by Zabbix agent 2" que será vinculado ao host.
  • No campo Host groups, digite ou selecione um grupo de hosts (por exemplo, "Databases").
  • No campo Interfaces, adicione uma interface do tipo "Agent" e especifique o endereço IP do seu servidor MySQL. Este guia usa "127.0.0.1" (localhost) para monitorar um servidor MySQL instalado na mesma máquina que o server Zabbix e o agent Zabbix 2.

  • Na aba Macros, mude para Inherited and host macros, procure as seguintes macros e clique em Change ao lado do valor da macro para atualizá-lo:
    • {$MYSQL.DSN} - defina a fonte de dados do servidor MySQL (a string de conexão de uma sessão nomeada do arquivo de configuração do plugin MySQL do Zabbix agent 2). Este guia usa a fonte de dados padrão "tcp://localhost:3306" para monitorar um servidor MySQL instalado na mesma máquina que o server Zabbix e o agent Zabbix 2.
    • {$MYSQL.PASSWORD} - defina a senha do usuário MySQL criado anteriormente "zbx_monitor".
    • {$MYSQL.USER} - defina o nome do usuário MySQL criado anteriormente "zbx_monitor".

3. Clique em Add para adicionar o host. Este host representará o seu servidor MySQL.

Ver métricas coletadas

Parabéns! Neste ponto, o Zabbix já está monitorando seu servidor MySQL.

Para ver as métricas coletadas, navegue até a seção de menu Monitoring → Hosts e clique em Dashboards ao lado do host.

Essa ação levará você ao dashboard do host (configurado no nível do template) com as métricas mais importantes coletadas do servidor MySQL.

Como alternativa, na seção de menu Monitoring → Hosts, você pode clicar em Latest data para ver todas as métricas coletadas mais recentes em uma lista. Observe que o item MySQL: Calculated value of innodb_log_file_size deve ficar sem dados, pois o valor será calculado com base nos dados da última hora.

Configurar alertas de problema

O Zabbix pode notificá-lo sobre um problema na sua infraestrutura usando vários métodos. Este guia fornece etapas básicas de configuração para o envio de alertas por e-mail.

1. Navegue até Configurações do usuário → Perfil, mude para a aba Media e adicione seu e-mail.

2. Siga o guia para Receber uma notificação de problema.

Na próxima vez em que o Zabbix detectar um problema, você deverá receber um alerta por e-mail.

Teste sua configuração

Para testar sua configuração, podemos simular um problema real atualizando a configuração do host no frontend do Zabbix.

1. Abra a configuração do host do seu servidor MySQL no Zabbix.

2. Vá para a aba Macros e selecione Inherited and host macros.

3. Clique em Change ao lado, por exemplo, do valor da macro configurado anteriormente} e defina um nome de usuário MySQL diferente.

4. Clique em Update para atualizar a configuração do host.

5. Em alguns momentos, o Zabbix detectará o problema "MySQL: Service is down", porque não conseguirá se conectar ao servidor MySQL. O problema aparecerá em Monitoring → Problems.

Se os alertas estiverem configurados, você também receberá a notificação do problema.

6. Altere o valor da macro de volta para o valor anterior para resolver o problema e continuar monitorando o servidor MySQL.

Outras abordagens para monitorar MySQL

Em vez de monitorar um servidor MySQL com o Zabbix agent 2, você também pode usar o Zabbix agent ou o padrão Open Database Connectivity (ODBC). Embora o uso do Zabbix agent 2 seja recomendado, pode haver algumas configurações que não suportam o Zabbix agent 2 ou que exigem uma abordagem personalizada.

A principal diferença entre o Zabbix agent e o ODBC está no método de coleta de dados - o Zabbix agent é instalado diretamente no servidor MySQL e coleta dados usando sua funcionalidade integrada, enquanto o ODBC depende de um driver ODBC para estabelecer uma conexão com o servidor MySQL e recuperar dados usando consultas SQL.

Embora muitas das etapas de configuração sejam semelhantes ao monitoramento de um servidor MySQL com o Zabbix agent 2, há algumas diferenças significativas - você precisa configurar o Zabbix agent ou o ODBC para poder monitorar um servidor MySQL. As instruções a seguir orientam você por essas diferenças.

Monitorar MySQL com Zabbix agent

Para monitorar um server MySQL com o Zabbix agent, você precisa baixar e instalar o Zabbix server, o Zabbix frontend e o Zabbix agent de acordo com as instruções para o seu sistema operacional.

Depois de instalar com sucesso os componentes necessários do Zabbix, você precisa criar um usuário MySQL conforme descrito na seção Criar usuário MySQL.

Após criar o usuário MySQL, você precisa configurar o Zabbix agent para que ele possa estabelecer uma conexão com o server MySQL e monitorá-lo. Isso inclui configurar vários parâmetros de usuário para executar verificações personalizadas do agent, bem como fornecer ao Zabbix agent as credenciais necessárias para se conectar ao server MySQL como o usuário "zbx_monitor" criado anteriormente.

Configurar o Zabbix agent

1. Navegue até o diretório de configurações adicionais do Zabbix agent.

cd /usr/local/etc/zabbix/zabbix_agentd.d

O diretório de configurações adicionais do Zabbix agent deve estar localizado no mesmo diretório do arquivo de configuração do seu Zabbix agent (zabbix_agentd.conf). Dependendo do seu sistema operacional e da instalação do Zabbix, esse diretório pode ter um local diferente do especificado neste guia. Para os locais padrão, verifique o parâmetro Include no arquivo de configuração do Zabbix agent.

Em vez de definir todos os parâmetros de usuário necessários para monitorar o servidor MySQL no arquivo de configuração do Zabbix agent, esses parâmetros serão definidos em um arquivo separado no diretório de configurações adicionais.

2. Crie um arquivo template_db_mysql.conf no diretório de configurações adicionais do Zabbix agent.

vi template_db_mysql.conf

3. Copie o conteúdo do arquivo template_db_mysql.conf (localizado no repositório do Zabbix) para o arquivo template_db_mysql.conf que você criou e salve.

4. Reinicie o Zabbix agent para atualizar sua configuração.

systemctl restart zabbix-agent

Depois de configurar os parâmetros de usuário do Zabbix agent, você pode prosseguir para configurar as credenciais que permitirão ao Zabbix agent acessar o servidor MySQL.

5. Navegue até o diretório inicial do Zabbix agent (se ele não existir no seu sistema, você precisará criá-lo; padrão: /var/lib/zabbix).

cd /var/lib/zabbix

6. Crie um arquivo .my.cnf no diretório inicial do Zabbix agent.

vi .my.cnf

7. Copie o seguinte conteúdo para o arquivo .my.cnf (substitua <password> pela senha do usuário "zbx_monitor").

[client]
user='zbx_monitor'
password='<password>'

Configure o frontend do Zabbix e teste sua configuração

Para configurar o frontend do Zabbix, siga as instruções na seção Configure o frontend do Zabbix com os seguintes ajustes:

  • No campo Templates, digite ou selecione o template "MySQL by Zabbix agent" que será vinculado ao host.
  • Não é necessário configurar Macros.

Depois de configurar o frontend do Zabbix, você pode ver as métricas coletadas e configurar alertas de problema.

Para testar sua configuração, siga as instruções na seção Teste sua configuração com os seguintes ajustes:

  • Na seção Inherited and host macros da configuração do host do servidor MySQL, clique em Change ao lado do valor da macro {$MYSQL.PORT} e defina uma porta diferente (por exemplo, "6033").

Monitorar MySQL com ODBC

Para monitorar um server MySQL com ODBC, você precisa baixar e instalar o Zabbix server e o Zabbix frontend.

Depois de instalar com sucesso os componentes necessários do Zabbix, você precisa criar um usuário MySQL conforme descrito na seção Criar usuário MySQL.

Depois de criar o usuário MySQL, você precisa configurar o ODBC. Isso inclui instalar uma das implementações de API ODBC de código aberto mais usadas - unixODBC - e um driver unixODBC, além de editar o arquivo de configuração do driver ODBC.

Configurar ODBC

1. Instale o unixODBC. A forma sugerida de instalar o unixODBC é usar os repositórios padrão de pacotes do sistema operacional Linux.

apt install unixodbc

2. Instale o driver de banco de dados unixODBC da MariaDB. Embora você tenha um banco de dados MySQL, o driver unixODBC da MariaDB é usado por questões de compatibilidade.

apt install odbc-mariadb

3. Verifique o local dos arquivos de configuração do ODBC odbcinst.ini e odbc.ini.

odbcinst -j

O resultado da execução deste comando deve ser semelhante ao seguinte.

unixODBC 2.3.9
DRIVERS............: /etc/odbcinst.ini
SYSTEM DATA SOURCES: /etc/odbc.ini
FILE DATA SOURCES..: /etc/ODBCDataSources
...

4. Para configurar o driver ODBC para monitorar um banco de dados MySQL, você precisa do nome do driver, que está localizado no arquivo odbcinst.ini. No exemplo de arquivo odbcinst.ini a seguir, o nome do driver é "MariaDB Unicode".

[MariaDB Unicode]
Driver=libmaodbc.so
Description=MariaDB Connector/ODBC(Unicode)
Threading=0
UsageCount=1

5. Copie o conteúdo a seguir para o arquivo odbc.ini (substitua <password> pela senha do usuário "zbx_monitor"). Este guia usa "127.0.0.1" (localhost) como o endereço do servidor MySQL para monitorar um servidor MySQL instalado na mesma máquina que o driver ODBC. Observe o nome da fonte de dados (DSN) "test", que será necessário ao configurar o frontend do Zabbix.

[test]
Driver=MariaDB Unicode
Server=127.0.0.1
User=zbx_monitor
Password=<password>
Port=3306
Database=zabbix

Configure o frontend do Zabbix e teste sua configuração

Para configurar o frontend do Zabbix, siga as instruções na seção Configure o frontend do Zabbix com os seguintes ajustes:

  • No campo Templates, digite ou selecione o template "MySQL by ODBC" que será vinculado ao host.
  • Não é necessário configurar Interfaces.
  • O valor da macro {$MYSQL.DSN} na seção Inherited and host macros da configuração do host do servidor MySQL deve ser definido como o nome DSN do arquivo odbc.ini.

Depois de configurar o frontend do Zabbix, você pode ver as métricas coletadas, configurar alertas de problema e testar sua configuração.

Veja também

  • Criando um item - como começar a monitorar métricas adicionais.
  • Escalonamentos de problema - como criar cenários de alerta em várias etapas (por exemplo, primeiro enviar uma mensagem ao administrador do sistema e, em seguida, se um problema não for resolvido em 45 minutos, enviar uma mensagem ao gerente do data center).
  • Monitoramento ODBC - como configurar o ODBC em outras distribuições Linux e como começar a monitorar métricas adicionais relacionadas a banco de dados com ODBC.
  • Template MySQL by Zabbix agent - informações adicionais sobre o template MySQL by Zabbix agent.
  • Template MySQL by Zabbix agent 2 - informações adicionais sobre o template MySQL by Zabbix agent 2.
  • Template MySQL by ODBC - informações adicionais sobre o template MySQL by ODBC.