Мониторинг

Мониторинг web сайта в Zabbix

Мониторинг

Продолжаю свой цикл статей по настройке системы мониторинга на базе популярного бесплатного продукта. В этот раз мы подробно рассмотрим вопрос настройки мониторинга web сайта в подготовленном ранее zabbix сервере. В качестве примера возьмем какой-нибудь сторонний ресурс и проверим на нем предложенный стандартный функционал.

Если у вас есть желание научиться строить и поддерживать высокодоступные и надежные системы, рекомендую познакомиться с онлайн-курсом «Администратор Linux» в OTUS. Курс не для новичков, для поступления нужно пройти .

Введение

Для мониторинга веб сайта мы будем использовать стандартный функционал zabbix. Вот параметры, за которыми будем наблюдать:

  • доступность сайта
  • время ответа сайта в миллисекундах
  • скорость доступа к сайту
  • работа авторизации на сайте

Для этого мы выполним следующую последовательность действий:

  1. Создадим шаблон для мониторинга за сайтами.
  2. Настроим сценарии проверки.
  3. Создадим графики с данными.
  4. Добавим триггеры на проверку доступности и скорости загрузки сайта.

Приступаем к настройке мониторинга. Использовать будем только стандартный функционал, доступный после установки. Никаких дополнительных пользовательских параметров или работы скриптов не будет.

Если у вас еще нет своего сервера для мониторинга, то рекомендую материалы на эту тему. Для тех, кто предпочитает систему CentOS:

  1. Установка CentOS 7.
  2. Настройка CentOS 7.
  3. Установка и настройка zabbix сервера.

То же самое на Debian 10, если предпочитаете его:

Добавление web сайта к мониторингу

Самый простой способ подключить сайт к мониторингу — добавить его проверку на уже существующем хосте.

В этом подходе есть один большой минус — если вы захотите включить этот мониторинг от другого хоста, или просто перенести на другой сервер, то делать это будет неудобно.

Гораздо удобнее мониторинг сайтов и все, что с ним связано, настраивать в отдельном шаблоне. Так что идем в раздел Configuration -> Templates и создаем новый шаблон.

Открывается стандартная форма создания шаблона. Вводим название шаблона, где будут настройки мониторинга сайтов, и добавляем его в какую-нибудь группу.

Открываем этот шаблон. Переходим на вкладку Web Scenarios и добавляем новый сценарий для мониторинга сайта.

Заполняем основные параметры сценария. В качестве названия я обычно указываю адрес сайта. В моем примере это будет github.com. Тут же указываю название приложения для мониторинга сайтов для удобной сортировки итемов, относящихся к сайтам, интервал проверки и число попыток соединения.

После этого перехожу на вкладку Steps и добавляю шаг проверки.

Дальше указываю параметры шага.

Поясню каждый параметр:

  • Name — имя шага. В данном случае проверяться будет главная страница сайта, поэтому называю шаг index. Это не принципиально, но названия рекомендую давать осмысленные, чтобы потом было удобно оперировать названиями, к примеру, в триггерах.
  • URL — адрес проверяемой страницы.
  • Required string — строка на странице, которую будет искать zabbix. Я взял строку из футера сайта. Если заббикс ее найдет на странице, будет считать, что с сайтом все в порядке. Если нет — выдаст ошибку.
  • Required status codes — требуемый код ответа. Указываю 200. Если заббикс получит какой-то другой код в ответ от web сервера, будет считать, что проверка закончилась неудачей.

После заполнения всех параметров жмем Add, чтобы добавить шаг и далее еще раз Add, чтобы добавить сам сценарий проверки. Должна получиться вот такая картина.

Простейшая проверка доступности сайта сделана. Дальше нам надо прикрепить этот шаблон к какому-нибудь хосту, чтобы начались реальные проверки. Я прикреплю шаблон к самому zabbix серверу. Для этого идем в Configuration -> Hosts, выбираем Zabbix Server и прикрепляем к нему созданный ранее шаблон.

Ждем несколько минут и идем в раздел Monitoring -> Web смотреть результаты мониторинга сайта github.com.

Код ответа 200, искомая строка найдена, что подтверждает Status OK. Тут же графики скорости загрузки сайта и время отклика. Более подробную информацию о мониторинге указанного сайта можно посмотреть в Latest Data.

Значение параметра Failed step of scenario «github.com» равное 0 означает, что все шаги проверки сайта выполнены без ошибок.

Если у вас несколько шагов и какой-то из них завешается ошибкой, тут будет номер этого шага. То есть в общем случае, все, что не 0, это какие-то проблемы. Позже мы это будем использовать в триггере.

А пока добавим пару графиков к шаблону, которые потом можно будет использовать в дашбордах.

Настройка графиков мониторинга веб сайта

Возвращаемся в наш шаблон и переходим в раздел Graphs. Создаем новый график.

Добавим график скорости загрузки главной страницы сайта.

По аналогии можете добавить график времени отклика сайта. Я разу добавил оба эти графика в Screen. Получилось вот так.

Для более красивых визуализаций лучше использовать Дашборды. Теперь настроим мониторинг сайта с авторизацией.

Мониторинг сайта с авторизацией

Немного усложним задачу. Давайте попробует выполнить авторизацию на сайте и провести мониторинг как самой авторизации, так и закрытой страницы за ней. Я для примера возьму форум centos.org/forums/, авторизуюсь на нем и после авторизации проверю страницу с персональной информацией конкретного пользователя.

