Это вопрос типа повторяющийся, но самый близкий, который я смог найти спросили 7 лет назад, это было совсем другое время.
Я веду малый бизнес, и у нас есть несколько веб-сайтов для малых и средних клиентов (ничего, что никогда не требовало большего, чем несколько капель 1G Digital Ocean). Текущее решение (специальные сценарии и электронные письма) начинает показывать свои пределы, особенно с учетом текущего быстрого роста бизнеса.
Бизнес-проблема
Таким образом, мне нужно создать новое решение. Может быть, не все сразу, но я, конечно, не хочу все делать заново. Требования, которые я мог придумать:
- Просто. Просто. Просто. У меня нет персонала, у меня нет времени, я плохо перевариваю чушь. Я готов выделить необходимые ресурсы, но не более того.
- Нет SaaS. В последние годы я много использовал SaaS, и все они в конечном итоге дорожают, прекращают обслуживание или покупаются, а затем полностью исчезают. SaaS - это риск, на который я больше не хочу идти.
- В конечном итоге меня волнуют только простые вещи:
- Мой сайт отвечает без ошибок и достаточно быстро?
- Мой сайт перегружается?
- Заполняется ли какой-либо из моих дисков?
- Существует автоматизированная система развертывания, основанная на Ansible, она должна быть в состоянии позаботиться о настройке мониторинга / предупреждений для каждого сайта.
- Я хочу, чтобы ответственное лицо просыпалось в 4 утра всеми возможными способами, если и только если это полезно
- Все инциденты / проблемы должны где-то отслеживаться и легко перемещаться (что-то вроде досок JIRA).
- Все данные должны где-то храниться, чтобы я мог их проверить позже, включая журналы HTTP, в которых я хочу иметь возможность создавать статистику, например, поиск медленных или подверженных ошибкам страниц.
- У меня десятки (Debian) серверов, и мне нужно централизовать всю информацию о них
Исследования, которые я провел
Чтобы сделать это, я начал копаться в Интернете и нашел в основном миллион вещей, которые вы можете подключать друг к другу по кругу, если хотите.
- Стек ELK (и «Удары»). Идеально подходит для сбора и хранения журналов / показателей. Вы можете иметь красивые информационные панели и просматривать свои данные, но это все, что вы можете сделать.
- X-Pack. Кажется, это идеальный вариант для ELK, но похоже, что он идет с толстым сахарным слоем вокруг красивого торта. Плюс модель «подписки», при которой цена не объявляется, вероятно, означает, что она завышена.
- Shinken/Nagios/Zabbix являются исходными претендентами, но они скучны и сложны, и для работы с ELK потребуется специальный код и повязка.
- Риман выглядит как отличная среда для запуска предупреждений, но не для управления ими впоследствии. Плюс надо все самому писать. И я не уверен, куда его подключить (я бы не хотел, чтобы несколько датчиков измеряли одно и то же). Наверное, слишком сложно для меня.
- ElastAlert может быть хорошей идеей, но, похоже, не дает реального способа управления предупреждениями
- боцман похоже, что он немного более зрелый и полный, чем ElastAlert, но с теми же недостатками и, возможно, более сложной конфигурацией
- открытый кольца интересные, но, видимо, слишком незрелые, чтобы считаться жизнеспособными
- кабот дает хорошие обещания, делается и используется компанией, которая выделяет людей для написания документации, поэтому он, вероятно, не умрет (хотя и немного тусклый)
- И, конечно, есть Прометей, Graphana, Graylog, Свободно и, вероятно, бесчисленное множество других.
Шаги, предпринятые для ее решения
Мое текущее понимание ситуации таково, что мне нужно 2 инструмента (ну, стеки):
- Тот, который собирает, хранит и разрешает запросы к журналам и метрикам. Это то, что даст мне бизнес-статистику, посмертный анализ, отладочные данные и так далее. Кажется, что идеальный бегун для этого - ELK.
- Тот, который постоянно анализирует данные, чтобы находить неисправности и запускать предупреждения. Теперь это гораздо менее ясно. Я бы пошел на Кэбот который кажется простым и расширяемым.
Актуальный вопрос
Имеют ли смысл мои требования? Если да, то вправе ли я искать эти два инструмента (один для хранения / доступа к журналам и один для управления предупреждениями)? Если да, могу ли я выбрать эту задачу или вы порекомендуете что-нибудь еще?
Не вопрос
Я не спрашиваю на пустом месте, какое решение является лучшим для мониторинга, я просто излагаю свою проблему и свое решение и хочу получить подтверждение или указать, где он не работает.
Спасибо всем!
Вы слишком усложняете это, и описанные выше варианты противоречат вашему стремлению к простоте.
Использовать NewRelic и Монит.
NewRelic для общего мониторинга облака, статистики и истории. Это свободно для серверов.
Использовать Монит для проблем на уровне приложений и серверов. Обработка предупреждений посредством эскалации или с помощью адресов электронной почты на SMS.
Использовать М / Монит если вам нужна централизованная отчетность по нескольким хостам, управляемым Monit.
Если вам нужна глубокая аналитика на уровне хоста, изучите NetData.