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

Обновлено: 04.07.2024

Больше никаких авралов - просто систематическое наблюдение

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

Упреждающий мониторинг

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

Базовые параметры, эталон, монитор

Давайте начнем с определения нескольких терминов. Базовые параметры (baseline) - это набор параметров, отображающих поведение сервера и приложения в обычных условиях. Базовые параметры получены как средние по результатам нескольких замеров, выполненных в одинаковых условиях; они являются ориентирами для сравнения.

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

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

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

Шаг 1: Определить базовые параметры производительности.

Для того чтобы наглядно показать качество функционирования, лучшие базовые параметры используют немного графиков (в идеале один), чтобы с первого взгляда можно было увидеть, как работает сервер. Когда будут определены базовые параметры, нужно сделать следующее. Во-первых, выберите вариант для сохранения данных по производительности в системном журнале или их отображения в реальном времени. Идеально иметь обе возможности: журналы регистрации позволяют вернуться к показаниям в любой момент времени, чтобы проанализировать, какой была производительность, когда непосредственное наблюдение за системой не велось. Мониторинг в реальном времени не занимает рабочее пространство на диске и ресурсы сервера, но требует уделить системе 100 процентов внимания. Во-вторых, нужно определить интервал, через который будет вестись наблюдение, учитывая затраты в производительности для сбора данных и операции ввода-вывода данных и оценить затраты на требуемое пространство. Чем больше интервал, тем выше вероятность, что интересующие данные по производительности не будут получены. И, наконец, выберите локальный или дистанционный мониторинг. Локальный мониторинг, при котором процесс наблюдения использует контролируемый сервер, добавляет непроизводительные издержки на процессор и диск сервера. Дистанционный мониторинг, который использует отдельный сервер, может избавить от подобных проблем, однако это сильно увеличивает рабочую нагрузку на сеть.

В Таблице 1 перечислены метрики System Monitor или счетчики, которые рекомендуется использовать для определения базовых параметров. Я не могу сказать, какое значение “правильное” в контексте отдельно взятого приложения, так как оно меняется от системы к системе. Используйте среднее значение различных базовых параметров для установки обычной стандартной (по базовым параметрам) производительности и обозначьте, что этот вариант и является правильным для эксплуатируемой системы

Определение базовых параметров при помощи System Monitor

Теперь для целей сбора базовых параметров вызовем System Monitor. Откроем Control Panel, Administrative Tools, Performance. Дважды щелкнем на Performance Logs and Alerts на левой панели. Нажмем правую кнопку на Counter Logs и укажем New Log Settings. Введите имя для графика, затем нажмите OK. В диалоговом окне Select Counters выберите первый счетчик, затем нажмите Add. Повторяйте эти операции до тех пор, пока все счетчики не будут добавлены, затем нажмите Close.

Для начала попробуйте по умолчанию 15-секундный интервал. Или выберите другой интервал, нажав Properties (либо используйте клавишную комбинацию быстрого вызова Ctrl + Q), а затем введите значение под обозначением Sample automatically every : _ seconds. Более длинные интервалы занимают меньше места, однако они обеспечивают менее подробные данные.

Выберите таблицу Log Files и определите место, где будут храниться данные. Есть возможность просмотреть данные позже, используя представление View Log File Data. System Monitor будет выглядеть так, как на экране 1, когда он собирает данные базовых параметров производительности. Видно, что при одновременном отслеживании множества счетчиков можно собрать очень много данных, так что следует внимательно выбирать счетчики для основной линии.

Шаг 2: Установка эталонных значений

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

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

Можно создать собственный сценарий, используя набор сценариев T-SQL, утилиты osql либо Query Analyzer, SQL Profiler и System Monitor. Разработка сценариев нагрузочных тестов в T-SQL обычно занимает несколько дней. Еще больше времени может потребоваться на сбор данных выполнения нагрузочных тестов и анализ полученных данных.

