- 10 полезных утилит для мониторинга Linux-сервера
- # 1 — htop — информативная версия top
- #2 — atop — продвинутый монитор процессов
- #3 — apachetop — мониторинг в реальном времени
- #4 — mytop — мониторинг MySQL
- Системы мониторинга сервера Linux
- 1. Zabbix
- 2. Nagios
- 3. Cacti
- 4. Monit
- 5. Icinga 2
- 6. Observium
- 7. Netdata
- 8. Munin
- 9. Prometheus
- 10. Graphite
- Сборка из агента, базы данных и веб-интерфейса
- Выводы
- TOP’ай сюда
- iotop
- iftop
- powertop
- kerneltop
- dnstop
- jnettop
- sntop
- latencytop
- xrestop
- slabtop
- Software specific
- apachetop
- sqtop
- pg_top
- mytop
- xentop
- offTOP
- nethogs
10 полезных утилит для мониторинга Linux-сервера
Мониторинг сервера — одна из обязанностей администратора, а в этой статье мы рассмотрим некоторые полезные инструменты, позволяющие сделать выполнение этой обязанности комфортнее. В статье будут рассмотрены только простые утилиты, не требующие сложной настройки и даже установки — многие из них устанавливаются по умолчанию.
# 1 — htop — информативная версия top
Команда htop является усовершенствованной версией всем нам знакомой команды top. Кроме информации об использовании системных ресурсов процессами, которая мало чем отличается от команды top, но представлена в более удобном виде, команда htop строит псевдографические графики загрузки каждого ядра процессора, памяти и свопа. В принципе практически то же самое, что и top, но красивее и нагляднее.
htop — более информативная версия top
#2 — atop — продвинутый монитор процессов
Если команда htop — более наглядная версия top, то atop — совсем другая зверушка. Это продвинутый интерактивный монитор производительности. В отличие от top, выводит только новые изменения об активных системных процессах. Позволяет контролировать нагрузку процессора, памяти, накопителя, сети, а также просматривать распределение нагрузок по работающим процессам. В Ubuntu и Debian запускается автоматически и постоянно записывает информацию о процессах в /var/log/atop.log.
atop — монитор производительности
#3 — apachetop — мониторинг в реальном времени
Утилита apachetop не устанавливается по умолчанию, для ее установки нужно инсталлировать одноименный пакет. Опция -f позволяет задать файл access_log, если его расположение отличается от стандартного или если нужно мониторинг журнал доступа определенного виртуального хоста. Предоставляет информацию о текущем положении дел и даже о URL, к которым обращаются в данный момент.
#4 — mytop — мониторинг MySQL
Если есть утилита мониторинга Apache, то, вероятно, должна быть и утилита мониторинга MySQL. Для ее запуска нужно указать три параметра:
- -u — задает имя пользователя;
- -p — задает пароль;
- -d — база данных.
Источник
Системы мониторинга сервера 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, которые вы можете использовать в своих проектах. Конечно, это далеко не все решения, а только лучшие из них. Все программы доступны бесплатно или имеют бесплатную версию. А какие системы мониторинга используете вы для решения своих задач? Что-то было упущено в этом списке? Напишите в комментариях!
Источник
TOP’ай сюда
Обзор практически всех *top утилит под linux (atop, iotop, htop, foobartop и т.д.).
Все мы знаем top — самую простую и самую распространённую утилиту из этого списка. Показывает примерно то же, что утилита vmstat, плюс рейтинг процессов по потреблению памяти или процессора. Совсем ничего не знает про загрузку сети или дисков. Позволяет минимальный набор операций с процессом: renice, kill (в смысле отправки сигнала, убийство — частный случай). По имени top суффикс «-top» получили и все остальные подобные утилиты в этом обзоре.
Atop имеет два режима работы — сбор статистики и наблюдение за системой в реальном времени. В режиме сбора статистики atop запускается как демон и раз в N времени (обычно 10 мин) скидывает состояние в двоичный журнал. Потом по этому журналу atop’ом же (ключ -r и имя лог-файла) можно бегать вперёд-назад кнопками T и t, наблюдая показания atop’а с усреднением за 10 минут в любой интересный момент времени.
В отличие от top отлично знает про существование блочных устройств и сетевых интерфейса, способен показывать их загрузку в процентах (на 10G, правда, процентов не получается, но хотя бы показывается количество мегабит).
Незаменимое средство для поиска источников лагов на сервере, так как сохраняет не только статистику загрузки системы, но и показатели каждого процесса — то есть «долистав» до нужного момента времени можно увидеть, кто этот счастливый момент с LA > 30 создал. И что именно было причиной — IO программ, своп (нехватка памяти), процесор или что-то ещё. Помимо большего количества информации ещё способен двумя цветами подсказывать, какие параметры выходят за разумные пределы.
В отличие от atop, htop не собирает статистику и просто показывает текущее состояние. Второе яркое отличие — нортоноподобная панелька с подсказками кнопок снизу и возможность «навигации» по списку процессов.
Поддерживает выделение процессов и выполнения над ними групповых операций (впрочем, с форк бомбой им не справиться).
Общей статистике по системе показыват мало (зато с шкалой а-ля прогресс-бар), зато имеет обширнейшие инструменты для анализа процессов, включая баловство с скедулингом (приоритеты, affinity), просмотр списка открытых файлов, strace и массу мелких, но приятных фич, таких как контекстный поиск по имени процесса, режим «слежения» за процессом, быстрые операции с процессом и т.д.
iotop
Специализированная утилита для анализа потребления дисковой полосы. К сожалению, не показывает иопсы (это вообще возможно?) Благодаря показу kernel threads способен указать на kcopy/swapper/kflush как источник хруста винта (чего не может atop). Заодно показывает общую загруженность IO системы в Мб/с (чего так же не может atop). Довольно быстрый.
iftop
Опять же, специализированная утилита, позволяющая наблюдать за трафиком в реальном времени. Требует очень рутовых прав и pcap, т.к. работает почти аналогичо tcpdump’у. Показывает загруженность интерфейса (поддерживается только один интерфейс в одной копии), направления трафика и интенсивность трафика.
На средне-загруженном сервере, который внезапно начал жрать инет позволяет очень быстро найти направление, в которое идёт больше всего трафика (в любую сторону). К сожалению, не показывает распределение трафика по процессам.
powertop
Специализированная (ага, снова) утилита от intel для мониторинга потребления мощности (электрической мощности!) разными процессами. В реальности никаких ваттов не показывает, а показывает время, затраченное на обслуживание процессором. Уникальна тем, что показывает прерывания и прочие события ядра на одном уровне с процессами (что позволяет находить нетривиальные ситуации перегрузки сервера и даже определять, от какой железки это исходит). При равной нагрузке позволяет оценить, чей драйвер шустрее работает.
Кроме того, во вкладке device stats позволяет оценить степень загруженности устройства (точнее, драйвера устройства). Для сетевых карт (включая виртуальные, типа tun) показывает pps (packets per seconds).
Во вкладке idle status показывает распределение состояний процессора (C1, C2, C3), что весьма полезно при выяснении «батарейка дохлая или что-то не так с системой?» на ноутбуках.
Ну очень специализированная утилита для мониторинга прерываний (настоящих прерываний, идентификацией их по номеру).
kerneltop
Наверное, должен показывать что-то интересное про ядро. У меня дома ему не понравился System.map, а на сервере — отсутствие /proc/profile.
dnstop
Специализированный анализатор DNS-трафика на интерфейсе. Наверное, был бы очень полезен при починке DNS на контроллере домена, к сожалению, Active Directory на линуксе работает не очень хорошо.
Безусловно полезно для нахождения засранца, загоняющего бинд в неприличный LA.
jnettop
Почти клон iftop, однако имеет забавный режим, когда может слушать соседей и показывать top по их трафику. Не очень работает в эпоху коммутаторов.
Ещё умеет агрегацию адресов (так, чтобы показывать их трафик одной строкой).
sntop
Замечательная штука для скринсейвера или публичного монитора — по конфигу рассылает пинги и показывает, если какой-то хост лёг. В принципе, в рабочих условиях при настроенном конфиге позволяет быстро оценить состояние не очень большого парка серверов (запустили — и сразу красным видно, кто лежит).
latencytop
Я бы с интересом на него посмотрел, но оно требует особого конфига ядра…
xrestop
Монитор потребления ресурсов X-сервера разными приложениями, которые к нему подключились. (Обнаружил, что хром жрёт ресурсов х-сервера много больше, чем опера).
slabtop
Специализируется на структурах данных SLAB ядра, фактически, показывает использование памяти в более тонких категориях, чем «свободно/занято/кеш». View only, несколько режимов сортировки.
Software specific
apachetop
Не столь полезен, как хотелось бы, показывает статистику ответов на запросы. Никакой магии, просто читает логи апача.
sqtop
Топ по логам сквида. С учётом скорости их роста, сначала генерирует промежуточную статистику, а потом уже даёт по ней шариться.
pg_top
Пакет в debian почему-то называется ptop. Мониторит загрузку postgresql.
mytop
Мониторит mysql. Есть альтернативный mtop, делает примерно то же, но заброшен и (в дебиане) выпилен в районе lenny -> squeeze.
xentop
Мониториг доменов xen’а. Интересен тем, что показывает не только память-процессор, но и дисковые операции с сетью. К сожалению, никакого управления, view only. Единственный из всех top’ов, не влазящий в 80 столбцов при выводе.
Список топов, которые я глазами не посмотрел:
hatop — мониторинг haproxy
virt-top — мониторинг за работой libvirt
mctop — мониторинг состояния memcached
perf-top — нашёл документацию, самого perf-top в виде тарбола или пакета не нашёл.
offTOP
Сначала ложные топы кратко:
gkrelmtop — плагин под gkrelm (монитор производительности в гуе) — оффтопик.
ntop — нарушает text-based традицию интерактивных программ и ставится как сайт для апача.
libgtop — библиотека для мониторигна производительности
nload — консольный монитор сетевой активности, в отличие от обычных top’ов не выводит рейтинг, а рисует текстовый график.
А потом настоящие топы без уважительного суффикса ‘top’ в названии.
nethogs
Отображает сетевой трафик от конкретных приложений.
Источник