Análise de log de servidor usando aprendizado de máquina

10

Foi-me atribuída esta tarefa para analisar os logs do servidor de nosso aplicativo, que contém logs de exceção, logs de banco de dados, etc. Sou novo no aprendizado de máquina, usamos o Spark com pesquisa elástica e o Sparks MLlib (ou PredictionIO). O resultado seria poder prever com base nos logs de exceção coletados para prever qual usuário tem mais probabilidade de causar a próxima exceção e em qual recurso (e várias outras coisas para acompanhar e melhorar a otimização do aplicativo).

Consegui ingerir com sucesso os dados do ElasticSearch no spark, criar DataFrames e mapear os dados necessários. O que eu gostaria de saber é como abordar o aspecto Machine Learning da minha implementação. Passei por artigos e documentos que falam sobre pré-processamento de dados, treinando os modelos de dados e criando etiquetas e gerando previsões.

As perguntas que tenho são

  • Como abordar a transformação dos dados de log existentes em vetores numéricos que podem ser usados ​​em conjuntos de dados a serem treinados.

  • Quais algoritmos eu uso para treinar meu conjunto de dados (com o conhecimento limitado que reuni nos últimos dois dias, eu estava pensando em implementar a regressão linear, sugerir qual seria a melhor implementação)

Apenas procurando sugestões sobre como abordar esse problema.

Obrigado.

elric
fonte
Se você tivesse capacidade preditiva de acreditar que um determinado usuário tinha uma alta probabilidade de exceção, o que você faria? O objetivo é otimizar o aplicativo. Você está tentando refinar em quais bugs os engenheiros devem gastar seu tempo, em vez de apenas corrigir bugs conhecidos no aplicativo? A engenharia de recursos pode ser muito importante para esta tarefa. Além disso, convém considerar a regressão logística que produzirá um valor 0..1 que pode ser interpretado como uma probabilidade.
5
Eu acho que você está ultrapassando os objetivos. Não trate o ML como uma caixa preta para fazer mágica. Você precisa fazer as perguntas certas (e ter dados adequados para isso) para obter qualquer resultado.
Quit - Anony-Mousse
Seu problema foi resolvido para prever qual usuário tem mais probabilidade de causar a próxima exceção e em qual recurso (e várias outras coisas para acompanhar e melhorar a otimização do aplicativo) ? Se sim, você pode compartilhar sua abordagem de solução ou qualquer outra pessoa pode compartilhar?
Ashish Tyagi

Respostas:

12

Eu não acho que você precise necessariamente converter as entradas de log individuais em vetores para usar em um algoritmo. Eu acho que o que você está interessado é em uma sequência de entradas de log, que representam uma série de eventos, ordenados no tempo, que juntos formam uma série de 'casos'. Aqui, o relacionamento entre uma série de entradas de log coletadas é importante.

Se esse for o caso, convém considerar o uso de técnicas de Mineração de Processos . Isso permite criar modelos do seu processo (o uso do seu aplicativo) e determinar padrões de etapas do processo, juntamente com erros e etapas de retrabalho.

Há um bom curso de introdução ao Coursera, aqui . Existem até alguns pacotes comerciais desenvolvidos, como o 'disco', para ajudá-lo na análise e visualização

Oliver
fonte