Для того, чтобы настроить в zabbix мониторинг сайта с авторизацией, надо правильно сформировать post запрос для этой самой авторизации. Я это делаю следующим образом. Иду на страницу с авторизацией. В данном случае это https://www.centos.

org/forums/ucp.php?mode=login, открываю DevTools в Сhrome, вкладку Network. Заполняю поля формы авторизации заведомо неправильными данными, чтобы авторизация завершилась ошибкой. После этой ошибки смотрю заголовки самого первого запроса.

Я нажимаю на view source в разделе Form Data и копирую получившуюся строку. В моем случае она была такая:
username=VladimirZp&password=pass123&redirect=.%2Fucp.php%3Fmode%3Dlogin&sid=70389f827540ef7a17acb4e3bbad12&redirect=index.php&login=Login

Отсюда точно можно убрать параметр redirect. В итоге сохраняю вот такую строку:

username=VladimirZp&password=pass123&sid=70389f827540ef7a17acb4e3bbad12&redirect=index.php&login=Login

Теперь иду в шаблон для мониторинга сайтов и добавляю новый сайт — centos.org. Создаю первый шаг с авторизацией, называю его auth. В нем же указываю post запрос для авторизации.

Не забудьте поменять пароль на правильный. После успешной авторизации вы увидите главную страницу форума, где будет ссылка на приватные сообщения форума. Эта ссылка доступна только после авторизации.

Следующим шагом делаем проверку строки Private messages на главной странице форума.

Шаги выполняются последовательно. На первом шаге мы только авторизовываемся, на втором проверяем страницу, доступную уже после авторизации. Идем в Latest Data и смотрим результат.

Оба шага успешно завершены, ошибок нет. Посмотрим раздел Monitoring -> Web.

Здесь тоже все в порядке. Наглядно видно, что процесс авторизации гораздо дольше и медленнее, чем загрузка главной страницы.

Оповещение о недоступности сайта

Давайте настроим уведомления о проблемах на сайте. Я предлагаю 2 типа оповещения:

  1. О низкой скорости доступа к сайту.
  2. О недоступности сайта вообще.

Идем, как обычно в исходный шаблон, на вкладку Triggers и добавляем новый.

Я предлагаю вот такое условие срабатывания для определения недоступности сайта. Если среднее значение 3-х последних проверок больше, либо равно единице, то срабатывает оповещение о недоступности сайта.

Когда идет 0 во всех проверках, все в порядке. Триггер сработает только если все 3 последних проверки не равны нулю. В моем примере Failed step может принимать значение либо 0, либо 1, где 1 это номер сбойного шага.

Если у вас шагов несколько, то сбойным может оказаться второй шаг или третий шаг. То есть значение может быть больше 1. Но в любом случае, если последние 3 значения подряд строго не 0, то идет срабатывание триггера. Операция восстановления очень простая.

Если последняя проверка без ошибки, то есть код равен 0, то считаем, что сайт уже работает.

Чтобы проверить работу триггера, достаточно на zabbix server в файл /etc/hosts добавить строку:

127.0.0.1 github.com

и подождать 3 минуты, чтобы получились 3 неудачных проверки. После этого вам должно было отправиться уведомление о недоступности сайта. Я получил вот такое:

Дальше делаем проверку времени ответа сервера. Тут каждый волен настраивать так, как ему кажется более правильным и удобным. Я использую такую схему. Беру среднее время отклика сайта и умножаю его на 3. Далее смотрю последние 7 проверок.

Если в 5 проверках среди этих семи были значения выше, чем утроенное среднее время отклика, то считаю, что сайт тормозит и надо слать уведомление. Немного замороченно, но на практике такая схема у меня себя хорошо зарекомендовала без ложных срабатываний.

При этом, если возникают реальные проблемы, я их вижу. Рисуем триггер.

Условие восстановления — в последних трех запросах два и более были быстрее, чем утроенное среднее время доступа. Текст выражений для копирования:

