ResumoColete e visualize logs de erro e de consultas lentas do MySQL no ClickStack usando o receiver
filelog do OTel. Inclui um conjunto de dados de demonstração e um painel pré-configurado.Integração com um MySQL existente
Pré-requisitos
- Instância do ClickStack em execução
- Instalação existente do MySQL (versão 5.7 ou superior)
- Acesso para modificar os arquivos de configuração do MySQL
- Espaço em disco suficiente para os arquivos de log
Configure os logs do MySQL
O MySQL oferece suporte a vários tipos de log. Para um monitoramento abrangente com OpenTelemetry, recomendamos habilitar o log de erros e o log de consultas lentas.O arquivo de configuraçãomy.cnf ou my.ini normalmente fica em:- Linux (apt/yum):
/etc/mysql/my.cnfou/etc/my.cnf - macOS (Homebrew):
/usr/local/etc/my.cnfou/opt/homebrew/etc/my.cnf - Docker: a configuração geralmente é definida por meio de variáveis de ambiente ou de um arquivo de configuração montado
[mysqld]:O log de consultas lentas registra consultas que levam mais de
long_query_time segundos. Ajuste esse limite de acordo com os requisitos de desempenho da sua aplicação. Defini-lo baixo demais gerará logs em excesso.Criar configuração personalizada do OTel collector
O ClickStack permite estender a configuração básica do OpenTelemetry Collector montando um arquivo de configuração personalizado e definindo uma variável de ambiente. A configuração personalizada é mesclada à configuração básica gerenciada pelo HyperDX via OpAMP.Crie um arquivo chamadomysql-logs-monitoring.yaml com a seguinte configuração:- Lê os logs de erro do MySQL e os logs de consultas lentas de seus locais padrão
- Processa entradas de log com várias linhas (consultas lentas ocupam várias linhas)
- Analisa os dois formatos de log para extrair campos estruturados (level, error_code, query_time, rows_examined)
- Preserva os timestamps originais dos logs
- Adiciona os atributos
source: mysql-erroresource: mysql-slowpara filtragem no HyperDX - Encaminha os logs para o ClickHouse exporter por meio de um pipeline dedicado
Dois receivers são necessários porque os logs de erro do MySQL e os logs de consultas lentas têm formatos completamente diferentes. O
time_parser usa o layout gotime para lidar com o formato de timestamp ISO8601 do MySQL com deslocamentos de fuso horário.Configure o ClickStack para carregar uma configuração personalizada
Para habilitar uma configuração personalizada do collector na implantação existente do ClickStack, monte o arquivo de configuração personalizado em/etc/otelcol-contrib/custom.config.yaml e defina a variável de ambiente CUSTOM_OTELCOL_CONFIG_FILE=/etc/otelcol-contrib/custom.config.yaml.Atualize a configuração de implantação do ClickStack:Certifique-se de que o coletor do ClickStack tenha as permissões adequadas para ler os arquivos de log do MySQL. Use montagens somente leitura (
:ro) e siga o princípio do privilégio mínimo.Verificando logs no HyperDX
Depois de configurar, faça login no HyperDX e verifique se os logs estão fluindo:- Vá para a visualização Busca
- Defina a source como Logs
- Filtre por
source:mysql-errorousource:mysql-slowpara ver logs específicos do MySQL - Você deverá ver entradas de log estruturadas com campos como
level,error_code,message(para logs de erro) equery_time,rows_examined,query(para logs de consultas lentas)
Conjunto de dados de demonstração
Baixe o conjunto de dados de amostra
Baixe os arquivos de log de amostra:- Registros de erro no log (mensagens de inicialização, avisos, erros de conexão, mensagens do InnoDB)
- Consultas lentas com características de desempenho realistas
- Eventos do ciclo de vida da conexão
- Sequências de inicialização e desligamento do servidor de banco de dados
Criar a configuração do coletor de teste
Crie um arquivo chamadomysql-logs-demo.yaml com a seguinte configuração:Execute o ClickStack com a configuração de demo
Execute o ClickStack com os logs e a configuração de demo:Verifique os logs no HyperDX
Quando o ClickStack estiver em execução:- Aguarde alguns instantes para que o ClickStack seja inicializado por completo (normalmente, de 30 a 60 segundos)
- Abra o HyperDX e faça login na sua conta (talvez seja necessário criar uma conta primeiro)
- Navegue até a visualização Busca e defina a source como
Logs - Defina o intervalo de tempo como 2025-11-13 00:00:00 - 2025-11-16 00:00:00
- Você deverá ver 40 logs no total (30 logs de erro com
source:mysql-demo-error+ 10 consultas lentas comsource:mysql-demo-slow)
Se você não vir todos os 40 logs imediatamente, aguarde cerca de um minuto para o collector concluir o processamento. Se os logs ainda não aparecerem depois disso, execute
docker restart clickstack-demo e verifique novamente após mais um minuto. Este é um problema conhecido do receiver filelog do OpenTelemetry ao carregar em massa arquivos preexistentes com start_at: beginning. Implantações em produção que usam start_at: end processam os logs à medida que são gravados em tempo real e não apresentam esse problema.Exibição de fuso horárioO HyperDX exibe os timestamps no fuso horário local do seu navegador. Os dados de demonstração abrangem 2025-11-14 00:00:00 - 2025-11-15 00:00:00 (UTC). O intervalo de tempo mais amplo garante que você verá os logs de demonstração independentemente da sua localização. Assim que os logs aparecerem, você poderá restringir o intervalo para um período de 24 horas e obter visualizações mais claras.
Painéis e visualização
a configuração do painel
Importe o painel pré-configurado
- Abra o HyperDX e vá para a seção Dashboards
- Clique em Import Dashboard no canto superior direito, no menu de reticências
- Faça upload do arquivo
mysql-logs-dashboard.jsone clique em Finish Import
Visualize o painel
O painel será criado com todas as visualizações pré-configuradas.Para o conjunto de dados de demonstração, defina o intervalo de tempo como 2025-11-14 00:00:00 - 2025-11-15 00:00:00 (UTC) (ajuste conforme o seu fuso horário local). Por padrão, o painel importado não terá um intervalo de tempo definido.
Solução de problemas
Config personalizada não carrega
Logs não aparecem no HyperDX
Logs de consultas lentas não aparecem
Logs não estão sendo interpretados corretamente
Próximos passos
- Configure alertas para eventos críticos (falhas de conexão, consultas lentas que ultrapassam os limites, picos de erros)
- Crie painéis personalizados para analisar consultas lentas por padrão de consulta
- Ajuste
long_query_timecom base nos padrões observados de desempenho das consultas