После определения базовых параметров производительности сервера при заранее заданных нагрузках можно будет узнать, чего можно ожидать от системы. Используйте данные, собранные при получении эталонных значений для формирования основы планового наблюдения. Например, выяснилось, что сервер способен обеспечить до 249 транзакций в секунду, прежде чем его работа начнет замедляться. В этом случае можно установить уведомление с низким приоритетом, когда сервер достигнет загрузки около 200 TPS и уведомление с высоким приоритетом, когда сервер достигнет 235 TPS. Такой способ позволит администратору узнать о возможных проблемах с сервером и принять необходимые меры до того, как пользователи что-нибудь заметят. И никаких критических ситуаций. Теперь это возможно.

Шаг 3: Плановый мониторинг

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

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

Для контроля производительности сервера используется System Monitor для наблюдения за текущими счетчиками (установите частоту опроса с точностью до 15 минут).

Network Interface—Bytes total/sec

Physical Disk—Disk Transfers/sec

Processor—% Processor Time

SQLServer:Access Methods—Full Scans/sec

SQLServer:Buffer Manager—Buffer Cache Hit Ratio

SQLServer:Databases Application Database—Transactions/sec

SQLServer:General Statistics—User onnections

SQLServer:Latches—Average Latch Wait Time

SQLServer:Locks—Average Wait Time

SQLServer:Locks—Number of Deadlocks/sec

SQLServer:Memory Manager—Memory Grants Pending

Для выполнения предупреждений можно использовать бесплатные инструменты, такие как SQL Server Alerts & Notifications, System Monitor либо приобрести Microsoft Operations Manager (MOM) или другие средства. Я рекомендую установить предупреждения, по крайней мере, для следующих ситуаций:

  • ошибки, влияющие на эксплуатацию, особенно ошибки с показателем важности от 19 до 25
  • блокировки
  • использование процессора
  • использование диска
  • сканирования (SQLServer:Access Methods)
  • журнал SQL Server
  • журнал SQL Agent
  • журнал приложений Windows, Security, и System
  • журнал исполнения заданий SQL Server

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

51 инструмент для APM и мониторинга серверов. Часть 4 Сервис, Мониторинг, Сисадмин, Сервер, Habr, Длиннопост

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

51 инструмент для APM и мониторинга серверов. Часть 4 Сервис, Мониторинг, Сисадмин, Сервер, Habr, Длиннопост

Открытая APM-система, написанная на Java.

Стоимость: Бесплатно, open source.

51 инструмент для APM и мониторинга серверов. Часть 4 Сервис, Мониторинг, Сисадмин, Сервер, Habr, Длиннопост

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

Стоимость: Бесплатный тарифный план или 150 фунтов стерлингов в год.

51 инструмент для APM и мониторинга серверов. Часть 4 Сервис, Мониторинг, Сисадмин, Сервер, Habr, Длиннопост

Набор REST-сервисов для мониторинга, развитие которого спонсируется Red Hat.

Стоимость: Бесплатно, open source.

51 инструмент для APM и мониторинга серверов. Часть 4 Сервис, Мониторинг, Сисадмин, Сервер, Habr, Длиннопост

Ещё одно открытое решение для мониторинга и рассылки оповещений.

Стоимость: Бесплатно, open source.

51 инструмент для APM и мониторинга серверов. Часть 4 Сервис, Мониторинг, Сисадмин, Сервер, Habr, Длиннопост

Компания raintank предлагает open source решение для мониторинга класса Enterprise — Grafana.

Стоимость: Бесплатно, open source.

51 инструмент для APM и мониторинга серверов. Часть 4 Сервис, Мониторинг, Сисадмин, Сервер, Habr, Длиннопост

Этот инструмент во многом схож с NewRelic и AppDynamics, но реализует концепцию более узконаправленного применения.

Стоимость: Бесплатно, open source.

51 инструмент для APM и мониторинга серверов. Часть 4 Сервис, Мониторинг, Сисадмин, Сервер, Habr, Длиннопост

