Мониторинг свободного места на диске относится к какому уровню технологического мониторинга
В сегодняшней заметке я наглядно покажу, как мониторить дисковое пространство на подконтрольном Вам сервере под управлением Windows Server 2008 / R2. В работе системного администратора должен быть порядок и предупреждения на раннем этапе спасут многие часы в последствии. Лучше иметь преимущество перед возникнувшей ситуацией.
Если на системе заканчивается свободное место, стабильность её нарушается, останавливается работа. А простой — это потеря денег.
И так, для мониторинга дискового пространства на подконтрольном сервере в систему (Windows Server 2008 / R2) следует поднять роль файлового сервера и в ней же доустановить оснастку File Server Resource Manager.
Start – Control Panel – Administrative Tools – Server Manager – Roles – Add Roles ( добавляем роль – File Services)
И отмечаем галочкой установки оснастки : File Server Resource Manager
На следующем шаге отмечаем логические диски, которые будем мониторить :
На следующем шаге отмечаем, как проводить уведомление :
- Сохранять отчёт в указанную папку
- Уведомлять по почте
По умолчанию оснастка выбирает, что формировать отчёты в каталог:
На следующем шаге проверяем сформированные итоговые данные которые мы указывали шагами выше и нажимаем “Install”, следует также иметь ввиду, что по окончании процедуры инсталляции потребуется перезагрузка сервера.
Теперь чтобы проверить, как выглядит настройка, в полном виде, открываем, установленную оснастку:
Start – Control Panel – Administrative Tools – File Server Resource Manager, раскрываем пункт Quota Managemnet – Quota
И видим настроенный мониторинг дискового пространства на локальном диске “D:”
В Качестве эксперимента создадим на вверенном логическом диске файл , к примеру, в 1Gb и также через оснастку пронаблюдаем, открываем командную строку с правами Администратора и набираем следующую команду:
C:\Users\ekzorchik> fsutil file createnew d:\file.txt 1000000000
File d:\file.txt is created
Открываем оснастку: File Server Resource Manage r и видим, что изменилось процентное соотношение использования диска (47%), а также занятый и свободный объем :
Start – Control Panel – Administrative Tools – File Server Resource Manager, раскрываем пункт Quota Managemnet – Quota
Также можно изменить тип мониторинг, т.е. если занимаемой место на локальном диске исчерпывается, то просто идут уведомления, либо запрещается принудительно запись. Правой кнопкой мыши открываем свойства у “D:” и в ниспадающем меню выбираем – Edit Quota Properties…
В разделе Space limit:
- Hard quota – жёсткое ограничение, т.е. при исчерпании места дальнейшая запись не возможно
- Soft quota – Только мониторинг дискового пространства
Вот собственно и всё, что я Вам хотел Вам рассказать. С уважением, ekzorchik.
В посте собран перечень 20 лучших бесплатных инструментов разбивки, диагностики, шифрования, восстановления, клонирования, форматирования дисков. Вообщем практически все что нужно для базовой работы с ними.
1. TestDisk
TestDisk позволяет восстанавливать загрузочные разделы, удаленные разделы, фиксировать поврежденные таблицы разделов и восстанавливать данные, а также создавать копии файлов с удаленных/недоступных разделов.
Примечание: PhotoRec ето связанное с TestDisk приложением. С его помощью возможно восстановить данные в памяти цифровой камеры на жестких дисках и компакт-дисках. Кроме того можно восстановить основные форматы изображений, аудиофайлы, текстовые документы, HTML-файлы и различные архивы.
При запуске TestDisk предоставляется список разделов жесткого диска, с которыми можно работать. Выбор доступных действий, осуществляемых в разделах, включает: анализ для корректировки структуры (и последующее восстановление, в случае обнаружения проблемы); изменение дисковой геометрии; удаление всех данных в таблице разделов; восстановление загрузочного раздела; перечисление и копирование файлов; восстановление удаленных файлов; создание снапшота раздела.
2. EaseUS Partition Master
EaseUS Partition Master — инструмент для работы с разделами жесткого диска. Он позволяет создавать, перемещать, объединять, разделять, форматировать, изменяя их размер и расположение без потери данных. Также помогает восстанавливать удаленные или потерянные данные, проверять разделы, перемещать ОС на другой HDD/SSD и т.д.
Слева представлен перечень операций, которые можно выполнить с выбранным разделом.
3. WinDirStat
Бесплатная программа WinDirStat проводит анализ использованного места на диске. Демонстрирует, как данные распределяются и какие из них занимают больше места.
Клик по полю в диаграмме выведет на экран рассматриваемый файл в структурном виде.
После загрузки WinDirStat и выбора дисков для анализа, программа сканирует дерево каталога и предоставляет статистику в таких вариантах: список каталогов; карта каталогов; список расширений.
4. Clonezilla
Clonezilla создает образ диска с инструментом клонирования, который также упакован с Parted Magic и первоначально доступен, как автономный инструмент. Представлен в двух версиях: Clonezilla Live и Clonezilla SE (Server Edition).
Clonezilla Live является загрузочным дистрибутивом Linux, позволяющим клонировать отдельные устройства.
Clonezilla SE — это пакет, который устанавливается на дистрибутиве Linux. Он используется для одновременного клонирования множества компьютеров по сети.
5. OSFMount
Использование данной утилиты дает возможность монтировать ранее сделанные образы дисков и представлять их в виде виртуальных приводов, непосредственно просмотривая сами данные. OSFMount поддерживает файлы образов, такие как: DD, ISO, BIN, IMG, DD, 00n, NRG, SDI, AFF, AFM, AFD и VMDK.
Дополнительная функция OSFMount — создание RAM-дисков, находящихся в оперативной памяти компьютера, что существенно ускоряет работу с ними. Для запуска процесса нужно перейти в File > Mount new virtual disk.
6. Defraggler
Defraggler — бесплатная программа для дефрагментации жесткого диска, которая способствует увеличению его скорости и срока службы. Особенностью программы является возможность дефрагментации также и отдельных файлов.
Поддерживает файловые системы NTFS, FAT32 и exFAT.
7. SSDLife
SSDLife — проводит диагностику твердотельного диска, выводит на экран информацию о его состоянии и оценивает предполагаемый срок службы. Поддерживает удаленный мониторинг, управляет уровнем производительности на некоторых моделях жестких дисков.
Благодаря контролю износа SSD можно повысить уровень безопасности данных, вовремя выявлять проблемы. На основе анализа программа делает вывод насколько часто используется твердотельный диск.
8. Darik’s Boot And Nuke (DBAN)
Довольно популярная бесплатная утилита DBAN, применяется для очистки жестких дисков.
В DBAN два основных режима: интерактивный (interactive mode) и автоматический (аutomatic mode). Интерактивный режим позволяет подготовить диск к удалнию данных и выбирать необходимые опции стирания. Автоматический режим очищает все обнаруженные диски.
9. HD Tune
Утилита HD Tune предназначена для работы с жестким диском и SSD. Измеряет уровень чтения-записи HDD/SSD, сканирует ошибки, проверяет состояние диска и выводит на экран информацию о нем.
При запуске приложения, нужно выбрать диск из выпадающего списка и перейти к надлежащей вкладке, чтобы просмотреть информацию.
10. VeraCrypt
VeraCrypt — бесплатное приложение для шифрования с открытым исходным кодом. Используется шифрование на лету.
Проект VeraCrypt создался на основе TrueCrypt с целью усиления методов защиты ключей шифрования.
11. CrystalDiskInfo
CrystalDiskInfo отображает состояние жестких дисков, поддерживающих технологию S.M.A.R.T. Утилита проводит мониторинг, оценивает общее состояние и отображает детальную информацию о жестких дисках (версия прошивки, серийный номер, стандарт, интерфейс, общее время работы и т. д.). У CrystalDiskInfo есть поддержка внешних жестких дисков.
В верхней панели на экране отображаются все активные жесткие диски. Щелчок по каждому из них показывает информацию. Иконки Health Status и Temperature меняют цвет в зависимости от значения.
12. Recuva
Утилита Recuva служит для восстановления случайно удаленных или потерянных файлов. Она сканирует нужный носитель информации, после чего выводит на экран список удаленных файлов. Каждый файл имеет свои параметры (имя, тип, путь, вероятность восстановления, состояние).
Необходимые файлы определяются с помощью функции предпросмотра и отмечаются флажками. Результат поиска можно отсортировать по типу (графика, музыка, документы, видео, архивы) и сразу просмотреть содержимое.
13. TreeSize
Программа TreeSize показывает дерево находящихся на жестком диске директорий с предоставлением информации об их размерах, а также проводит анализ использования дискового пространства.
Размеры папок выводятся на экран от самых больших до самых маленьких. Таким образом становится понятно, какие папки занимают большую часть места.
Примечание: При наличии Defraggler, Recuva и TreeSize, можно инициировать функции Defraggler и Recuva для определенной папки непосредственно из TreeSize — все три приложения эффективно интегрируются.
14. HDDScan
HDDScan — утилита диагностики жесткого диска, используется для тестирования накопителей информации (HDD, RAID, Flash) с целью выявления ошибок. Просматривает S.M.A.R.T. атрибуты, выводит показания датчиков температуры жестких дисков в панель задач и выполняет сравнительный тест чтения-записи.
HDDScan предназначена для тестирования накопителей SATA, IDE, SCSI, USB, FifeWire (IEEE 1394).
15. Disk2vhd
Бесплатная утилита Disk2vhd преобразует действующую физический диск в виртуальный Virtual Hard Disk (VHD) для платформы Microsoft Hyper-V. Причем, VHD-образ можно создавать прямо с запущенной операционной системы.
Disk2vhd создает один VHD-файл для каждого диска с избранными томами, сохраняя информацию о разделах диска и копируя только те данные, которые относятся к выбранному тому.
16. NTFSWalker
Портативная утилита NTFSWalker позволяет проводить анализ всех записей (включая и удаленные данные) в главной файловой таблице MFT диска NTFS.
Наличие собственных драйверов NTFS дает возможность просматривать файловую структуру без помощи Windows на любых носителях чтения компьютера. К просмотру доступны удаленные файлы, обычные файлы, а также подробные атрибуты для каждого файла.
17. GParted
GParted — редактор дисковых разделов с открытым исходным кодом. Осуществляет эффективное и безопасное управление разделами (создание, удаление, изменение размера, перемещение, копирование, проверка) без потери данных.
GParted позволяет создавать таблицы разделов (MS-DOS или GPT), включать, отключать и изменять атрибуты, выравнивать разделы, восстанавливать данные с поврежденных разделов и многое другое.
18. SpeedFan
Компьютерная программа SpeedFan следит за показателями датчиков материнской платы, видеокарты и жёстких дисков, с возможностью регулирования скорости вращения установленных вентиляторов. Есть возможность проводить автоматическую и ручную регулировку.
SpeedFan работает с жесткими дисками с интерфейсом SATA, EIDE и SCSI.
19. MyDefrag
MyDefrag — бесплатный дисковой дефрагментатор, который используется для упорядочивания данных, размещенных на жестких дисках, дискетах, дисках USB и картах памяти.
У программы есть удобная функция работы в режиме скринсейвера, в результате чего дефрагментация будет производится во время, назначенное для запуска хранителя экрана. MyDefrag также позволяет создавать или настраивать собственные сценарии.
20. DiskCryptor
С помощью шифровальной программы DiskCryptor с открытым исходным кодом, можно полностью зашифровать диск (все дисковые разделы, включая системный).
У DiskCryptor довольно высокая производительность — это один из самых быстрых драйверов шифрования дисковых томов. Программа поддерживает FAT12, FAT16, FAT32, NTFS и exFAT файловые системы, позволяя шифровать внутренние или внешние диски.
Поговорим о том, какие уровни мониторинга бывают и что стоит измерять и анализировать в IT-проектах.
Начнем снизу: мониторинг оборудования
Что бы вы ни запускали — у вас всё равно будут серверы в дата-центре, а у них есть определенные параметры производительности. Эти показатели надо мониторить на каждом сервере, обслуживающем ваших клиентов:
- нагрузка на процессор;
- свободное место в оперативной памяти;
- свободное место на жестком диске;
- нагрузка на сеть;
- нагрузка на жесткий диск — количество операций на запись и чтение;
- количество задач, запущенных на исполнение.
Список параметров вполне очевиден. Мониторинг этих значений позволяет диагностировать большую пачку неприятных ситуаций, которые могут привести к полному или частичному коллапсу инфраструктуры.
- Нагрузка близка к критической, ваше железо готово уйти в отказ (пора масштабироваться!).
- Выкатили новую версию кода и как-то быстро закончилась память (или «нас взломали!»).
- Ничего не выкатывали, но после очередной рекламной кампании пришло очень много клиентов и скоро всё упадет.
Для анализа поведения серверов в самом простом виде можно использовать штатные средства контроля по типу htop. Более гибкое и масштабируемое решение — Zabbix — он уже умеет анализировать основные параметры целого кластера серверов и собирать их в одной панели. Такое решение требует настройки со стороны квалифицированного администратора.
Пользователи контейнерных систем могут использовать для мониторинга штатный Kubernetes Dashboard — инструмент поставляется вместе с Kubernetes практически по умолчанию.
Какие промышленные задачи помогает решать технологический мониторинг
1. Планировать техобслуживание и ремонт
Энергетическая компания Shell использует систему мониторинга, чтобы автоматически выявлять угрозы безопасности и оповещать о них сотрудников. Так они успевают среагировать на проблему до того, как произойдет катастрофа.
2. Мониторить станки ЧПУ
ЧПУ-станки — сложное и дорогое оборудование, и важно, чтобы они работали эффективно и без сбоев. Мониторинг позволяет следить за эффективностью их работы и считывать из системы управления информацию о том, сколько времени станок работает, не простаивает ли он, какой у него процент брака. Также датчики позволяют управлять станками удаленно.
«Благодаря мониторингу можно отследить весь производственный процесс и определить, в каком состоянии находится станок — все эти данные доступны прямо в системе управления станком, нужно просто наладить их передачу на сервер. По этой информации легко понять, какую именно работу выполняет оборудование, сколько времени и по какой причине он простаивает, а также какова его реальная производительность.
Однако станки с ЧПУ — это всего 20% от общего станочного парка. Поэтому и нужно разрабатывать датчики и системы, которые умеют работать со старым оборудованием, разработанным еще в прошлом веке».
Мария Пустоходова, менеджер по развитию системы мониторинга «Диспетчер», ГК «Цифра»
На заводе №9 в Свердловской области недавно внедрили систему управления новыми ЧПУ-станками. Она помогает за 30 секунд получать суточный отчет о состоянии всех станков и отправляет на телефон СМС с информацией о поломках или сбоях в работе станков.
3. Анализировать работу оборудования
Датчики позволяют смотреть, как работает оборудование, сколько времени простаивает, какие детали выпускает. С помощью этих данных можно оценить процент брака, анализировать, достаточно ли эффективно производство. А если обнаружен брак — фиксировать, где в работе оборудования произошел сбой, какую проблему нужно устранить.
Производитель мотоциклов Harley Davidson поставил датчики на все станки и в производственные помещения, а потом объединил их в общую сеть. Так собирают информацию о каждом этапе сборки продукта, контролируют микроклимат на производстве и предотвращают брак. В итоге компания сократила расходы и повысила производительность труда сотрудников.
4. Управлять оборудованием удаленно
Датчики позволяют отдавать команды на запуск и остановку оборудования, которое расположено в местах, недоступных человеку: в горячих зонах, глубоких скважинах, шахтах. А также следить за состоянием этого оборудования и не выводить его лишний раз из работы для обслуживания и ремонта.
В Пермском крае работает умная нефтяная скважина «ЛУКОЙЛа». На оборудовании скважины установлены датчики и устройства, которые передают данные о работе и поломках в управляющий центр. Оператор из центра может управлять скважиной дистанционно, что особенно удобно для труднодоступных объектов.
Обычно для этих задач требуются надстройки над системой мониторинга — системы искусственного интеллекта, машинного обучения и аналитики. У VK Cloud Solutions (бывш. MCS) есть готовая IoT-платформа, которая уже умеет собирать и анализировать данные, а также поддерживает решения по автоматизации и машинному обучению. И здесь идей применений может быть множество: от контроля брака до построения цифровых двойников завода.
Система мониторинга промышленного оборудования — это IoT, интернет вещей. Подробнее об этой технологии читайте в нашей статье про обычный и промышленный интернет вещей.
Чтобы обеспечить мониторинг промышленного производства, нужно делать три вещи: собирать информацию с оборудования, обрабатывать и анализировать ее, а затем выводить в удобном для конечных пользователей виде. Разберем каждый процесс и необходимое для него оборудование отдельно.
Поднимаемся выше: мониторинг состояния приложений
Допустим, мониторинг серверов у нас есть и они выглядят адекватно. Памяти много, нагрузка на процессор — незначительная. Наверное, всё хорошо организовано, клиентов немного, всё работает как часы? Может быть. Или всё упало, программы не запущены, клиенты не могут попасть на сервер и выполнить запросы? Тоже может быть.
Какой из вариантов правильный — подскажут метрики приложений.
У любого приложения должны быть параметры, по которым разработчики и администраторы понимают, что программа работает и в ней что-то делается. У каждой программы эти параметры свои, но вот несколько примеров, которые позволят понять, какие метрики нужно придумать для приложения:
- Количество запросов в единицу времени: час, секунду, день, минуту — зависит от обилия трафика в вашей программе.
- Количество активных пользователей в системе в единицу времени.
- Количество различных записей в СУБД — в целом и новых в единицу времени.
- Количество ошибок, которые вы успешно отловили и зарегистрировали.
У вас в системе 100 активных пользователей, они генерируют 1 000 запросов в минуту и у них случается 1 ошибка в час? Допустим, что всё хорошо. У вас в системе 3 активных пользователя, они генерируют 10 000 запросов в минуту и ловят 5 000 ошибок? Наверное, стоит начать беспокоиться. Даже если метрики нагрузки на процессор и диски в порядке.
Для мониторинга на этом уровне подойдет специализированная СУБД — Prometheus, Graphite, InfluxDB. С установкой самой базы данных проблем не будет, а вот посчитать и пробросить нужные метрики в базу — для этого понадобятся усилия программистов.
Для удобства анализа ко всем этим базам лучше всего подключить Grafana — графический инструмент для отображения статистики и метрик.
На платформе VK Cloud Solutions (бывш. MCS) для приложений предоставляется встроенная система мониторинга состояния серверов и приложений, а для Kubernetes предусмотрен мониторинг на базе Prometheus и Grafana, позволяющий отслеживать доступность сервисов.
Есть еще специфические системы отлова ошибок в коде — они могут вовремя оповестить программистов о сбойной ситуации. Иногда этого вполне достаточно для базовой диагностики проблем. Хороший пример такой системы — Sentry.
Небольшое отступление
Я являюсь архитектором баз данных и систем хранения очень высокой производительности и больших объемов. Поэтому часто сталкиваюсь с задачами оценки, как те или иные параметры настройки системы влияют на работу СХД, какие железные конфигурации СХД лучше.
Да есть куча утилит, которая позволит протестировать диски, например тот же fio. Но ничто не сравнится с тестированием реальной нагрузкой.
Однако прежде чем подавать реальную и настоящую нагрузку, неплохо бы сначала протестировать на синтетике. А наблюдать за синтетикой лучше теми же средствами, что и за боевой системой, просто потому, что даже если ваши метрики не совсем верны методологически – они будут хотя бы те же самые и по ним можно будет делать выводы лучше/хуже.
Куда как удобнее натравить на систему zabbix и мониторить. А к zabbix можно прикрутить модную Grafana и мониторить красиво. Сразу скажу – выбор zabbix скорее исторический: «потому что он уже был».
Что такое мониторинг промышленного оборудования
В каждой отрасли промышленности сотни наименований производственного оборудования: станки, компрессоры, насосы, трубопроводы, трансформаторы, конвейеры и многое другое. Система мониторинга позволяет следить за работой оборудования, управлять им удаленно, оценивать температуру и другие параметры среды в цехе, планировать и вовремя проводить техобслуживание и ремонты.
Для этого информацию собирают с помощью датчиков, а потом обрабатывают на специальном программном обеспечении.
С помощью систем мониторинга производственного оборудования можно в масштабах всего завода собирать очевидную информацию — например, когда оборудование работает, а когда простаивает. А можно и скрытую, которую не может уловить человек: появились ли в работе задержки на долю секунды или при каких условиях температура оборудования повышается на градус.
«Если посмотреть на производство глазами руководителя, то для него это выглядит как черный ящик. Он плохо представляет, что там происходит. Система мониторинга позволяет из черного ящика сделать прозрачный аквариум, заглянуть внутрь производства, увидеть все процессы, минуя субъективный фактор — человека. Когда сама машина сообщает тебе, что происходит, это на 100% достоверная информация».
Мария Пустоходова, менеджер по развитию системы мониторинга «Диспетчер», ГК «Цифра»
Заключение
Этих метрик мне как правило достаточно для того чтобы я мог делать обоснованные выводы. Конечно это не все цифры которые можно получить из файла статистики. Например там есть и число текущих обрабатываемых запросов, и количество запросов которые были объеденены. Но полагаю при необходимости вам не составит труда добавить их по аналогии с описанным.
И да не претендую на авторство — сам метод был когда-то давно загуглен, но за давностью лет ссылки конечно затерялись.
Увы NDA заставляет кое-что подчистить из них, но надеюсь на работоспособность шаблона это не повлияет.
А в шапке скриншот из Grafana прикрученной поверх zabbix — демонстрирующий реальные цифры с одной из тестовых инсталляций.
Сложное промышленное оборудование может ломаться или выходить из строя, производственные процессы нужно оптимизировать для снижения издержек, сбои в работе производственных линий и аварии стоит прогнозировать и предупреждать, чтобы избежать серьезных убытков.
Разберемся, как мониторинг промышленного оборудования помогает решать эти проблемы: автоматизировать производство, планировать ремонт и контролировать работу.
Сбор данных с помощью датчиков
Информацию для мониторинга собирают датчики, которые устанавливают на оборудование или в цех. Это небольшие устройства, которые снимают физические показатели: температуру, скорость работы движущихся деталей оборудования, вес и параметры готовых изделий и так далее. Для каждого вида данных нужен свой датчик.
Некоторые датчики не просто собирают информацию — они умеют управлять оборудованием. Это позволяет работать удаленно с любых устройств и использовать систему мониторинга оборудования, чтобы повысить безопасность. Например, отключить сломанное оборудование прямо внутри шахты или контролировать станок в горячем цехе, не подвергая опасности инженеров.
Выбор датчиков зависит от того, какое у вас стоит оборудование и что именно нужно мониторить. Обычно эти датчики устанавливают на движущиеся детали. Если оборудование современное, например ЧПУ, иногда можно обойтись без внешних датчиков: станок уже сам собирает всю нужную информацию и готов передавать ее на сервер.
Обычно покупать датчики по отдельности и пытаться их как-то связать не нужно. На рынке есть готовые системы датчиков, которые уже работают вместе и отвечают конкретным требованиям.
«Есть мнение, что для внедрения системы мониторинга нужно более или менее современное оборудование. Но сейчас разработчики заботятся о том, чтобы даже универсальные и устаревшие станки можно было подключить к системе мониторинга через отдельный контроллер. Также для внедрения потребуются специалисты, которые могут работать с датчиками и клиентским ПО: знают, как его настраивать, устанавливать и поддерживать. Обычно это не какие-то редкие специалисты из-за границы, а обычные инженеры АСУ ТП и КИПиА».
Олег Маковельский, технический директор по направлению IoT и AR, АО «КАДФЕМ Си-Ай-Эс».
Хранение, обработка и анализ данных с помощью системного программного обеспечения
Сами по себе датчики практически бесполезны — они просто собирают огромные объемы информации. Чтобы хранить эти данные, структурировать, обрабатывать, анализировать и использовать для управления производством, нужно специальное программное обеспечение. Оно может быть установлено на серверах компании или развернуто в облаке.
Примерами стандартного ПО для мониторинга производства будут:
- MES-системы. Это системы управления производственными процессами. Они следят за использованием производственных мощностей, помогают отслеживать брак и оповещать персонал о проблемах на производстве, например о нехватке материалов или нарушениях технологии производства.
- Scada. Это ПО, которое собирает и визуализирует информацию о работе оборудования. С его помощью можно отслеживать эффективность работы отдельных станков или всего цеха в целом, управлять оборудованием удаленно и создавать отчеты для руководства и аналитиков.
Также есть другие платформы с дополнительными функциями, которые могут заменить MES и Scada либо дополнить их. Например, у VK Cloud Solutions (бывш. MCS) есть готовая платформа для построения системы мониторинга оборудования. Она развернута в облаке и позволяет арендовать любые нужные для мониторинга мощности, а также разрабатывать собственные решения для оптимизации производства. Платформа умеет собирать и хранить информацию с датчиков, визуализировать данные и оповещать о событиях. Также ее можно интегрировать с системами, которые уже работают у вас на производстве.
Третий уровень: мониторинг бизнес-метрик
Конечная цель любой программы — решать чьи-то проблемы и получать за это деньги. Это значит, что для управленцев нужны метрики, которые расскажут:
Список метрик, которые нужны бизнесу, велик и зависит от конкретного проекта и индустрии. Лучше всего вам помогут разобраться с правильными параметрами менеджеры продукта.
Минимально здесь можно обойтись Google Analytics — базовые конверсии и переходы можно смотреть в готовых системах анализа пользовательского поведения. Более глубокое понимание ситуации потребует четкой и слаженной работы администраторов, программистов и ребят из отдела аналитики — они смогут правильно реализовать и посчитать тонкие поведенческие аспекты. Например, зависимость выручки от A/B-тестов на бэкенде.
Вряд ли кто-то будет спорить, что наблюдение за производительностью дисковой подсистемы — чуть ли не важнейшая задача для всех высоконагруженных систем хранения и баз данных. Я изначально столкнулся с этим давным-давно, еще когда приходилось наблюдать за PostgreSQL. В последнее время вернулся к этому вопросу в связи с необходимостью тестирования различных хранилищ.
Сегодня хочу поделиться с сообществом своим текущим опытом на реальном примере zabbix и его связке с block stat.
Зачем нужен мониторинг и что это такое
Случается, что серверы падают и программы ломаются. Это неизбежно. Случайный баг, скачок напряжения в сети, сбои в подаче электричества — всё это может вызывать поломки.
Кроме того, помимо очевидных проблем, могут быть и куда менее очевидные. Например, менеджеры по продукту приняли плохое решение, реализовали плохую фичу и из-за нового релиза упала выручка. Технически код хорошо работает, серверы в порядке — но бизнес несет убытки.
От обоих типов проблем спасает мониторинг — это постоянный сбор и анализ различных параметров поведения системы. С его помощью можно описать и измерить в числовом выражении каждый важный аспект проекта.
Мониторинг дисков в zabbix
Справедливости ради скажу, что в zabbix уже есть встроенные ключи vfs.dev.*, но увы очень мало: скорость чтения и записи, объем.
А что нужно нам?
Практика показывает что ключевые метрики по которым можно оценивать дисковую подсистему это:
- Количество операций в секунду (ops)
- Пропускная способность (throughput)
- Время обработки запроса (latency или правильней svctime)
- Утилизация дисковой подсистемы (utilization)
Все эти метрики есть в iostat. Но как их положить в zabbix?
Легкое гугление приводит нас к различным парсерам iostat, в том числе и здесь.
Но мне по душе другой вариант, а именно парсинг вывода /sys/class/block/*/stat
- это первоисточник данных — iostat так же использует эти данные
- для разбора показателей можно ограничиться только однострочником в UserParameter без дополнительных скриптов.
- Некоторые параметры необходимо вычислять делением дельты одного на дельту другого, причем не простой, а временной (скорости). В zabbix это сделать можно, но это будут не одновременные запросы, как если бы это делал сложный скрипт, а отношение последних значений, что в принципе не совсем верно, но в нашем случае довольно точно.
Данные в zabbix мы будем собирать при помощи zabbix-agent, создав пользовательские ключи. Для этого в /etc/zabbix/zabbix_agentd.d нужно создать файлик userparameter_custom.vfs.conf примерно со следующим содержимым:
UserParameter=custom.vfs.dev.io.ms[*],cat /sys/class/block/$1/stat | awk ''
Тут все просто — создаем пользовательский ключ custom.vfs.dev.io.ms, в качестве параметра передаем туда имя блочного устройства, значением параметра будет 10 колонка файлика stat.
В этом файлике статистики всего 11 колонок, посмотреть их описание можно вот тут.
Колонка №10 это io_tics — количество миллисекунд затраченным устройством на ввод вывод. Как почти все параметры — эта цифра является аккумулятором и постоянно возрастает. Как же получить из них привычные метрики.
Утилизация дисковой подсистемы
Эта метрика аналогична значению поля utils команды iostat -x. Характеризует загрузку дисковой подсистемы. По сути это сколько процентов реального времени система затратила на операции ввода-вывода за интервал между опросами. Как правило при приближении к 100% система начинает все больше простаивать в ожидании когда диски обработают ваши запросы.
Чтобы получить эту цифру — надо взять значение 10 колонки файла статистики и запомнить его в zabbix как скорость изменения в секунду, не забыв умножить на 0.1 так как значение в статистике в миллисекундах, а нам нужны проценты.
Аналогичным образом можно посчитать нагрузку записью/чтением (колонки write_ticks / read_ticks).
Время обработки запроса
Эта метрика аналогична r_svctime и w_svctime для записи и чтения соответственно. По сути это усредненное время обработки запросов за интервал между опросами.
Данная метрика чуть посложнее. Рассмотрим на примере запросов на запись.
Для этого нам понадобится создать три ключа:
-
write utils — количество времени потраченное на запись — колонка №8 write_ticks сохраненная, как скорость изменения в секунду между опросами. По сути значение ключа в zabbix будет утилизация записью.
Пропускная способность
Метрика показывающая с какой скоростью данные были записаны или прочитаны
Для этой метрики используются колонки №3 read sectors и №5 write sectors. Значение сколько было прочитано или записано «секторов». Точно так же в zabbix сохраняем как изменение за секунду.
Единственный ньюанс - значение в файле указанно «в попугаях-секторах», причем размер этого «сектора» фиксирован 512 байт и не зависит от реальных значений ни физического ни логического сектора устройства (проверял на нескольких устройствах с реальным размером физического сектора 4к). Так что чтобы пересчитать в байты — не забудьте умножить на 512.
Количество операций ввода-вывода в секунду
Эта метрика — те самые пресловутые IOPS
Самая простая метрика — мы ее уже записывали для подсчета svc time это значение колонок №5 write I/Os и №1 read I/Os также сохраненные как скорость в секунду.
Читайте также: