Linux мониторинг загрузки сервера

16 команд мониторинга Linux-сервера, которые вам действительно нужно знать

Хотите знать, что самом деле происходит на с вашим сервером? Тогда вы должны знать эти основные команды. Как только вы их освоите, вы станете администратором-экспертом в системах Linux.

В зависимости от дистрибутива Linux, вы можете с помощью программы с графическим интерфейсом получить больше информации, чем могут дать эти команды, запускаемые из командной оболочки. В SUSE Linux, например, есть отличное графическое инструментальное средство YaST , предназначенное для конфигурирования и управления системой; также в KDE есть отличное инструментальное средство KDE System Guard .

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

Это также означает, что вы должны запускать графический интерфейс на сервере только тогда, когда это действительно необходимо; не оставляйте его работать. Чтобы достичь оптимальной производительности, сервер Linux должен работать на уровне runlevel 3 , на котором, когда компьютер загружается, полностью поддерживается работа в сети и многопользовательский режим, но графический интерфейс не запускается. Если вам действительно нужно графический рабочий стол, вы всегда можете его открыть с помощью команды startx , выполненной из командной строки.

Если ваш сервер при загрузке запускается в графическом режиме, то вам это нужно изменить. Для этого откройте терминальное окно, с помощью команды su перейдите в режим пользователя root и с помощью вашего любимого текстового редактора откройте файл /etc/inittab .

Как только вы это сделаете, найдите строку initdefault и измените ее с id:5:initdefault: на id:3:initdefault:

Если файла inittab нет, то создайте его и добавьте строку id:3 . Сохраните файл и выйдите из редактора. В следующий раз при загрузке ваш сервер будет загружаться на уровне запуска 3. Если вы после этого изменения не захотите перезагружать сервер, вы также можете с помощью команды init 3 непосредственно задать уровень запуска вашего сервера.

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

iostat

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

meminfo и free

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

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

Вы можете воспользоваться командой free для быстрого «фактографического» взгляда на память. Если кратко, то с помощью команды free вы получите обзор состояния памяти, а с помощью команды meminfo вы узнаете все подробности.

Читайте также:  Как сбросить настройки безопасности windows 10 по умолчанию

mpstat

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

netstat

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

-a — Показывает информацию о всех сокетах

-r — Показывает информацию, касающуюся маршрутизации

-i — Показывает статистику, касающуюся сетевых интерфейсов

-s — Показывает статистику, касающуюся сетевых протоколов

Команда nmon , сокращение от Nigel’s Monitor, является популярным инструментальным средством с открытым исходным кодом, которое предназначено для мониторинга производительности систем Linux. Команда nmon следит за информацией о производительности нескольких подсистем, таких как использование процессоров, использование памяти, выдает информацию о работе очередей, статистику дисковых операций ввода/вывода, статистику сетевых операций, активности системы подкачки и метрические характеристики процессов. Затем вы через «графический» интерфейс команды curses можете в режиме реального времени просматривать информацию, собираемую командой nmon.

Чтобы команда nmon работала, вы должны ее запустить из командной строки. После этого вы можете с помощью нажатий на отдельные клавиши выбирать подсистемы, за работой которых вы хотите проследить. Например, чтобы получить статистику по процессору, памяти и дискам, наберите c , m и d . Вы также можете использовать команду nmon с флагом -f для того, чтобы сохранить статистику в файле CSV для последующего анализа.

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

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

ps и pstree

Команды ps и pstree являются двумя самыми лучшими командами администратора Linux. Они обе выдают список всех запущенных процессов. Команда ps показывает, сколько памяти и процессорного времени используют программы, работающие на сервере. Команда pstree выдает меньше информации, но указывает, какие процессы являются потомками других процессов. Имея эту информацию, вы можете обнаружить неуправляемые процессы и уничтожить их с помощью команды kill , предназначенной для «безусловного уничтожения» процессов в Linux.

Программа sar является инструментальным средством мониторинга, столь же универсальным как швейцарский армейский нож. Команда sar , на самом деле, состоит из трех программ: sar , которая отображает данные, и sa1 и sa2 , которые собирают и запоминают данные. После того, как программа sar установлена, она создает подробный отчет об использовании процессора, памяти подкачки, о статистике сетевого ввода/вывода и пересылке данных, создании процессов и работе устройств хранения данных. Основное отличие между sar и nmon в том, что первая команда лучше при долгосрочном мониторинге системы, в то время, как я считаю, nmon лучше для того, чтобы мгновенно получить информацию о состоянии моего сервера.

strace

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

Читайте также:  Стандартные шрифты windows примеры

tcpdump

Tcpdump является простой и надежной утилитой мониторинга сети. Ее базовые возможности анализа протокола позволяют получить общее представление о том, что происходит в вашей сети. Однако, чтобы по-настоящему разобраться в том, что происходит в вашей сети, вам следует воспользоваться программой Wireshark (см. ниже).

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

uptime

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

vmstat

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

Если ваши приложения занимают слишком много памяти, вы получите чрезмерное значение затрат страниц памяти (page-outs) — программы перемещаются из оперативной памяти в пространство подкачки вашей системы, которое находится на жестком диске. Ваш сервер может оказаться в таком состоянии, когда он тратит больше времени на управление памятью подкачки, а не на работу ваших приложений; это состояние называемое пробуксовкой (thrashing). Когда компьютер находится в состоянии пробуксовки, его производительность падает очень сильно. Команда vmstat , которая может отображать либо усредненные данные, либо фактические значения, может помочь вам определить программы, которые занимают много памяти, прежде, чем из-за них ваш процессор перестанет шевелиться.