Российская комплексная облачная система мониторинга и резервного копирования.

Стоимость: От 150 руб за один сервер.

51 инструмент для APM и мониторинга серверов. Часть 4 Сервис, Мониторинг, Сисадмин, Сервер, Habr, Длиннопост

Полностью бесплатная (даже поддержка) система мониторинга с богатыми возможностями.

Стоимость: Бесплатно.

51 инструмент для APM и мониторинга серверов. Часть 4 Сервис, Мониторинг, Сисадмин, Сервер, Habr, Длиннопост

Детище Microsoft, предназначенное для мониторинга и выявления неполадок в веб-приложениях и службах.

Стоимость: Зависит от выбранных модулей и функций.

51 инструмент для APM и мониторинга серверов. Часть 4 Сервис, Мониторинг, Сисадмин, Сервер, Habr, Длиннопост

Ещё один продукт от создателей Windows, предназначенный для мониторинга и управления в корпоративном сегменте.

51 инструмент для APM и мониторинга серверов. Часть 4 Сервис, Мониторинг, Сисадмин, Сервер, Habr, Длиннопост

Система реального времени для обнаружения аномалий и аналитики.

Стоимость: Триал 30 дней, затем запросите цену.

51 инструмент для APM и мониторинга серверов. Часть 4 Сервис, Мониторинг, Сисадмин, Сервер, Habr, Длиннопост

51 инструмент для APM и мониторинга серверов. Часть 4 Сервис, Мониторинг, Сисадмин, Сервер, Habr, Длиннопост

Система для мониторинга частных облачных инфраструктур.

Стоимость: Триал, затем запросите цены.

51 инструмент для APM и мониторинга серверов. Часть 4 Сервис, Мониторинг, Сисадмин, Сервер, Habr, Длиннопост

Платформа для создания собственного набора мониторинговых онлайн-сервисов.

Стоимость: Триал 15 дней, затем всё зависит от ваших потребностей.

В последней части более подробно рассмотрим Solarwinds/ Zabbix/ Cacti.


Информационная безопасность

1.3K поста 22.9K подписчика

Правила сообщества

Обязательно к прочтению для авторов:

1. Если вы добавляете пост, утверждающий об утечке данных или наличии дыр в системе, предоставьте ссылку на источники или технически подкованное расследование. Посты из разряда "Какой-то банк слил данные, потому что мне звонили мошенники" будут выноситься в общую ленту.
2. Все вопросы "Как обезопасить сервер\приложение\устройство" - в лигу "Компьютер это просто".

Обязательно к прочтению для всех:

Добавление ссылки разрешено если она не содержит описание коммерческих (платных) продуктов и/или идентификаторов для отслеживания перехода и для доступа не нужен пароль или оплата в т.ч. интернет-ресурсы, каналы (от 3-х тематических видео), блоги, группы, сообщества, СМИ и т.д.

Запрещены политические holy wars.

По решению модератора или администратора сообщества пользователь будет забанен за:

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

2. Публикацию поста/комментария не соответствующего тематике сообщества, в том числе обсуждение администраторов и модераторов сообщества, для этого есть специальное сообщество.

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

image

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

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

Ниже мы рассматриваем базовые методы мониторинга работы сети и контроля ее защищенности.

Методы мониторинга состояния сети

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

  1. проверка физической доступности оборудования;
  2. проверка состояния (работоспособности) служб и сервисов, запущенных в сети;
  3. детальная проверка не критичных, но важных параметров функционирования сети: производительности, загрузки и т.п.;
  4. проверка параметров, специфичных для сервисов и служб данного конкретного окружения (наличие некоторых значений в таблицах БД, содержимое лог-файлов).

Следующий этап – проверка принципиальной работоспособности критичных служб. Как правило, это означает TCP-подключение к соответствующему порту сервера, на котором должна быть запущена служба, и, возможно, выполнение тестового запроса (например, аутентификации на почтовом сервере по протоколу SMTP или POP или запрос тестовой страницы от веб-сервера).

