Долгое время мы не публиковали статей по Zabbix-у и не делали ничего по мониторингу через FSNAME и FSTYPE. Связано это с тем, что у нас было много еще задумок, которые мы смогли реализовать. Но теперь у нас есть время, и мы готовы подарить вам целый гайд на тему – Как мониторить Windows FileSystem через FSNAME.
- Как настроить мониторинг Windows FileSystem через FSNAME в ZABBIX?
- Мониторинг дискового пространства активным Zabbix-агентом. OLD.
- Замечание!
- Лирическое отступление.
- Лирическое наступление.
- “Амбула”.
- 1. Устанавливаем на подопечный компьютер Zabbix-агента:
- 2. Размещаем в папке C:zabbixscripts простенький VBS-скрипт,
- 3. Перезапускаем службу zabbix-агента и проверяем, что наши пользовательские параметры работают правильно.
- 4. Теперь идём в web-интерфейс вашего Zabbix-сервера и создаём новый шаблон с именем Win_SysDrv_Monitoring.
- 5. Назначаем подопечному компьютеру созданный нами шаблон и нажимаем кнопку “обновить”.
- 6. Проверяем работу на текущем этапе.
- 7. Настраиваем отправку данных по расписанию.
- 8. Окончательная проверка.
- Аренда серверов.
- 1С:Предприятие “в облаке”.
- IP-телефония в офис.
- Zabbix + Iostat: мониторинг дисковой подсистемы
- Мониторинг производительности дисковой подсистемы при помощи zabbix и block stat
- Небольшое отступление
- Мониторинг дисков в zabbix
- Утилизация дисковой подсистемы
- Время обработки запроса
- Пропускная способность
- Количество операций ввода-вывода в секунду
- Заключение
- Zabbix: LLD-мониторинг дисков без UserParameter и скриптов на агентах
- Настройка агента
- Smartmontools
- Скрипт
- Шаблон
- 🎥 Видео
Видео:15. Как мониторить место на диске в Windows c Zabbix 6.4? /check disks/windows/free scpace/Zabbix/Скачать
Как настроить мониторинг Windows FileSystem через FSNAME в ZABBIX?
Для начала небольшой обзор: этот тип мониторинга относится к низкоуровневому обнаружению. Оно позволяет автоматически создавать элементы данных, триггеры и графики для различных объектов. Например необходимо мониторить Windows FileSystem и свободное место на дисках. Чтобы использовать #FSNAME нам необходимо проделать ряд действий. Давайте начнем.
На данной странице нажимаем кнопку: Создать правило обнаружения
На появившейся странице заполняем поля по стандарту. Особое внимание необходимо уделить полю “Ключ”. В него обязательно нужно вписать vfs.fs.discovery. Так мы указываем, что ключу необходимо опрашивать файловые системы узла сети.
Переходим на вкладку “Фильтры”, и здесь уже находим то, что нам необходимо. Нам необходим макрос . В первую строчку пишем следующие значения(фигурные скобки тоже копируем, кому необходимо):
совпадает/matshec ^C|^D|^E
Данный способ позволяет нам мониторить диски C;D;E; и сразу же к ним обращаться, если точнее, то значения описанные в поле напротив макроса это регулярные выражения. Подробнее о них вы можете узнать из гугла.
Фильтрация возможна по типам файловой системы через макрос например, “^ext|^reiserfs”. Помимо этого есть специально разработанный под Windows макрос, позволяющий фильтровать тип самого диска например, “fixed”.
Нажимаем кнопку Добавит. Далее нас переносит обратно на страницу настройки правил обнаружения. Как только правило будет создано, нам необходимо создать прототип элемента данных этого правила со следующими параметрами:
В моем случае определились абсолютно все файловые системы, которые были найдены на сервере gsasql29v. Таким образом мы можем подключать автообнаружение файловых систем к большому количеству серверов, что сократит развертывание мониторинга.
Видео:ZABBIX - Мониторинг Windows FileSystem через FSNAME и FSTYPEСкачать
Мониторинг дискового пространства активным Zabbix-агентом. OLD.
Замечание!
Это немного устаревшая статья. Описанный в ней способ сейчас мною не используется. Использую более простой способ, который описан тут: Мониторинг дискового пространства активным Zabbix-агентом
Лирическое отступление.
В Zabbix, как многие помнят, агент, устанавливаемый на подопечный компьютер, может работать в двух режимах: активном и пассивном.
При работе в активном режиме агент сам собирает какие-то данные с компьютера и затем с заданной периодичностью отсылает их на сервер. В пассивном режиме агент выдает минимальный набор данных самостоятельно, а все остальные данные исключительно по запросу с сервера.
При использовании агента в пассивном режиме прямо “из коробки” доступно много “вкусных плюшек”: слежение за нагрузкой сетевых адаптеров, наблюдение за дисковой подсистемой, слежение за свободным местом на всех дисках, слежение за системными журналами и прочее…
А что делать, если агент находится за NAT? Понятно, что без проброса портов сервер не может отправить команду агенту напрямую, и работа агента в этом случае возможна только в активном режиме… Но при этом очень хочется иметь данные, например, о количестве свободного места на дисках!
Всё? Приплыли? Ничуть!
Лирическое наступление.
Итак, ставим задачу: следить за системным диском (%systemdrive%) подопечного компьютера, а именно за количеством свободного места на нём.
Следить можно за всеми дисками, но наиболее важно, по-моему, иметь данные о количестве свободного места как раз на системном диске. Если на каком-то другом диске закончится свободное место, пользователь сам это заметит и сообщит о такой неприятности, при этом система продолжит нормальную работу. Если же на системном диске закончится свободное пространство, стабильную работу системы гарантировать сложно.
Усложним себе задачу. 🙂
Пробрасывать порты не будем. Новомодные инструменты типа Windows PowerShell использовать не будем потому, что PowerShell на некоторых системах просто нет.
Будем использовать командную строку, встроенный планировщик заданий и немного VBS-скриптов.
Ну… Это всё была преамбула, теперь наступил черёд “амбулы”.
“Амбула”.
1. Устанавливаем на подопечный компьютер Zabbix-агента:
Т.к. этот агент будет располагаться за NAT и не будет иметь возможности получать команды от сервера, то одержимое файла с настройками будет примерно таким:
LogFile=c:zabbixzabbix_agentd.log
Server=xx.yy.zz.yy
ServerActive=xx.yy.zz.yy
Hostname=hostname.mihanik.net
StartAgents=0
RefreshActiveChecks=120
EnableRemoteCommands=1
####### USER-DEFINED MONITORED PARAMETERS #######
####### Слежение за свойствами диска #######
# Для Windows
В самом конце я описал 3 (три) пользовательских параметра, которые мне хотелось бы отсылать на сервер:
%SystemDrive% – это, как вы догадались, имя системного диска Windows. 🙂
Чтобы автоматизировать процесс установки использую простенький скриптик: Zabbix_Install.bat
2. Размещаем в папке C:zabbixscripts простенький VBS-скрипт,
Он, собственно, и будет собирать нужные нам данные. Назвал я его так: c:zabbixscriptsWinDriveInfo.vbs
Вот небольшая инструкция по использованию скриптика:
– имя диска, свойства которого нужно получить
– свойство, которое нужно получить
trap – использовать zabbix_sender для отправки данных на zabbix-сервер,
notrap (по умолчанию) – не использовать zabbix_sender для отправки данных.
Важно. Т.к. скрипт я писал для себя, то в нём нет защиты от дурака и особо нет контроля передаваемых скрипту параметров. Кому нужно, можете сами дописать. 🙂
3. Перезапускаем службу zabbix-агента и проверяем, что наши пользовательские параметры работают правильно.
Т.е. последовательно выполняем 3 команды:
Вот пример корректной работы первой команды:
Видно, что у меня на диске 75,12% свободного места. 🙂
Если ошибок нет, продолжаем дальше…
4. Теперь идём в web-интерфейс вашего Zabbix-сервера и создаём новый шаблон с именем Win_SysDrv_Monitoring.
При создании элементов данных указываем, что получать мы их будем при помощи Zabbix траппера.
Приведу скриншоты уже настроенного шаблона.
Особо ленивые могут скачать готовый шаблон тут: Win_SysDrv_Monitoring.xml
5. Назначаем подопечному компьютеру созданный нами шаблон и нажимаем кнопку “обновить”.
6. Проверяем работу на текущем этапе.
Идём в Мониторинг, заходим в последние данные, выбираем нужный нам подопечный компьютер и видим… Ничего мы не видим. Данные не попадают на сервер.
Потому, что пользовательские параметры, описанные нами в конце конфигурационного файла, Zabbix-агент отправляет на сервер только по прямому запросу с этого самого сервера. А агент-то находится за NAT, т.е. сервер отдать команду агенту не может, ведь порт с сервера на агента мы тоже не пробросили…
Получается, что агент про параметры знает, но отправлять их на сервер не будет: “Команды не было!”. 🙂
Получается, что нам нужно как-то самим отправлять данные на сервер по расписанию.
7. Настраиваем отправку данных по расписанию.
Идём в управление подопечным компьютером и в планировщике заданий создаём новую папку с именем Zabbix.
В этой папке создаём три простых задачи, которые будут работать от имени пользователя “система”, и по нужному вам расписанию выполнять сбор данных, а потом эти данные будут отправлять на сервер
Задача Win_SysDrv_FreeSpace должна выполнять команду
C:WindowsSystem32cscript.exe C:zabbixscriptsWinDriveInfo.vbs %SystemDrive% FreeSpace TRAP
Задача Win_SysDrv_TotalSize должна выполнять команду
C:WindowsSystem32cscript.exe C:zabbixscriptsWinDriveInfo.vbs %systemdrive% TotalSize TRAP
Задача Win_SysDrv_PercentFreeSpace должна выполнять команду
C:WindowsSystem32cscript.exe C:zabbixscriptsWinDriveInfo.vbs %SystemDrive% PercentFreeSpace TRAP
Смысл каждой команды следующий: мы просим интерпретатор cscript запустить на выполнение скрипт WinDriveInfo.vbs с нужными нам параметрами.
ВАЖНО.
Если вы в качестве “Программы или сценария” укажете не интерпретатор cscript, а выберете непосредственно сам скрипт, то ваша задача стартует, но НЕ ЗАВЕРШИТСЯ!!
ТОЖЕ ВАЖНО.
Обязательно используйте 3 (третий) параметр скрипта TRAP. Именно благодаря этому параметру скрипт будет понимать, что полученные данные нужно не передавать Zabbix-агенту, а отправлять их сразу непосредственно на ваш Zabbix-сервер.
8. Окончательная проверка.
Идём в Мониторинг, заходим в последние данные, выбираем нужный нам подопечный компьютер и видим, что данные потекли…
Я взял данные с реального компьютера клиента:
Видно, что на системном диске мало места… И, да. На панели тут же отобразилось предупреждение.
Пы.Сы.
Я описал реальный работающий способ в виде “как есть”.
В нём есть некоторые недочёты, которые потом будут исправляться, но этот пример может кому-то помочь решать свои задачи.
УДАЧИ.
Аренда серверов.
Надёжные сервера с Pro-бегом
У ВАС В ОФИСЕ!
1С:Предприятие “в облаке”.
Безопасный доступ к своей 1С из офиса, командировки и т.п.!
IP-телефония в офис.
Видео:6. Как мониторить Windows в Zabbix 6.0 ? / Windows Server / Zabbix 6Скачать
Zabbix + Iostat: мониторинг дисковой подсистемы
Zabbix + Iostat: мониторинг дисковой подсистемы.
Зачем?
Дисковая подсистема одна из важных подсистем сервера и от уровня нагрузки на дисковую подсистему зачастую зависит очень многое, например скорость отдачи контента или то как быстро будет отвечать база данных. Это в большей степени относится к почтовым или файловым серверам, серверам БД. Вобщем, показатели дисковой производительности отслеживать нужно. На основании графиков производительности дисковой подсистемы мы можем принять решение о необходимости наращивания мощностей задолго до того как петух клюнет. Да и вобще полезно поглядывать от релиза к релизу как работа разработчиков сказывается на уровне нагрузки.
Под катом, о мониторинге и о том как настроить.
Зависимости:
Мониторинг реализован через zabbix агента и две утилиты: awk и iostat (пакет sysstat). Если awk идет в дистрибутивах по умолчанию, то iostat требуется установить с пакетом sysstat (тут отдельное спасибо Sebastien Godard и сотоварищи).
Известные ограничения:
Для мониторинга нужен sysstat начиная с версии 9.1.2, т.к. там есть очень важное изменение: «Added r_await and w_await fields to iostat’s extended statistics». Так что следует быть внимательным, в некоторых дистрибутивах, например в CentOS немного «стабильная» и менее фичастая версия sysstat.
Если же отталкиваться от версии zabbix (2.0 или 2.2) то тут вопрос не принципиален, работает на обоих версиях. На 1.8 не заработает т.к. используется Low level discovery.
Где взять:
Итак, мониторинг состоит из файла конфигурации для агента, двух скриптов для сбора/получения данных и шаблон для веб-интерфейса. Все это доступно в репозитории на Github, поэтому любым доступным способом (git clone, wget, curl, etc. ) скачиваем их на машины которые хотим замониторить и переходим к следующему пункту.
Таким образом, проверяем с сервера мониторинга что iostat.conf подгрузился и отдает информацию, заодно смотрим что LLD работает. В качестве ответа вернется JSON с именами обнаруженных устройств. Если ответа не пришло, значит что-то сделали не так.
Также есть такой момент, что zabbix server не дожидается выполнения некоторых item’ов со стороны агентов (iostat.collect). Для этого следует увеличить значения Timeout.
Как настроить в web интейрфейс:
Теперь остался шаблон iostat-disk-utilization-template.xml. Через веб интерфейс импортируем его в раздел шаблонов и назначем на наш хост. Тут все просто. Теперь остается ждать примерно один час, такое время установлено в LLD правиле (тоже настраивается). Или можно поглядывать в Latest Data наблюдаемого хоста, в раздел Iostat. Как только там появились значения, можно перейти в раздел графиков и понаблюдать за первыми данными.
И напоследок тройка скринов графиков c локалхоста))):
Непосредственно данные в Latest Data:
Графики отзывчивости (Latency):
График утилизации и IOPS:
Вот и собственно и все, спасибо за внимание.
Ну и по традиции, пользуясь случаем передаю привет Федорову Сергею (Алексеевичу) 🙂
Видео:Zabbix | Проверка состояния жесткого диска S.M.A.R.T #itskills #сисадминСкачать
Мониторинг производительности дисковой подсистемы при помощи zabbix и block stat
Вряд ли кто-то будет спорить, что наблюдение за производительностью дисковой подсистемы — чуть ли не важнейшая задача для всех высоконагруженных систем хранения и баз данных. Я изначально столкнулся с этим давным-давно, еще когда приходилось наблюдать за PostgreSQL. В последнее время вернулся к этому вопросу в связи с необходимостью тестирования различных хранилищ.
Сегодня хочу поделиться с сообществом своим текущим опытом на реальном примере zabbix и его связке с block stat.
Небольшое отступление
Я являюсь архитектором баз данных и систем хранения очень высокой производительности и больших объемов. Поэтому часто сталкиваюсь с задачами оценки, как те или иные параметры настройки системы влияют на работу СХД, какие железные конфигурации СХД лучше.
Да есть куча утилит, которая позволит протестировать диски, например тот же fio. Но ничто не сравнится с тестированием реальной нагрузкой.
Когда то давным-давно для этих целей использовал iostat, лютый парсер к нему и gnuplot, и даже написал статейку habr.com/post/165855. Скажу я вам – это жутко неудобно.
Куда как удобнее натравить на систему zabbix и мониторить. А к zabbix можно прикрутить модную Grafana и мониторить красиво. Сразу скажу – выбор zabbix скорее исторический: «потому что он уже был».
Мониторинг дисков в zabbix
Справедливости ради скажу, что в zabbix уже есть встроенные ключи vfs.dev.*, но увы очень мало: скорость чтения и записи, объем.
Практика показывает что ключевые метрики по которым можно оценивать дисковую подсистему это:
Все эти метрики есть в iostat. Но как их положить в zabbix?
Легкое гугление приводит нас к различным парсерам iostat, в том числе и здесь.
Но мне по душе другой вариант, а именно парсинг вывода /sys/class/block/*/stat
Данные в zabbix мы будем собирать при помощи zabbix-agent, создав пользовательские ключи. Для этого в /etc/zabbix/zabbix_agentd.d нужно создать файлик userparameter_custom.vfs.conf примерно со следующим содержимым:
В этом файлике статистики всего 11 колонок, посмотреть их описание можно вот тут.
Колонка №10 это io_tics — количество миллисекунд затраченным устройством на ввод вывод. Как почти все параметры — эта цифра является аккумулятором и постоянно возрастает. Как же получить из них привычные метрики.
Утилизация дисковой подсистемы
Чтобы получить эту цифру — надо взять значение 10 колонки файла статистики и запомнить его в zabbix как скорость изменения в секунду, не забыв умножить на 0.1 так как значение в статистике в миллисекундах, а нам нужны проценты.
Аналогичным образом можно посчитать нагрузку записью/чтением (колонки write_ticks / read_ticks).
Время обработки запроса
Эта метрика аналогична r_svctime и w_svctime для записи и чтения соответственно. По сути это усредненное время обработки запросов за интервал между опросами.
Данная метрика чуть посложнее. Рассмотрим на примере запросов на запись.
Для этого нам понадобится создать три ключа:
Пропускная способность
Метрика показывающая с какой скоростью данные были записаны или прочитаны
Для этой метрики используются колонки №3 read sectors и №5 write sectors. Значение сколько было прочитано или записано «секторов». Точно так же в zabbix сохраняем как изменение за секунду.
Количество операций ввода-вывода в секунду
Эта метрика — те самые пресловутые IOPS
Самая простая метрика — мы ее уже записывали для подсчета svc time это значение колонок №5 write I/Os и №1 read I/Os также сохраненные как скорость в секунду.
Заключение
Этих метрик мне как правило достаточно для того чтобы я мог делать обоснованные выводы. Конечно это не все цифры которые можно получить из файла статистики. Например там есть и число текущих обрабатываемых запросов, и количество запросов которые были объеденены. Но полагаю при необходимости вам не составит труда добавить их по аналогии с описанным.
И да не претендую на авторство — сам метод был когда-то давно загуглен, но за давностью лет ссылки конечно затерялись.
Увы NDA заставляет кое-что подчистить из них, но надеюсь на работоспособность шаблона это не повлияет.
А в шапке скриншот из Grafana прикрученной поверх zabbix — демонстрирующий реальные цифры с одной из тестовых инсталляций.
Видео:Zabbix - настройка мониторинга сервераСкачать
Zabbix: LLD-мониторинг дисков без UserParameter и скриптов на агентах
В предыдущей статье я описал низкоуровневый мониторинг дисков для Windows-машин. Считаю, что статья получилась достаточно успешная. Поэтому пришло время ее фактически уничтожить. Ниже будет описан универсальный прием для Windows- и Linux-машин, для которых вообще не нужны скрипты и UserParameter’ы.
Идея простая: все необходимое от smartmontools Zabbix-сервер будет получать через внешнюю обработку и zabbix_get, парсить и передавать далее в зависимые элементы (появились в Zabbix 3.4). Такие образом не только сокращается количество обращений к наблюдаемому серверу, но и не расходуются его ресурсы, так как парсинг происходит на стороне Zabbix-сервера.
Одно ограничение на данный момент: мониторинг дисков только формата /dev/sd*. Формат /dev/csmi*,* (Intel Matrix RAID) не поддерживается ввиду того, что zabbix_get считает запятую вторым аргументом. Поправьте меня, если я ошибаюсь.
Что понадобится для реализации:
Настройка агента
Единственное, что заслуживает здесь внимания, это необходимость раскомментировать строку EnableRemoteCommands = 1, иначе агент не сможет принимать команды.
Smartmontools
Установка тривиальна и рассматриваться не будет, однако для Linux есть одна необходимость: для того, чтобы запуск проходил без sudo, необходимо установить бит SUID на файл smartctl. Для Ubuntu это — sudo chmod u+s /usr/sbin/smartctl.
Скрипт
В зависимости от вашего файла конфигурации zabbix_server.conf этот скрипт нужно положить в соответствующую директорию на Zabbix-сервер. По умолчанию для Ubuntu это — /usr/lib/zabbix/externalscripts. Не забывайте дать на файл права на выполнение — sudo chmod 775 /usr/lib/zabbix/externalscripts/smartctl.sh.
Шаблон
Ниже я постараюсь подробно описать что же происходит на каждом этапе.
Первый этап: обнаружение доступных дисков sd* с помощью внешней проверки smartctl.sh с ключами и discovery. В ответ сервер получает JSON с дисками, на которых активирована функция SMART. Диски без SMART’а или не sd* не выводятся.
Третий этап: Info и Attr разбираются на зависимые элементы с помощью предобработки регулярными выражениями. Это самая простая часть. Собственно, вам только останется подогнать под себя «регулярку».
Вот и все. Не нужно держать в голове что и куда положить, отключить ли политику выполнения скриптов PS, отслеживать ту же версию PS. А в случае необходимости все изменения производятся на самом Zabbix’е в веб-интерфейсе.
В итоге хотелось бы просто сказать спасибо Алексею alexvl и его команде за качественный продукт, который не перестает радовать новым функционалом. Особенно за предобработку. Жизнь с ней администратору станет гораздо легче.
🎥 Видео
BASH-скрипт мониторинга свободного места на дискеСкачать
Установка Zabbix из готового решения.Скачать
️Мониторинг Windows в Zabbix.Скачать
ZABBIX - Мониторинг сетевых устройств через SNMPСкачать
Система сетевого мониторинга ZABBIX» (возможности, архитектура и планируемые задачи)Скачать
7. Как мониторить VMware Esxi c Zabbix-Server ? / VMware ESXI / Zabbix / MonitoringСкачать
Zabbix Server | Установка и настройкаСкачать
7.1. Агентный мониторинг OC Windows. Инвентаризация. Низкоуровневое обнаружение (Zabbix 5.0)Скачать
Как установить и настроить Zabbix для мониторинга служб, серверов и сетиСкачать
Шаблон Zabbix для мониторинга Active DirectoryСкачать
Zabbix с нуля до короля. Часть 1Скачать
Подключение SMART к Zabbix через zabbix agent 2Скачать
ZABBIX для чайников, для 1С (и не только)Скачать
Мониторинг оборудования MikroTik с помощью ZabbixСкачать