Главная >> Списки >> Системы мониторинга сервера Linux

Системы мониторинга сервера Linux

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

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


Содержание статьи

1. Zabbix

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

2. Nagios

Ещё одна популярная система мониторинга серверов для Linux. Она тоже позволяет отправлять уведомления администратору при возникновении каких-либо проблем с сервером. Можно добавить несколько хостов и система будет наблюдать за основными их параметрами: доступность, место на диске, работа SSH и HTTP сервисов, а также тому подобные вещи. Интерфейс Nagios выглядит намного проще, по сравнению с Zabbix, но зато её проще установить и не нужна база данных MySQL для работы.

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

8 комментариев к “Системы мониторинга сервера Linux”

  1. Подскажите пожалуйста.
    У меня есть сервер vds на котором около 10 сайтов. Какую систему мониторинга можно использовать чтобы смотреть нагрузку каждого сайта на сервер в отдельности. Спасибо!

    Ответить
    • Вряд-ли есть такие решения, если все сайты используют один и тот же процесс mysql и php-fpm, то отследить сколько ресурсов использует каждый из сайтов очень сложно. Если же используются разные пулы php-fpm, то можно использовать утилиту htop, чтобы определить какой пул использует больше ресурсов. На счет системы мониторинга не знаю.

      Ответить
  2. Есть ещё системы на основе сбора метрик (например, связка Grafana+Prometheus+exporters). Там можно мониторить абсолютно всё, что захочется администратору, нужны только знания Bash, Go или Python на выбор.

    Ответить
  3. Доброго дня! Вопрос по netdata. Установил, запустил, вижу вебмордру с локальной машины, а вот с другого ПК в той же сети страница недоступна. Подскажите, как поправить? Фаервол выключен

    Ответить

Оставьте комментарий