В большинстве случаев, желательно проверять не только факт ответа службы/сервиса, но и задержки – впрочем, то относится уже к следующей по важности задаче: проверке нагрузки. Помимо времени отклика устройств и служб для различных типов серверов существуют другие принципиально важные проверки: память и загруженность процессора (веб-сервер, сервер БД), место на диске (файл-сервер), и более специфические – например, статус принтеров у сервера печати.

Контроль безопасности сети

Сущность контроля безопасности состоит в выявлении аномальных событий в функционировании сети. Предполагается, что базовые методы обеспечения и контроля безопасности (аутентификация, фильтрация запросов по адресу клиента, защита от перегрузок и т.п.) встроена во все серверное ПО. Однако, во-первых, не всегда можно доверять этому предположению; во-вторых, не всегда такой защиты достаточно. Для полноценной уверенности в безопасности сети в большинстве случаев необходимо использовать дополнительные, внешние средства. При этом проверяют, как правило, следующие параметры:

Использование Alchemy Eye для мониторинга состояния сети и контроля ее безопасности

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

Прежде всего, чтобы обеспечить непрерывность мониторинга, нужно запустить программу как NT-службу (установить ее в Файл>Настройки>NT-служба, затем запустить из Панели управления Windows ). После запуска службы появится иконка в области уведомлений (системном трее), по клику на ней откроется главное окно программы, где и нужно создать необходимые проверки.

Рис.1. Выбор типа проверки сервера.

Скриншот на рис.1 может продемонстрировать лишь небольшое количество типов проверок, доступных в программе (полный список вы можете посмотреть самостоятельно). Для ориентировки можно привести соответствия между задачами, описанными выше, и некоторыми проверками, доступными в Alchemy Eye:

Рис.2. Браузер дерева MIB – выбор переменной для SNMP-мониторинга.

Рис.3. Браузер счетчиков производительности Windows – выбор параметра для мониторинга.

В случае сложных окружений, для которых недостаточно встроенных проверок, можно использовать одну из возможностей расширения, доступных в Alchemy Eye: запуск скриптовых функций (VBScript, JavaScript, ActivePerl) или внешних приложений, а так же подсистему плагинов.

После выбора типа проверки нужно задать ее параметры – как правило, они включают адрес проверяемого сервера и несколько других, очевидных либо в деталях объясняемых всплывающими подсказками. На рис.4 показана страница выбора параметров ICMP-проверки.

Рис.5. Главное окно Alchemy Eye – мониторинг серверов (3 успешных проверки, 1 сбой).

Задачи этого рода (учет и анализ) в Alchemy Eye решаются с помощью встроенных отчетов (меню Отчеты). Стоит учесть, что вся статистика выполненных программой проверок и их результатов записывается в стандартной форме в файл stat.csv в папке программы, данные из него можно использовать для последующего анализа (Alchemy Eye позволяет подключать сторонние программы-анализаторы в качестве генераторов отчетов – подробная инструкция имеется в справке программы).

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

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

В нашем телеграм канале мы рассказываем о главных новостях из мира IT, актуальных угрозах и событиях, которые оказывают влияние на обороноспособность стран, бизнес глобальных корпораций и безопасность пользователей по всему миру. Узнай первым как выжить в цифровом кошмаре!

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

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

1. Zabbix


Это одна из самых популярных промышленных систем мониторинга для Linux. Zabbix поддерживает сбор информации с нескольких серверов, мониторинг таких часто используемых служб, как Apache, Nginx, PHP-FPM, MySQL, PostgreSQL, Tomcat и многих других, а также обнаруживает и сообщает об различных типичных ошибках. Есть возможность отправки уведомления на электронную почту при возникновении определённого события. Это позволяет реагировать очень быстро на любые ошибки. Все настройки выполняются с помощью удобного веб-интерфейса и хранятся в базе данных MySQL. Вы также можете посмотреть текущие значения различных метрик сервера в разделе Monitoring -> Last data. Доступны графики для основных отслеживаемых параметров.

