Pular para o conteúdo

Monitorando Amazon RDS com MySQL Enterprise Monitor – Tutorial Completo

Monitorando Amazon RDS com MySQL Enterprise Monitor

Sobre este tutorial

Para testar o procedimento abaixo, usei o MEM 3.2.1 numa Virtual Machine com Oracle Linux 7. Criei a VM usando o Vagrant e Virtual Box. Você pode utilizar o MEM em distribuições Enterprise Linux, Windows, Solaris ou OS X. A quantidade recomendável de memória é de 4GB de RAM e 20GB de disco.

Algumas observações:

  • O MEM é um software comercial que faz parte do MySQL Enterprise Edition e sua licença para uso em produção deve ser adquirida junto à Oracle. Porém, você pode utilizá-lo em ambiente não-produtivo por 30 dias;
  • Se preferir, você pode facilmente instalar o MEM com uma única linha de comando (unattended mode), muito útil para automatização. Veja aqui um exemplo de instalação do Service Manager via shellscript.

Introdução

A Amazon hoje é o principal fornecedor de cloud pública do mercado. Entre seus diversos serviços está o famoso Amazon RDS (Relational Database Service), que facilita as tarefas de configurar, operar e escalar um banco de dados relacional na nuvem, ou seja, trata-se de um DBaaS ou Database as a Service. O primeiro banco de dados disponibilizado pela Amazon no RDS foi o MySQL, apesar de hoje contar com outras opções.

O MySQL Enterprise Monitor (MEM) é uma ferramenta de administração avançada do MySQL Server, permitindo, além do monitoramento e manutenção do histórico de status dos servidores, notificações de potenciais problemas, dicas sobre como corrigí-los, análise de queries, etc. O MEM permite monitorar instâncias do MySQL localmente ou remotamente, como por exemplo num serviço de nuvem como o RDS. Por ser criado e mantido pelo time de engenharia MySQL da Oracle, o MEM é uma das opções mais avançadas de monitoramento disponíveis para MySQL.

Confira uma breve demonstração do MEM monitorando Amazon RDS aqui.

Adicionando uma instância MySQL RDS no MEM

1) No RDS Dashboard, anote qual seu Endpoint; no meu caso, ficou algo como mysql-rds-test1.xxxxxxxxxxxx.us-west-2.rds.amazonaws.com;

2) No RDS, certifique-se de permitir que o host do MEM possa acessar a instância; no meu caso, modifiquei o Security Group para aceitar tráfego inbound/outbound do meu IP (CIDR/IP);

3) Na linha de comando da máquina do MEM, verifique se consegue conectar-se na instância RDS com:

$ /opt/mysql/enterprise/monitor/mysql/bin/mysql -uroot -p -h<seu_endpoint> -P3306

4) Aproveite a conexão do passo anterior e crie um database para o MEM na sua instância RDS:
mysql> CREATE DATABASE mem;

5) [opcional] Como boa prática, crie um usuário específico de monitoramento na instância RDS. Aproveite a conexão do passo anterior e faça:

mysql> CREATE USER 'memadmin'@'%' IDENTIFIED BY '<senha_memadmin>';
mysql> GRANT ALL PRIVILEGES ON `%`.* TO 'memadmin'@'%';

6) No MEM, menu Dashboards > Add MySQL Instance, crie a conexão remota com sua instância RDS.

Importante: Para ‘Auto-Create Less Privileged Users’ selecione ‘No’ e na aba ‘Advanced Settings’, campo ‘Inventory Table Schema’ digite ‘mem’ (ou database criado no passo 4).

Amazon RDS com MySQL Enterprise Monitor
image 41

1) Se tudo ocorreu bem, você já deve ver a nova instância RDS adicionada no Dashboard.

image 42

Query Analyzer e Reports avançados

Para explorar capacidades de monitoramento mais avançadas no MEM, é necessário que o Sys Schema instalado e Performance Schema esteja habilitado. A partir do MySQL 5.6 esse recurso já é habilitado por padrão, porém este não é o caso se você estiver usando configurações padrão da Amazon. Faça o seguinte:

  1. No RDS Dashboard, crie um Parameter Group e edite o parâmetro performance_schema = 1;
  2. No RDS, modifique a instância selecionando em Database Options o novo DB Parameter Group.
  3. No RDS, faça um Reboot da instância para aplicar a nova configuração.
  4. Na linha de comando da máquina do MEM, verifique se o Performance Schema foi habilitado:

$ /opt/mysql/enterprise/monitor/mysql/bin/mysql -uroot -p -h<seu_endpoint> -P3306
mysql> SHOW VARIABLES LIKE 'performance_schema';
+--------------------+-------+
| Variable_name      | Value |
+--------------------+-------+
| performance_schema | ON    |
+--------------------+-------+

5) Habilite a coleta de métricas das Queries:

mysql> UPDATE performance_schema.setup_consumers SET enabled = 'YES' WHERE name = 'statements_digest';
...
mysql> SELECT * FROM performance_schema.setup_consumers WHERE name = 'statements_digest';
+-------------------+---------+
| NAME              | ENABLED |
+-------------------+---------+
| statements_digest | YES     |
+-------------------+---------+

6) Certifique-se de que o ‘sys’ schema está presente:

mysql> SHOW DATABASES;
+--------------------+
| Database           |
+--------------------+
| ...                |
| performance_schema |
| sys                |
+--------------------+

Caso necessário, instale o sys schema disponível em https://github.com/mysql/mysql-sys.

7) No MEM, verifique se o menu Query Analyzer está funcional.

image 45

8) Verifique também em Reports & Graphs se Processes e File I/O estão funcionais

image 43
image 44

Conclusão

O MySQL Enterprise Monitor pode ser utilizado para monitoramento avançado de uma instância MySQL no serviço Amazon RDS. Estamos limitados ao monitoramento remoto, porém ainda é possível utilizar esta ferramenta para melhor compreensão de eventuais gargalos e notificações pró-ativas de problemas com as instâncias MySQL na nuvem.

Referências

Airton Lastori

Airton Lastori

Airton Lastori é consultor MySQL da Oracle Brasil. Possui formação em Ciência da Computação pela Universidade Federal de Itajubá e especialização em Engenharia de Software baseada em SOA pelo IBTA. Há mais de 10 anos está envolvido com diversas tecnologias Open Source relacionadas principalmente ao universo Web.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

plugins premium WordPress