Wireshark

Программа wireshark , ранее известная как ethereal (и до сих пор часто называют именно так), является «старшим братом» команды tcpdump , хотя она более сложная и с более расширенными возможностями анализа и отчетности по используемым протоколам. У wireshark есть как графический интерфейс, так и интерфейс командной оболочки. Если вам требуется серьезное администрирование сетей, вам следует использовать программу ethereal. И, если вы используете wireshark/ethereal, я настоятельно рекомендую воспользоваться книгой Practical Packet Analysis Криса Сандера (Chris Sander), рассказывающей о том, как с помощью практического анализа пакетов можно получить максимальную отдачу от этой полезной программы.

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

Источник

10 полезных утилит для мониторинга Linux-сервера

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

# 1 — htop — информативная версия top

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

htop — более информативная версия top

#2 — atop — продвинутый монитор процессов

Если команда htop — более наглядная версия top, то atop — совсем другая зверушка. Это продвинутый интерактивный монитор производительности. В отличие от top, выводит только новые изменения об активных системных процессах. Позволяет контролировать нагрузку процессора, памяти, накопителя, сети, а также просматривать распределение нагрузок по работающим процессам. В Ubuntu и Debian запускается автоматически и постоянно записывает информацию о процессах в /var/log/atop.log.

Читайте также:  Основные понятия для windows

atop — монитор производительности

#3 — apachetop — мониторинг в реальном времени

Утилита apachetop не устанавливается по умолчанию, для ее установки нужно инсталлировать одноименный пакет. Опция -f позволяет задать файл access_log, если его расположение отличается от стандартного или если нужно мониторинг журнал доступа определенного виртуального хоста. Предоставляет информацию о текущем положении дел и даже о URL, к которым обращаются в данный момент.

#4 — mytop — мониторинг MySQL

Если есть утилита мониторинга Apache, то, вероятно, должна быть и утилита мониторинга MySQL. Для ее запуска нужно указать три параметра:

  • -u — задает имя пользователя;
  • -p — задает пароль;
  • -d — база данных.

Источник

Monitorix — за минуту развёртываем мониторинг Linux сервера

Постановка задачи

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

мониторить загрузку сервера в течении суток

динамика загрузки процессора

динамика загрузки оперативной памяти

динамика свободного места на сервере

отправлять алерты при проблемах

слишком подробный сбор статистики

отдельное копание с настройками мониторинга и его GUI

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

Установка Monitorix

Собственно всё, на этом установка закончена.

После запуска будет доступен по адресу ip сервера:8080/monitorix

У меня этот порт уже занят — не хотел на него ещё и мониторинг вешать — поэтому пришлось поменять порт по умолчанию.

Настройки

Настройки лежат в папке /etc/monitorix/ в файле monitorix.conf :

Настройка приложения:

title = Place a title here # Заголовок страницы
hostname = Monitorix test # Имя хоста
theme_color = black # Цвет темы
refresh_rate = 150
iface_mode = graph
enable_zoom = y
netstats_in_bps = n
disable_javascript_void = n
temperature_scale = c
show_gaps = n
global_zoom = 1
max_historic_years = 1
accept_selfsigned_certs = y
include_dir = /etc/monitorix/conf.d
base_dir = /var/lib/monitorix/www/
base_lib = /var/lib/monitorix/
base_url = /monitorix
base_cgi = /monitorix-cgi

Настройка веб сервера:

enabled = y # Включать собственный веб сервер или нет
host = # Адрес который будет прослушивать сервер
port = 8080 # Порт — заменил на 8888
user = nobody
group = nobody
log_file = /var/log/monitorix-httpd
hosts_deny = # Заблокированные хосты
hosts_allow = # Разрешенные хосты

enabled = n
msg = Monitorix: Restricted access
htpasswd = /var/lib/monitorix/htpasswd

В разделе «Graphs (de)activation» мы можем отключить(n) или включить(y) нужные нам графики. Просто ставим напротив нужного графика соответствующую букву: n — отключить, y — включить.

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

после чего применятся все изменения

Установка и настройка мониторинга сервера у меня заняла 2 минуты.

Во всей настройке есть только 1 сложный момент: настройка подключения для мониторинга MySQL — его нужно будет настроить отдельно:

Сначала нужно создать пользователя, через которого будем подключаться к MySQL — назовём его например MonitorixMySQLUser.

В папке /etc/monitorix/ в файле monitorix.conf нужно долистать до пункта # MYSQL graph

conn_type = host #подключаемся через хост

list = localhost #адрес сервера, где развёрнут

localhost = 3306, MonitorixMySQLUser, MonitorixMySQLUserPassword

rigid = 0, 2, 0, 0, 0, 0

limit = 100, 100, 100, 100, 100, 100

При этом есть 1 неочевидный момент: только эта настройка перетирается другой настройкой, которая лежит в папке /etc/monitorix/conf.d/ в файле 00-debian.conf — в нём настроено подключение к MySQL через сокет и его необходимо поменять в соответствии с настройками в файле monitorix.conf. В итоге файл должен выглядеть следующим образом:

# This is the Debian/Ubuntu configuration file to be added in the directory

# /etc/monitorix/conf.d. It will override some default options without having

# to change any line of the main configuration file.

Источник

Оцените статью