2. Nagios


3. Cacti


Эта система мониторинга тоже довольно старая и интерфейсом похожа на Nagios. Но цель у неё другая. Cacti разработана для просмотра графиков состояния различных системных параметров за определённое время. Тем не менее, при необходимости здесь тоже можно настроить уведомления. Очень часто используется не столько для мониторинга серверов, сколько для отслеживания нагрузки на сеть с помощью SNMP (Simple Network Management Protocol). Cacti достаточно сложная в настройке, потому что для неё надо создать базу данных, пользователя и установить PHP, Apache и всё подготовить.

4. Monit


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

5. Icinga 2


Icinga 2 - это улучшенная версия открытой системы мониторинга Icinga, которая в свою очередь была создана как форк Nagios в 2009 году. Для её работы вам уже понадобится создать несколько баз данных MySQL или PostgreSQL. Это одна из программ, имеющих современный интерфейс, которым приятно пользоваться. Позволяет отслеживать события в системе, а также отправлять уведомления на почту при возникновении проблем. Отслеживается место на диске, раздел подкачки, доступность запущенных сервисов, нагрузка на процессор с помощью load_average, а также доступные для обновления пакеты.

6. Observium


Observium - инструмент, написанный на PHP, позволяющий выполнять мониторинг доступности серверов в сети, а также сетевую нагрузку на их интерфейсы с помощью SNMP. Программа имеет простой и приятный интерфейс и её не очень сложно установить. Отслеживаемые серверы можно добавить как с помощью веб-интерфейса, так и в командной строке. Можно настроить отправку уведомлений если какой-либо из серверов стал недоступен.

7. Netdata


8. Munin


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

9. Prometheus


Это современная система мониторинга Linux с открытым исходным кодом, полностью написанная на Go. Она состоит из нескольких компонентов, которые надо устанавливать отдельно. Основной из них - сервер Prometheus, собирающий данные со всех хостов, позволяющий их анализировать и выводить графики. Для установки на удалённые машины используется компонент Node_exporter - собирающий данные и передающий их на сервер. А для отправки уведомлений об внештатных ситуациях используется компонент Alert_manager. Система не очень сложная в настройке и довольно удобная. Первый релиз состоялся в 2014 году, поэтому всё выглядит довольно современным. В веб-интерфейсе выводится только информация, большинство настроек выполняются редактированием YAML файлов.

10. Graphite


Это более старая система мониторинга, по сравнению с Prometheus, написанная на Python. Graphite тоже состоит из нескольких компонентов. Это агент для сбора данных Carbon, база данных Whisper и интерфейс для отображения графиков Graphite-Web. Как и в большинстве предыдущих систем здесь можно отправлять уведомления о возникновении проблем, а также просматривать графики различных параметров работы сервера.

Сборка из агента, базы данных и веб-интерфейса

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

В качестве агента сбора данных можно использовать один из перечисленных выше от систем мониторинга или же отдельный, например, Collectd, Telegraf или другие. В качестве базы данных часто используют InfluxDB, написанную на Go, а в качестве веб-интерфейса очень популярна Grafana. Это очень простой и красивый инструмент для рисования графиков на основе меняющихся со временем данных.

Выводы

В этой статье мы рассмотрели системы мониторинга для Linux, которые вы можете использовать в своих проектах. Конечно, это далеко не все решения, а только лучшие из них. Все программы доступны бесплатно или имеют бесплатную версию. А какие системы мониторинга используете вы для решения своих задач? Что-то было упущено в этом списке? Напишите в комментариях!

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

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

1. Zabbix


