Ответ 1
На самом деле это сложная проблема.
Представление меток
Трудно представить ваши целевые метки для обучения. Как вы указали,
If Server A1 has alarm 1 & 2 as DOWN, then we can say that service a is down on that server and is the cause of the problem.
If alarm 1 is down on all servers, then we can say that service a is the cause.
There can potentially be multiple options for the cause ...
Я думаю, вам нужно перечислить все возможные варианты, иначе мы не можем ожидать, что алгоритм ML будет обобщен. Чтобы сделать его простым, скажем, у вас есть только две возможные причины проблемы:
1. Service problem
2. Server problem
Бинарный классификатор по сайтам
Предположим, что в вашей первой модели ML это две причины. Затем вы работаете над бинарным классификатором на сайте. Вероятно, логистическая регрессия лучше начать с вас, поскольку она легко интерпретируется.
Чтобы узнать, какой сервер является проблемой или какой сервис является проблемой, это может быть ваш второй шаг. Чтобы решить второй шаг, на основе вашего примера,
- Если это проблема с сервисом, я думаю, что некоторые правила принятия решений могут быть получены вручную, чтобы можно было точно определить имя службы. Идея состоит в том, что вы должны увидеть значительное количество серверов, которые запускают один и тот же сигнал тревоги, не так ли? Также ознакомьтесь с расширенными показаниями в конце, чтобы проверить дополнительные параметры.
- Если это проблема сервера, вы можете построить второй бинарный классификатор (отдельный классификатор на стороне сервера), который запускается на каждом сервере, используя только функции, поступающие с этого сервера, и отвечает на вопрос: "Если у меня проблема".
Особенности бинарного классификатора сайта
Я предполагаю, что все эти сигналы тревоги являются лучшим источником ваших функций. Я думаю, используя некоторые сводные данные статистики, поскольку функции могут помочь больше для классификатора сайта. Например,
- процент серверов, которые получают сигнал A как DOWN
- средняя продолжительность времени для всех серверов, чей сигнал тревоги B DOWN
- на всех серверах, сигнал тревоги которых B равен DOWN, каков процент от них, которые также имеют тревогу A вниз. ...
Функции для бинарного классификатора на стороне сервера
Вы должны явно использовать все сигналы тревоги как функции для классификатора на стороне сервера. Однако во время обучения вы должны брать все данные со всех серверов. Этикетки просто "имеют проблемы" или "не имеют проблем". Данные обучения будут выглядеть так:
alarm A On, alarm B On, alarm C on, ..., alarm Z on, has-problem
YES, YES, NO, YES, YES
NO, YES, NO, NO, NO
?, NO, YES, NO, NO
Примечание. Я использовал "?" для указания некоторых возможных аварийных сигналов у вас могут отсутствовать данные (неизвестное состояние), которые можно использовать для описания ситуации ниже:
All the appropriate alarms may not be triggered at once,
due to serial service checks, so it can start with one server down and
then another server down 5 minutes later.
Некоторые дополнительные показания
Эта проблема связана с несколькими темами, например корреляция сигналов тревоги, корреляция событий, диагностика неисправностей.