{Sites Monitoring:web.test.time[github.com,index,resp].count(#7,1.5,»ge»)}>4{Sites Monitoring:web.test.time[github.com,index,resp].count(#3,1.5,»lt»)}>1

В выражении 1.5 это время отклика в секундах. Именно в таком виде оно попадает в zabbix сервер. Проверить можно в Latest Data.

В завершении оставляю свой шаблон, который создал для написания статьи. Можете копированием и редактированием приспособить его для своих сайтов. Это быстрее, чем составлять с нуля. Шаблон экспортирован с версии zabbix 4.0 — sites_monitoring.xml

Вот и все, мониторинг веб сайта работает, авторизация проверяется, оповещение о недоступности сайта настроено. Для полноты картины можно создать Screen или Dashboard с выводом всех необходимых параметров на один экран.

Его настройки уже будут зависеть от конкретной ситуации и тех данных, которыми вы располагаете. К примеру, если у вас настроен мониторинг веб сервера, то можно разместить рядом графики его загрузки и параметры доступа к сайту.

Туда же можно добавить загрузку самого сервера по процессору и памяти и вывести график использования сетевого интерфейса.

В этом плане Zabbix очень гибок и позволяет настроить все на любой вкус и под любые требования.

Заключение

Добавлю несколько слов, как можно использовать данный мониторинг web сайта. У меня было два хостинга и хотелось выбрать один более быстрый.

Загрузка самого сервера по железу была настолько низка, что ее можно было вообще не брать в расчет. Более важным параметром было именно время отклика сервера и скорость доступа к нему.

Я запустил сайт на обоих серверах и настроил мониторинг. По его параметрам выбрал более быстрый сервер.

Конечно, тут нужно понимать, что данные подобного мониторинга очень условны и зависят о того, где располагается сам сервер заббикса. Возможна ситуация, когда мониторинг всех сайтов будет показывать примерно одни и те же цифры из-за ограничения самого сервера мониторинга. Нужно иметь это ввиду.

Еще достаточно часто при проверке времени отклика сайта появляются большие провалы по времени до 5-10-15 секунд. Это сильно влияет на среднее время доступа. Возникают эти провалы из-за временных сетевых проблем не обязательно на самом сайте. Это тоже нужно учитывать при анализе полученных данных.

В любом случае нужно с головой подходить к анализу данных мониторинга сайта. В большинстве случаев важны не сами значения, а общие тенденции их изменения в сравнении и с другими хостами. Учитывайте это. На этом у меня все.

Онлайн курс по Linux

Если у вас есть желание научиться строить и поддерживать высокодоступные и надежные системы, рекомендую познакомиться с онлайн-курсом «Администратор Linux» в OTUS. Курс не для новичков, для поступления нужны базовые знания по сетям и установке Linux на виртуалку. Обучение длится 5 месяцев, после чего успешные выпускники курса смогут пройти собеседования у партнеров. Что даст вам этот курс:

  • Знание архитектуры Linux.
  • Освоение современных методов и инструментов анализа и обработки данных.
  • Умение подбирать конфигурацию под необходимые задачи, управлять процессами и обеспечивать безопасность системы.
  • Владение основными рабочими инструментами системного администратора.
  • Понимание особенностей развертывания, настройки и обслуживания сетей, построенных на базе Linux.
  • Способность быстро решать возникающие проблемы и обеспечивать стабильную и бесперебойную работу системы.

Проверьте себя на вступительном тесте и смотрите подробнее программу по .

Мониторинг сайтов — лучшие инструменты для проверки сайта 24/7

Мониторинг

Если вы уже запустили свой сайт, ваша единственная забота – это следить за тем, чтобы он работал как часы. Ведь всегда может что-то пойти не так. И не обязательно, что это произойдет по вашей вине.

Хоть хостинг и является автоматизированной системой, этой системой управляют такие же живые люди, как и вы сами. Так что никто не застрахован от падения своего собственного сайта. Даже несколько часов простоя, могут обернуться для вашего сайта неотвратимыми последствиями.

И чем быстрее вы заметите данную проблему, тем больше шансов будет для того, чтобы эти последствия минимизировать. Конечно, это не совсем не значит, что вы должны сидеть день и ночь перед экраном монитора либо смартфона для того, чтоб перестраховаться.

Вы можете просто проводить мониторинг сайтов с помощью специальных онлайн инструментов.

Что такое мониторинг сайтов?

Мониторинг сайтов – это процесс, позволяющий любому владельцу проверять статус своего сайта и получать оповещения в случае, если он стал недоступен для пользователей.

Используя программное обеспечение и онлайн инструменты, вы можете проверить всю необходимую информацию касательно работы вашего сайта. Это включает в себя текущий статус, электронные письма, которое приходят посетителям в виде уведомлений,  диаграммы для отслеживания скорости сервера и многое другое.

3 Причины, почему нужно проводить мониторинг сайтов

  • Посвятите себя бизнесу на все 100%. После выбора инструментов для мониторинга сайтов, которые соответствует вашим требованиям, вы можете не беспокоиться о своем сайте и посвятить все усилия растущему бизнесу, проекту или компании.
  • Узнайте о проблеме первым и действуйте незамедлительно. Получайте оповещения о падении сайта на указанный вами почтовый ящик для того, чтобы немедленно связаться с хостинг провайдером.
  • Убедитесь, что ваш сайт снова доступен и будьте спокойны. Вам больше не нужно штурмовать двери хостинг компании для того, чтобы узнать как обстоят дела с вашим сайтом. Как только сайт возобновит работу, вы получите соответственное письмо на электронную почту.

Существует множество платных и бесплатных программ мониторинга сайтов. При этом есть как онлайн решения, так и программное обеспечение для ПК, смотря какой из вариантов вам больше подходит.

 Мы решили помочь вам в выборе лучших инструментов, которые позволяют настраивать и проводить мониторинг работы сайтов, и сделали подборку, в которой вы сможете сравнить их функционал, ценовую политику и эффективность.

UptimeRobot

UptimeRobot это бесплатное программное обеспечение для мониторинга работы сайтов. Оно проверяет текущий статус вашего сайта каждые 5 минут.

В случае обнаружения каких-либо проблем с кодом он выполняет дополнительные проверки. Если проблемы не устранены, система отправляет вам автоматические предупреждения.

С помощью этого инструмента вы можете проверить до 50 сайтов за раз. Уведомления отправляются по электронной почте, SMS, RSS и другим каналам.

Преимущества:

  • несколько типов проверок: HTTP (протоколы), порт, ключевые слова;
  • электронная почта, SMS, push, Slack и другие предупреждения;
  • верификация;
  • техническое обслуживание;
  • страницы сайта и т. д.

Цена за мониторинг сайтов: бесплатно; премиум за $ 4,5 в месяц

Pingdom

Pingdom это программное обеспечение для мониторинга сайтов премиум-класса, которое также включает 14-дневную бесплатную пробную версию. С его помощью вы можете отслеживать производительность одного сайта за раз.

Бесплатное приложение для iPhone делает его действительно удобным решением. С его помощью вы всегда можете отслеживать текущее состояние дел на своем сайте.

Уведомления отправляются с помощью оповещений по электронной почте, SMS или iPhone.

Преимущества:

  • общий мониторинг сайтов;
  • контроль скорости загрузки страниц;
  • оповещения;
  • информация о посетителях;
  • проверка сервера.

Цена за мониторинг сайтов: 14-дневная бесплатная пробная версия; премиум планы стоимостью в $ 11 / месяц и выше.

Monitis

Monitis также является программным обеспечением для мониторинга работы и  посещаемости сайтов. В стоимость входит 15-дневная пробная версия. Используя этот инструмент, вы можете отслеживать производительность одного сайта.

Код сайта проверяется каждые 30 минут автоматически.

Автоматические предупреждения также сопровождаются отчетами о времени успешной работы сайта / информацией и временем, в течении которого сайт или его страница находились в нерабочем состоянии.

Преимущества:

  • полный мониторинг и аналитика;
  • облачная система хранения данных;
  • просмотры в режиме реального времени;
  • мгновенные оповещения;
  • история мониторинга сайтов и т. д.

Цена за мониторинг сайтов: бесплатный и премиум план.

Uptrends

Uptrends это платное программное обеспечение для мониторинга сайтов с 30-дневной бесплатной пробной версией. С его помощью вы можете проверять один сайт за раз.

Программное обеспечение запускает автоматический мониторинг работы сайта каждые 30 минут. Если что-то пойдет не так, оно отправляет автоматические уведомления по запросу пользователя.

Чтобы запустить инструмент, вам нужно добавить соответствующую кнопку на свой сайт. Нажатие кнопки создает отчеты о последних днях, неделях, месяцах и году.

Преимущества:

  • мониторинг отображения сайтов в браузерах;
  • контрольные точки мониторинга (а так же бэкап);
  • сортировка транзакций по разным показателям;
  • наличие мобильного приложения;
  • оповещения и т. д.

Цена за мониторинг сайтов: 30-дневная бесплатная пробная версия; премиум версия от $ 11 / месяц и выше.

SiteUptime

SiteUptime это служба мониторинга работоспособности сайта и сервера. На бесплатной пробной версии вы можете проверять 1 сайт. Программное обеспечение автоматически обновляет информацию о работе сайта каждые 30 минут. Предупреждения отправляются каждый раз, когда ваш сайт падает. Вы также можете настроить триггер предупреждения после возникновения 1-5 сбоев.

Преимущества:

  • мониторинг сайтов с поддержкой 24/7;
  • оповещение по электронной почте и SMS;
  • хранение информации об ошибках в журналах и отчетах.

Цена за мониторинг сайтов: бесплатно; премиум планы от 10 долларов США в месяц.

Site24x7

Site24x7 предоставит вам четкую информацию о производительности вашего сайта и о том, как пользователи ведут себя при просмотре страниц. Инструмент позволяет контролировать только один сайт.

Автоматические проверки работоспособности выполняются каждый час. Каждый раз, когда что-то идет не так, вы будете предупреждены об этом по электронной почте.

Кроме того, инструмент запускает мониторинг сервера, сети и пользователей.

Преимущества:

  • мониторинг веб-сайта;
  • мониторинг сервера;
  • мониторинг приложений;
  • мониторинг сети;
  • реальный мониторинг поведения пользователей.

Цена за мониторинг сайтов: 30-дневная бесплатная пробная версия; премиум планы по цене $ 9 / месяц и выше.

Uptimia

Uptimia это инструмент для контроля работы сайта и мониторинга производительности. С его помощью вы можете контролировать время и состояние работы HTTP, HTTPS, DNS, UDP, электронной почты и т. д.

Он также предоставляет такие функции, как мониторинг транзакций, поведение посетителей, а также мониторинг скорости сайта. Инструмент проверяет сайты при помощи 5 центров обработки данных каждые 5 минут.

Уведомления отправляются по электронной почте.

Преимущества:

  • мониторинг сайтов;
  • мониторинг транзакций;
  • мониторинг поведения пользователей;
  • мониторинг скорости сайта.

Цена за мониторинг сайтов: 30-дневная бесплатная пробная версия; платная версия продукта от $ 9 / месяц и выше.

Inspiring

Inspiring предоставляет бесплатные мгновенные уведомления и подробные отчеты о всех вещах, которые происходят на вашем сайте.

Этот инструмент отлично работает как на небольших сайтах, так и на хорошо зарекомендовавших себя корпоративных сайтах.

Для установки инструмента требуется несколько минут, после этого вы сможете получать мгновенный мониторинг в режиме реального времени и предупреждения, когда что-то пойдет не так.

Преимущества:

  • мгновенные оповещения о прекращении работы сайта;
  • мониторинг в режиме реального времени;
  • мониторинг ошибок сайта и сервера, прочее.

Цена за мониторинг сайтов: бесплатно, платная версия от $ 2 / месяц и выше.

Happy Apps

Эта служба мониторинга сайтов будет идеальным решением для тех, кто работает с приложениями.

Если вам нужно всегда предупреждать о текущем статусе приложения, его производительности и возможных проблемах, то Happy Apps – это именно то, что вам нужно. Он поддерживает рекордное количество типов проверок.

Таким образом, как только вы запустите настройку, вы сможете контролировать ряд проверок, включая базы данных, обмен сообщениями, серверы приложений, пользовательские проверки и т. Д.

Преимущества:

  • группирование и мониторинг приложений и IT систем с использованием сервера и баз данных;
  • проверка и мониторинг ряда систем, включая DB, MQ, серверы приложений, веб серверы;
  • мгновенный просмотр проблем и сбоев;
  • уведомления, и т. д.

Цена за мониторинг сайтов: бесплатно, премиум план от $ 9,95 / месяц и выше.

Uptime Doctor

С Uptime Doctor вы можете одновременно контролировать до 5 веб-сайтов. Инструмент контролирует ваши сайты в режиме 24/7. Всякий раз, когда возникают проблемы или найдены ошибки на сайтах, вы будете получать оповещения по электронной почте, SMS и push-уведомлениям через приложения iOS и Android.

Преимущества:

  • мониторинг производительности сайтов;
  • поддержка нескольких протоколов;
  • уведомления о прекращении работы сервера;
  • техническая поддержка;
  • бесплатное устранение неполадок, и прочее.

Цена за мониторинг сайтов: 100% бесплатно.

Подводим итоги

Независимо от того, это ваш первый сайт, или у вас уже есть хорошо налаженный онлайн бизнес, вам нужно знать о производительности вашего сайта.

Каждый раз, когда падает скорость сайта, или появляются сбои в работе страниц, вы теряете клиентов и потенциальный доход.

Чтобы этого не произошло, используйте любые из этих бесплатных и премиум сервисов мониторинга сайтов, и будьте в курсе происходящего 24/7.

Другие полезные статьи по теме

Поиск шрифта по картинке – лучшие бесплатные онлайн сервисы

Бесплатные векторные изображения – 30 лучших сайтов

Проверка скорости загрузки сайта: 12 бесплатных инструментов

Какая бесплатная программа для сжатия фото идеально подойдет для вашего сайта?

Добавить сайт в Гугл для увеличения трафика — как и зачем?

Дизайн главной картинки от Freepik

Обзор систем мониторинга серверов. Заменяем munin на…

Мониторинг

Очень долго хотел написать статью, но не хватало времени. Нигде (в том числе на Хабре) не нашёл такой простой альтернативы munin, как описанная в этой статье.

Я backend developer и очень часто на моих проектах не бывает выделенных админов (особенно в самом начале жизни продукта), поэтому я уже давно занимаюсь базовым администрированием серверов (начальная установка-настройка, бекапы, репликация, мониторинг и т.д.). Мне это очень нравится и я всё время узнаю что-то новое в этом направлении.

В большинстве случаев для проекта хватает одного сервера и мне как старшему разработчику (и просто ответственному человеку) всегда нужно было контролировать его ресурсы, чтобы понимать когда мы упрёмся в его ограничения. Для этих целей было достаточно munin. Интерфейс

Munin

Он легко устанавливается и имеет небольшие требования. Он написан на perl и использует кольцевую базу данных (RRDtool).

Пример установкиВыполняем команды: apt-get install munin munin-node service munin-node start Теперь munin-node будет собирать метрики системы и писать их в бд, а munin раз в 5 минут будет генерировать из этой бд html-отчёты и класть их в папку /var/cache/munin/www Для удобного просмотра этих отчётов можно создать простой конфиг для nginxserver { listen 80; server_name munin.myserver.ru; root /var/cache/munin/www; index index.html;} Собственно и всё. Уже можно смотреть любые графики использования процессора, памяти, жёсткого диска, сети и многого другого за день/неделю/месяц/год. Чаще всего меня интересовала нагрузка чтения/записи на жёсткий диск, потому что узким местом всегда была база данных.
Для мониторинга ресурсов сервера его всегда хватало, а для мониторинга доступности сервера использовался бесплатный сервис наподобие uptimerobot.com. Я использую такую комбинацию для мониторинга своих домашних проектов на виртуальном сервере.

Если проект вырастает из одного сервера, тогда на втором сервере достаточно установить munin-node, а на первом — добавить в конфиге одну строчку для сбора метрик со второго сервера. Графики по обоим серверам будут раздельные, что не удобно для просмотра общей картины — на каком сервере заканчивается свободное место на диске, а на каком оперативная память. Эту ситуации можно исправить добавив в конфиг уже десяток строчек для агрегации одного графика с метриками с обоих серверов. Соответственно целесообразно это делать только для самых основных метрик. Если в конфиге сделать ошибку, то придётся долго читать в логах, что именно к ней привело и не найдя информации попытаться исправить ситуацию «методом тыка».

Стоит ли говорить, что для большего количества серверов это превращается в самый настоящий ад. Может это из-за того, что munin был разработан в 2003 году и изначально не был рассчитан на это.

Альтернативы munin для мониторинга нескольких серверов

Определил для себя необходимые качества, которыми должна обладать новая система мониторинга:

  • количество метрик не меньше чем у munin (у него их около 30 базовых графиков и ещё около 200 плагинов в комплекте)
  • возможность написания собственных плагинов на bash (у меня было два таких плагина)
  • иметь небольшие требования к серверу
  • возможность вывода метрик с разных серверов на одном графике без правки конфигов
  • уведомления на почту, в slack и telegram
  • Time Series Database более мощную чем RRDtool
  • простая установка
  • ничего лишнего
  • бесплатно и с открытым исходным кодом

Я перечислю, всё что я рассматривал.

Cacti

Почти тоже самое, что munin только на php. В качестве базы данных можно использовать rrdtool как у munin или mysql. Первый релиз: 2001 год.
Интерфейс

Ganglia

Почти тоже самое, что и предыдущие, написана на php, в качестве базы данных — rrdtool. Первый релиз: 1998 год.
Интерфейс

Collectd

Ещё более простая система, чем предыдущие. Написан на c, в качестве базы данных — rrdtool. Первый релиз: 2005 год.
Интерфейс

Graphite

Состоит из трёх компонент, написанных на python:
carbon собирает метрики их записывает их в бд
whisper — собственная rrdtool-подобная бд
graphite-web — интерфейс
Первый релиз: 2008 год.
Интерфейс

Zabbix

Профессиональная система мониторинга, используется большинством админов. Есть практически всё, включая уведомления на почту (для slack и telegram можно написать простой bash-скрипт). Тяжёлая для пользователя и для сервера.

Раньше приходилось пользоваться, впечатления, как будто вернулся с jira на mantis.

Ядро написано на c, веб интерфейс — на php. В качестве базы данных может использовать: MySQL, PostgreSQL, SQLite, Oracle или IBM DB2.

Первый релиз: 2001 год.

Интерфейс

Nagios

Достойная альтернатива Zabbix. Написан на с. Первый релиз: 1999 год.
Интерфейс

Icinga

Форк Nagios. В качестве бд может использовать: MySQL, Oracle, and PostgreSQL. Первый релиз: 2009 год.
Интерфейс

Небольшое отступление

Все вышеперечисленные системы достойны уважения. Они легко устанавливаются из пакетов в большинстве linux-дистрибутивов и уже давно используются в продакшене на многих серверах, поддерживаются, но очень слабо развиваются и имеют устаревший интерфейс.

В половине продуктов используются sql-базы данных, что является не оптимальным для хранения исторических данных (метрик). С одной стороны эти бд универсальны, а с другой — создают большую нагрузку на диски, а данные занимают больше места при хранении.

Для таких задач больше подходят современные бд временных рядов такие как ClickHouse.

Системы мониторинга нового поколения используют базы данных временных рядов, одни из них включают их в свой состав как неотделимую часть, другие используют как отдельную компоненту, а третью могут работать вообще без бд.

Netdata

Вообще не требует базы данных, но может выгружать метрики в Graphite, OpenTSDB, Prometheus, InfluxDB. Написана на c и python. Первый релиз: 2016 год.
Интерфейс

Prometheus

Состоит из трёх компонент, написанных на go:
prometheus — ядро, собственная встроенная база данных и веб-интерфейс.
node_exporter — агент, который может быть установлен на другой сервер и пересылать метрики в ядро, работает только с prometheus.
alertmanager — система уведомлений.
Первый релиз: 2014 год.
Интерфейс

InfluxData (TICK Stack)

Состоит из четырёх компонент, написанных на go которые могут работать со сторонними продуктами:
telegraf — агент, который может быть установлен на другой сервер и пересылать метрики, а также логи в базы influxdb, elasticsearch, prometheus или graphite, а также в несколько серверов очередей.
influxdb — база данных, которая может принимать данные из telegraf, netdata или collectd.
chronograf — веб интерфейс для визуализации метрик из бд.
kapacitor — система уведомлений.
Первый релиз: 2013 год.
Интерфейс
Отдельно хотелось бы упомянуть такой продукт, как grafana, она написана на go и позволяет визуализировать данные из influxdb, elasticsearch, clickhouse, prometheus, graphite, а также отправлять уведомления на почту, в slack и telegram.
Первый релиз: 2014 год.
Интерфейс

Выбираем лучшее

В интернете и на Хабре, в том числе, полно примеров использования различных компонент из разных продуктов, чтобы получить то что надо именно тебе.

carbon (агент) -> whisper (бд) -> grafana (интерфейс) netdata (в качестве агента) -> null / influxdb / elasticsearch / prometheus / graphite (в качестве бд) -> grafana (интерфейс) node_exporter (агент) -> prometheus (в качестве бд) -> grafana (интерфейс) collectd (агент) -> influxdb (бд) -> grafana (интерфейс) zabbix (агент+сервер) -> mysql -> grafana (интерфейс) telegraf (агент) -> elasticsearch (бд) -> kibana (интерфейс) … и т.д. Видел упоминание даже о такой связке: … (агент) -> clickhouse (бд) -> grafana (интерфейс) В большинстве случаев в качестве интерфейса использовалась grafana, даже если она была в связке с продуктом, который уже содержал собственный интерфейс (prometheus, graphite-web).

Поэтому (а также в силу её универсальности, простоты и удобства) в качестве интерфейса я остановился на grafana и приступил к выбору базы данных: prometheus отпал потому что не хотелось тянуть весь его функционал вместе с интерфейсом только из-за одной бд, graphite — бд предыдущего десятилетия, переработанная rrdtool-бд предыдущего столетия, ну и собственно я остановился на influxdb и как выяснилось — не один я сделал такой выбор.

Также для себя я решил выбрать telegraf, потому что он удовлетворял моим потребностям (большое количество метрик и возможность написания своих плагинов на bash), а также работает с разными бд, что может быть полезно в будущем. Итоговая связка у меня получилась такая:

telegraf (агент) -> influxdb (бд) -> grafana (интерфейс+уведомления)

Все компоненты не содержат ничего лишнего и написаны на go. Единственное, чего я боялся — то что эта связку будет трудна в установке и настройке, но как вы сможете видеть ниже — это было зря.

Итак, короткая инструкция по установке TIG:

influxdb

wget https://dl.influxdata.com/influxdb/releases/influxdb-1.2.2.x86_64.rpm && yum localinstall influxdb-1.2.2.x86_64.rpm #centoswget https://dl.influxdata.com/influxdb/releases/influxdb_1.2.4_amd64.deb && dpkg -i influxdb_1.2.4_amd64.deb #ubuntusystemctl start influxdbsystemctl enable influxdb Теперь можно делать запросы к базе (правда данных там ещё пока нет):

http://localhost:8086/query?q=select+*+from+telegraf..cpu

telegraf

wget https://dl.influxdata.com/telegraf/releases/telegraf-1.2.1.x86_64.rpm && yum -y localinstall telegraf-1.2.1.x86_64.rpm #centoswget https://dl.influxdata.com/telegraf/releases/telegraf_1.3.2-1_amd64.deb && dpkg -i telegraf_1.3.2-1_amd64.deb #ubuntu#в случае установки на сервер отличный от того где находится influxdb необходимо в конфиге /etc/telegraf/telegraf.conf в секции [[outputs.influxdb]] поменять параметр urls = [«http://localhost:8086»]:sed -i 's| urls = [«http://localhost:8086»]| urls = [«http://myserver.ru:8086»]|g' /etc/telegraf/telegraf.confsystemctl start telegrafsystemctl enable telegraf Telegraf автоматически создаст базу в influxdb с именем «telegraf», логином «telegraf» и паролем «metricsmetricsmetricsmetrics».

grafana

yum install https://s3-us-west-2.amazonaws.com/grafana-releases/release/grafana-4.3.2-1.x86_64.rpm #centoswget https://s3-us-west-2.amazonaws.com/grafana-releases/release/grafana_4.3.2_amd64.deb && dpkg -i grafana_4.3.2_amd64.deb #ubuntusystemctl start grafana-serversystemctl enable grafana-server
Интерфейс доступен по адресу http://myserver.ru:3000. Логин: admin, пароль: admin. Изначально в интерфейсе ничего не будет, потому что графана ничего не знает о данных. 1) Нужно зайти в источники и указать influxdb (бд: telegraf) 2) Нужно создать свой дашборд с нужными метриками (уйдёт очень много времени) или импортировать уже готовый, например:

928 — позволяет видеть все метрики по выбранному хосту

914 — тоже самое
61 — позволяет метрики по выбранным хостам на одном графике Grafana имеет отличный инструмент для импорта сторонних дашбордов (достаточно указать его номер), вы также можете создать свой дашборд и поделиться им с сообществом.

Вот список всех дашбордов, работающие с данными из influxdb, которые были собраны с помощью коллектора telegraf.

Акцент на безопасность

Все порты на ваших серверах должны быть открыты только с тех ip, которым вы доверяете либо в используемых продуктах должна быть включена авторизация и изменены пароли по-умолчанию (я делаю и то и другое).

influxdb

В influxdb по-умолчанию отключена авторизация и кто угодно может делать что угодно. По-этому если на сервере нет файервола, то крайне рекомендую включить авторизацию: #Создаём базу и пользователей:influx -execute 'CREATE DATABASE telegraf'influx -execute 'CREATE USER admin WITH PASSWORD «password_for_admin» WITH ALL PRIVILEGES'influx -execute 'CREATE USER telegraf WITH PASSWORD «password_for_telegraf»'influx -execute 'CREATE USER grafana WITH PASSWORD «password_for_grafana»'influx -execute 'GRANT WRITE ON «telegraf» TO «telegraf»' #чтобы telegraf мог писать метрики в бдinflux -execute 'GRANT READ ON «telegraf» TO «grafana»' #чтобы grafana могла читать метрики из бд#в конфиге /etc/influxdb/influxdb.conf в секции [http] меняем параметр auth-enabled для включения авторизации:sed -i 's| # auth-enabled = false| auth-enabled = true|g' /etc/influxdb/influxdb.confsystemctl restart influxdb
telegraf #в конфиге /etc/telegraf/telegraf.conf в секции [[outputs.influxdb]] меняем пароль на созданный в предыдущем пункте:sed -i 's| # password = «metricsmetricsmetricsmetrics»| password = «password_for_telegraf»|g' /etc/telegraf/telegraf.confsystemctl restart telegraf
grafana В настройках источников, нужно указать для influxdb новый логин: «grafana» и пароль «password_for_grafana» из пункта выше. Также в интерфейсе нужно сменить пароль по-умолчанию для пользователя admin.Admin -> profile -> change password

Update: добавил пункт к своим критериям «бесплатно и с открытым исходным кодом», забыл его указать с самого начала, а теперь мне советуют кучу платного/условно-бесплатного/триального/закрытого софта. Тут бы с бесплатным разобраться.

Update2: сейчас группа энтузиастов создаёт таблицу в google docs, сравнивая различные системы мониторинга по ключевым параметрам (Language, Bytes/point, Clustering). Работа кипит, текущий срез под катом.
Скриншот на момент 15:15

Update3: ещё одно сравнение Open-Source TSDB в Google Docs. Чуть более проработанное, но систем меньше AnyKey80lvl

Мониторинг – что это такое простыми словами

Мониторинг

Мониторинг (от латинского «monitor» – предупреждающий, наблюдающий) – подразумевает постоянное наблюдение за течением какого-либо явления или процесса. Данное явление может происходить в любой сфере – в общественно-социальных отношениях, в природе, в финансово-экономической сфере и т.д.

Процедура мониторинга

Помимо внешнего наблюдения за течением процесса, мониторинг подразумевает оценку и контроль над его состоянием. А при необходимости и управление или произведение корректировки направления и интенсивности наблюдаемого процесса. Всю процедуру мониторинга можно условно разделить на две основные части:

  • Получение информации о состоянии контролируемого процесса или объекта.
  • Анализ полученных данных.

Если на основе полученной аналитической информации выявлены серьёзные отклонения от заданных или прогнозируемых параметров, это становится причиной для вмешательства в процесс. Разберём особенности проведения мониторинга различных сфер человеческой деятельности и природных явлений.

Финансовая сфера

Главной целью финансового мониторинга становится контроль над денежными потоками. Он необходим для следующих действий:

  • Выявление незаконных схем по отмыванию денег, полученных преступным путём.
  • Препятствование финансирования террористических и преступных группировок.
  • Перекрытие денежных потоков, выводимых в тень с целью ухода от налогообложения.
  • Создание заслона прочим незаконным финансовым операциям.

Для подобных целей почти во всех государствах имеются соответствующие органы, действующие под эгидой полиции, госбезопасности или Минфина. В РФ это специальная Служба финансового мониторинга (СФМ), в обязанности которой вменяется тесная работа со структурами экономической безопасности коммерческих банков и прочих крупных финансовых организаций и предприятий.

Данной федеральной службой отслеживаются все крупные сделки, производимые частными лицами и организациями. В первую очередь это переводы со счёта на счёт крупных сумм денег, значительные по размерам сделки с драгметаллами, валютой, ценными бумагами.

Банковская сфера

Мониторинг банковской деятельности является инструментом обеспечения безопасности как конкретно взятого банка, так и финансовой системы страны. Дело в том, что каждый крупный коммерческий банк является «кирпичиком» в стене государственной финансовой системы, и его «выпадение» (т.е. банкротство) может крайне негативно сказаться на экономической стабильности в целом.

Контроль над банковской деятельностью осуществляется всё той же федеральной СФМ, а также службами внутренней безопасности финансово-коммерческих организаций.

В банковской сфере мониторинг подразумевает осуществление контроля над внутренними и внешними финансовыми потоками, проходящими через данную банковскую организацию. Он включает в себя следующие этапы:

  • Проведение регистрационных операций по отслеживанию денежных потоков.
  • Ведение анкеты на каждого банковского клиента, будь то частный гражданин или некое учреждение.
  • Создание списка банковских контрагентов, подозреваемых в незаконном обороте денежных средств.
  • Ежедневное отслеживание финансовых операций в соответствии с банковской отчётностью.

Все вышеперечисленные действия лежат в поле деятельности государственной ФСФМ. Внутренняя банковская служба безопасности, в свою очередь, мониторит производимые операции внутри банка, не допуская финансовых преступлений с участием служащих данной организации.

Сфера образования

Мониторинг в образовательной сфере необходим для определения качества обучения, выявления корректности и соответствия учебных программ современным запросам рынка труда. Без осуществления регулярного контроля качество образования неизменно будет снижаться, а государство – недополучать требуемые ему в данный момент времени квалифицированные кадры.

В качестве примера можно привести ситуацию, сложившуюся в нашей стране в начале 2000-х годов: рынок труда был перенасыщен экономистами и юристами, не имеющими опыта работы в данных сферах.

При малом количестве соответствующих вакансий и с высокими запросами работодателей, шансы найти работу по специальности у таких выпускников ВУЗов были крайне малы.

Кроме правильной профориентации, мониторингу подвергается само качество знаний, передаваемых ученику или студенту, методика преподавания, профессиональный уровень учителей. Обязанности по контролю над образовательной сферой лежат на Минобразования РФ.

Окружающая среда

Мониторинг состояния окружающей среды важен для человечества как в глобальном, общепланетарном масштабе, так и в местном – на уровне городов и отдельных регионов.

В процессе мониторинга выявляются негативные или позитивные воздействия человеческой деятельности на окружающую его природу. Одновременно с этим производится анализ этих данных, построение прогнозов дальнейших изменений и их последствий для человека.  

Своевременное обнаружение экологических проблем позволяет предотвратить их расширение до более широких масштабов, приложив для этого меньше финансовых расходов, людских ресурсов и времени. В России контролем над состоянием окружающей среды занимается несколько государственных учреждений и множество негосударственных организаций и фондов.

Среди федеральных служб это:

  • Санэпидемнадзор.
  • Гидрометеоцентр.
  • Комитет по водным ресурсам.
  • Природоохранная прокуратура.
  • Комитет по экологии и т.д.

Кроме перечисленных сфер, мониторинг используется практически во всех сферах жизнедеятельности человека, где необходимо установить закономерность развития неких процессов, а также дать прогноз их дальнейшего течения.

Поделиться:
Нет комментариев

    Добавить комментарий

    Ваш e-mail не будет опубликован. Все поля обязательны для заполнения.