Это одна из самых популярных промышленных систем мониторинга для Linux. Zabbix поддерживает сбор информации с нескольких серверов, мониторинг таких часто используемых служб, как Apache, Nginx, PHP-FPM, MySQL, PostgreSQL, Tomcat и многих других, а также обнаруживает и сообщает об различных типичных ошибках. Есть возможность отправки уведомления на электронную почту при возникновении определённого события. Это позволяет реагировать очень быстро на любые ошибки. Все настройки выполняются с помощью удобного веб-интерфейса и хранятся в базе данных MySQL. Вы также можете посмотреть текущие значения различных метрик сервера в разделе Monitoring -> Last data. Доступны графики для основных отслеживаемых параметров.

2. Nagios


3. Cacti


Эта система мониторинга тоже довольно старая и интерфейсом похожа на Nagios. Но цель у неё другая. Cacti разработана для просмотра графиков состояния различных системных параметров за определённое время. Тем не менее, при необходимости здесь тоже можно настроить уведомления. Очень часто используется не столько для мониторинга серверов, сколько для отслеживания нагрузки на сеть с помощью SNMP (Simple Network Management Protocol). Cacti достаточно сложная в настройке, потому что для неё надо создать базу данных, пользователя и установить PHP, Apache и всё подготовить.

4. Monit


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

5. Icinga 2


Icinga 2 - это улучшенная версия открытой системы мониторинга Icinga, которая в свою очередь была создана как форк Nagios в 2009 году. Для её работы вам уже понадобится создать несколько баз данных MySQL или PostgreSQL. Это одна из программ, имеющих современный интерфейс, которым приятно пользоваться. Позволяет отслеживать события в системе, а также отправлять уведомления на почту при возникновении проблем. Отслеживается место на диске, раздел подкачки, доступность запущенных сервисов, нагрузка на процессор с помощью load_average, а также доступные для обновления пакеты.

6. Observium


Observium - инструмент, написанный на PHP, позволяющий выполнять мониторинг доступности серверов в сети, а также сетевую нагрузку на их интерфейсы с помощью SNMP. Программа имеет простой и приятный интерфейс и её не очень сложно установить. Отслеживаемые серверы можно добавить как с помощью веб-интерфейса, так и в командной строке. Можно настроить отправку уведомлений если какой-либо из серверов стал недоступен.

7. Netdata


8. Munin


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

9. Prometheus


Это современная система мониторинга Linux с открытым исходным кодом, полностью написанная на Go. Она состоит из нескольких компонентов, которые надо устанавливать отдельно. Основной из них - сервер Prometheus, собирающий данные со всех хостов, позволяющий их анализировать и выводить графики. Для установки на удалённые машины используется компонент Node_exporter - собирающий данные и передающий их на сервер. А для отправки уведомлений об внештатных ситуациях используется компонент Alert_manager. Система не очень сложная в настройке и довольно удобная. Первый релиз состоялся в 2014 году, поэтому всё выглядит довольно современным. В веб-интерфейсе выводится только информация, большинство настроек выполняются редактированием YAML файлов.

10. Graphite


Это более старая система мониторинга, по сравнению с Prometheus, написанная на Python. Graphite тоже состоит из нескольких компонентов. Это агент для сбора данных Carbon, база данных Whisper и интерфейс для отображения графиков Graphite-Web. Как и в большинстве предыдущих систем здесь можно отправлять уведомления о возникновении проблем, а также просматривать графики различных параметров работы сервера.

Сборка из агента, базы данных и веб-интерфейса

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

В качестве агента сбора данных можно использовать один из перечисленных выше от систем мониторинга или же отдельный, например, Collectd, Telegraf или другие. В качестве базы данных часто используют InfluxDB, написанную на Go, а в качестве веб-интерфейса очень популярна Grafana. Это очень простой и красивый инструмент для рисования графиков на основе меняющихся со временем данных.

Выводы

В этой статье мы рассмотрели системы мониторинга для Linux, которые вы можете использовать в своих проектах. Конечно, это далеко не все решения, а только лучшие из них. Все программы доступны бесплатно или имеют бесплатную версию. А какие системы мониторинга используете вы для решения своих задач? Что-то было упущено в этом списке? Напишите в комментариях!

Читайте также: