4 Monitorar o MySQL com o Zabbix agent 2

Introdução

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

Para monitorar um servidor MySQL, existem várias abordagens: agent Zabbix, agent Zabbix 2 ou o padrão Open Database Connectivity (ODBC). O foco principal deste guia é o monitoramento de um servidor MySQL com o agent Zabbix 2, que é a abordagem recomendada devido à sua configuração perfeita em várias configurações. No entanto, esta página também oferece instruções para as outras abordagens, portanto, fique à vontade para escolher a que melhor se adapta às suas necessidades.

Para quem é este guia

Este guia foi desenvolvido 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ê procura opções de personalização avançadas ou precisa de uma configuração mais detalhada, consulte a seção Configuração 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, alguns passos deste guia podem ser ligeiramente diferentes. Este guia é baseado em um ambiente rodando Ubuntu.

Criar usuário MySQL

Para monitorar um servidor MySQL, o Zabbix requer acesso a ele e 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 ao instalar o Zabbix), no entanto, esse usuário possui mais privilégios do que o necessário para uma simples monitoração (privilégios para DROP de bancos de dados, DELETE de entradas de tabelas, etc.). Portanto, um usuário MySQL com o propósito de apenas monitorar o servidor MySQL precisa ser criado.

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

mysql -u root -p
# Digite a senha:

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 2 do Zabbix.

  • 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 2 do Zabbix.
    • {$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.

Configure alertas de problemas

O Zabbix pode notificá-lo sobre um problema em sua infraestrutura usando uma variedade de 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, alterne para a guia Mídia e adicione seu e-mail.

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

Da próxima vez 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. Acesse 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 o 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 interna, 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, existem 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 o MySQL com o agent do Zabbix

Para monitorar um servidor MySQL com o agent do Zabbix, você precisa baixar e instalar o server do Zabbix, o frontend do Zabbix e o agent do Zabbix 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.

Depois de criar o usuário MySQL, você precisa configurar o agent do Zabbix para poder estabelecer uma conexão com o servidor 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 agent do Zabbix as credenciais necessárias para conectar-se ao servidor MySQL como o usuário "zbx_monitor" criado anteriormente.

Configure o agent Zabbix

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

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

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

Em vez de definir todos os parâmetros de usuário necessários para monitorar o servidor MySQL no arquivo de configuração do agent Zabbix, 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 agent Zabbix.

vi template_db_mysql.conf

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

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

systemctl restart zabbix-agent

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

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

cd /var/lib/zabbix

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

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 Zabbix frontend 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 visualizar as métricas coletadas e configurar alertas de problema.

Para testar sua configuração, siga as instruções na seção Test your configuration 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 servidor 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.

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

Configurar ODBC

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

apt install unixodbc

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

apt install odbc-mariadb

3. Verifique a localização 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 a seguir do arquivo odbcinst.ini, o nome do driver é "MariaDB Unicode".

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

5. Copie o seguinte conteúdo 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 que está 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 Macros herdadas e do host da configuração do host do servidor MySQL deve ser definido para o nome do DSN do arquivo odbc.ini.

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

Veja também

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