Zabbix windows свободное место

Содержание
  1. Мониторинг дисков с помощью zabbix
  2. Zabbix занимает много места. Что делать?
  3. Мониторинг дискового пространства активным Zabbix-агентом
  4. Решение.
  5. Создаём шаблон.
  6. Назначаем шаблон компьютеру
  7. Аренда серверов.
  8. 1С:Предприятие “в облаке”.
  9. IP-телефония в офис.
  10. Мониторинг дискового пространства активным Zabbix-агентом. OLD.
  11. Замечание!
  12. Лирическое отступление.
  13. Лирическое наступление.
  14. “Амбула”.
  15. 1. Устанавливаем на подопечный компьютер Zabbix-агента:
  16. 2. Размещаем в папке C:\zabbix\scripts простенький VBS-скрипт,
  17. 3. Перезапускаем службу zabbix-агента и проверяем, что наши пользовательские параметры работают правильно.
  18. 4. Теперь идём в web-интерфейс вашего Zabbix-сервера и создаём новый шаблон с именем Win_SysDrv_Monitoring.
  19. 5. Назначаем подопечному компьютеру созданный нами шаблон и нажимаем кнопку “обновить”.
  20. 6. Проверяем работу на текущем этапе.
  21. 7. Настраиваем отправку данных по расписанию.
  22. 8. Окончательная проверка.
  23. Аренда серверов.
  24. 1С:Предприятие “в облаке”.
  25. IP-телефония в офис.

Мониторинг дисков с помощью zabbix

Мониторинг производительности дисковых подсистем с помощью zabbix. Мониторятся следующие параметры.

  • утилизация блочного устройства в % — удобная метрика для отслеживания общей нагрузки на устройстве;
  • latency или отзывчивость — доступна как общая отзывчивость, так и отзывчивость на операциях чтения/записи;
  • величина очереди (в запросах) и средний размер запроса (в секторах) — позволяет оценить характер нагрузки и степень загруженности устройства;
  • текущая скорость чтения/записи на устройство в человекопонятных килобайтах;
  • количество запросов чтения/записи (в секунду) объединенных при постановке в очередь на выполнение;
  • iops — величина операций чтения/записи в секунду;

Для работы нам потребуется утилита iostat входящая в пакет sysstat. Устанавливаем sysstat

Создаем директорию для скриптов

Создаем первый скрипт для сбора метрик

Копируем в него следующий текст

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

Даем права на запуск

Создаем файл с ключами zabbix агента

Копируем в него следующие ключи

Скачиваем шаблон для zabbix сервера и устанавливаем.

В итоге должны получить красивые графики, например загрузка диска

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Zabbix занимает много места. Что делать?

Работая с Zabbix, со временем появляется проблема связанная с отсутствием свободного места на сервере. Это связано с хранением большого объема данных. Начав изучать систему, мы нашли, что файл ibdata1 очень сильно разросся. Погуглив и почитав различные форумы, мы нашли пару решений.

1) Сократить период хранения данных в базе и использовать Housekeeper

2) Разбить файл ibdata1 на несколько файлов.

Как говорится начнем с конца, а именно с файла ibdata1.

Файл ibdata1 является частью InnoDB, и хранит в себе данные таблиц, их индексы и другую служебную информацию. Со временем – этот файл может увеличиться до совсем неприличных размеров. Что бы упростить работу с этим файлов – можно разделить его, создав отдельный файл для каждой базы данных и таблицы, с помощью опции innodb_file_per_table.

Перейдем к настройке:

Как и раньше наш Zabbix крутится на ОС Ubuntu 14.10

Узнаем какая у нас версия MySQL

На выводе получаем

Начиная с версии 5.6 опция innodb_file_per_table включена по умолчанию, но т.к. у нас версия MySQL 5.5, то придется сделать некоторые манипуляции.

Создадим директорию куда будут сохранятся бэкапы:

Даем временные права на папку

Останавливаем сервис Zabbix

Далее создадим резервную копию всех имеющихся баз данных.

Проверяем созданный файл.

Смотрим какие базы данных у нас есть.

Далее удаляем все базы данных, кроме mysql и information_schema.

Тормозим сервис MySQL.

Далее удаляем старые файлы.

Далее редактируем файл /etc/mysql/my.cnf

В блоке [mysqld] добавляем строку:

Тут указывается, что InnoDB должен создавать отдельные файлы .ibd и .frm для хранения информации и индексов для каждой таблица, вместо того, что бы хранить их все в одном файле

Читайте также:  Logitech f710 mac os

Второй параметр – задаёт размещение файла ibdata1 (т.к. путь не указан – будет использоваться “хранилище” MySQL – /var/lib/mysql), с начальным размером в 10МБ, и автоматическим увеличением при необходимости до максимум 15ГБ

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

Указанная команда создаст 3 файла ibdata1, ibdata2 по 2Гб каждый и файл ibdata3 размером 100Мб. Если этого будет мало, файл ibdata3 будет рости до 2Гб.

Запускаем сервис MySQL.

Восстанавливаем базы данных.

Запускаем утилитку MySQL_Upgrade, для генерации новой базы performance_schema.

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

Теперь рассмотрим, как сократить период хранения данных в Zabbix.

В GUI Zabbix переходим в каталог Administration->General->Housekeeping.

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

Необходимо, чтобы стояли все галки Enable internal housekeeping, таким образом сам Zabbix будет чистить базу MySQL от старых данных.

Мониторинг дискового пространства активным Zabbix-агентом

Для того, чтобы при помощи активного агента Zabbix следить за дисковым пространством компьютера, как оказалось, не нужно писать скриптов. Совсем. 🙂 Все уже умеет делать активный Zabbix-агент “из коробки”. Достаточно создать шаблон и назначить его компьютеру. Всё.

А теперь по порядку.

Сферический компьютер в вакууме. Нужно следить за заполненностью системного диска Windows. Предположим, что у нас всё стандартно, поэтому в качестве буквы системного диска используется “C:”.

Решение.

При помощи активного агента Zabbix будем собирать 4 параметра диска “C:”:

  • общий размер диска
  • размер занятого места
  • размер свободного места
  • процент свободного места.

На основании этих параметров создадим 4 триггера:

  • Предупреждение. Свободно менее 20%
  • Средняя важность. Свободно менее 10%
  • Высокая важность. Свободно менее 1 Гб.
  • Чрезвычайная важность. Свободно менее 100 Мб.

И создадим 2 графика:

  • Размер свободного места
  • Размер свободного места в процентах.

Создаём шаблон.

Имя шаблона: Active Computer – SystemDrive
Группа данных: Filesystems
Элементы данных:

  • SystemDriveSizeFree – vfs.fs.size[“c:”,free]
  • SystemDriveSizePFree – vfs.fs.size[“c:”,pfree]
  • SystemDriveSizeTotal – vfs.fs.size[“c:”,total]
  • SystemDriveSizeUsed – vfs.fs.size[“c:”,used]

Триггеры:

    Предупреждение. Меньше 20% свободно на системном диске компьютера

Назначаем шаблон компьютеру

И начинаем получать данные… 🙂

Аренда серверов.

Надёжные сервера с Pro-бегом
У ВАС В ОФИСЕ
!

1С:Предприятие “в облаке”.

Безопасный доступ к своей 1С из офиса, командировки и т.п.!

IP-телефония в офис.

IP-телефония давно перестала быть роскошью в офисах.
Хотите себе в офис цифровую АТС — обращайтесь.
!

Мониторинг дискового пространства активным Zabbix-агентом. OLD.

Замечание!

Это немного устаревшая статья. Описанный в ней способ сейчас мною не используется. Использую более простой способ, который описан тут: Мониторинг дискового пространства активным Zabbix-агентом

Лирическое отступление.

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

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

При использовании агента в пассивном режиме прямо “из коробки” доступно много “вкусных плюшек”: слежение за нагрузкой сетевых адаптеров, наблюдение за дисковой подсистемой, слежение за свободным местом на всех дисках, слежение за системными журналами и прочее…

А что делать, если агент находится за NAT? Понятно, что без проброса портов сервер не может отправить команду агенту напрямую, и работа агента в этом случае возможна только в активном режиме… Но при этом очень хочется иметь данные, например, о количестве свободного места на дисках!

Всё? Приплыли? Ничуть!

Лирическое наступление.

Итак, ставим задачу: следить за системным диском (%systemdrive%) подопечного компьютера, а именно за количеством свободного места на нём.

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

Усложним себе задачу. 🙂

Пробрасывать порты не будем. Новомодные инструменты типа Windows PowerShell использовать не будем потому, что PowerShell на некоторых системах просто нет.

Будем использовать командную строку, встроенный планировщик заданий и немного VBS-скриптов.

Ну… Это всё была преамбула, теперь наступил черёд “амбулы”.

“Амбула”.

1. Устанавливаем на подопечный компьютер Zabbix-агента:

  • Путь установки программы: C:\zabbix
  • Папку с самописными скриптами располагаем тут: C:\zabbix\scripts
  • Файл с настройками тут: C:\zabbix\zabbix_agentd.win.conf

Т.к. этот агент будет располагаться за NAT и не будет иметь возможности получать команды от сервера, то одержимое файла с настройками будет примерно таким:

LogFile=c:\zabbix\zabbix_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

### Процент свободного места на системном диске ###
UserParameter=Win_SysDrv_PercentFreeSpace, C:\Windows\System32\cscript.exe C:\zabbix\scripts\WinDriveInfo.vbs %SystemDrive% PercentFreeSpace
# Проверить
# C:\zabbix\zabbix_agentd.exe -c c:\zabbix\zabbix_agentd.win.conf -t Win_SysDrv_PercentFreeSpace

### Общий размер системного диска ###
UserParameter=Win_SysDrv_TotalSize, C:\Windows\System32\cscript.exe C:\zabbix\scripts\WinDriveInfo.vbs %SystemDrive% TotalSize
# Проверить
# C:\zabbix\zabbix_agentd.exe -c c:\zabbix\zabbix_agentd.win.conf -t Win_SysDrv_TotalSize

### Размер свободного пространства на системном диске ###
UserParameter=Win_SysDrv_FreeSpace, C:\Windows\System32\cscript.exe C:\zabbix\scripts\WinDriveInfo.vbs %SystemDrive% FreeSpace
# Проверить
# C:\zabbix\zabbix_agentd.exe -c c:\zabbix\zabbix_agentd.win.conf -t Win_SysDrv_FreeSpace

В самом конце я описал 3 (три) пользовательских параметра, которые мне хотелось бы отсылать на сервер:

  • UserParameter=Win_SysDrv_PercentFreeSpace
  • UserParameter=Win_SysDrv_TotalSize
  • UserParameter=Win_SysDrv_FreeSpace

%SystemDrive% – это, как вы догадались, имя системного диска Windows. 🙂

Чтобы автоматизировать процесс установки использую простенький скриптик: Zabbix_Install.bat

2. Размещаем в папке C:\zabbix\scripts простенький VBS-скрипт,

Он, собственно, и будет собирать нужные нам данные. Назвал я его так: c:\zabbix\scripts\WinDriveInfo.vbs

Вот небольшая инструкция по использованию скриптика:

– имя диска, свойства которого нужно получить

– свойство, которое нужно получить

VolumeName — Название тома(не C:\, именно название)
TotalSize — Полный размер диска В БАЙТАХ
FreeSpace — Свободное место на диске В БАЙТАХ
SerialNumber — c серийный номер жёсткого диска
DriveLetter — буква, назначенная диску (без всяких : и :\)
DriveType — тип диска(съёмный, не съёмный, сетевой, CD-ROM или RAM-диск)
FileSystem — файловая система диска(FAT32, NTFS и т.д.)
RootFolder — путь к корневой папке(для диска С — C:\)
Path — то же, что и RootFolder, но вернёт он C: , без \
IsReady — доступность диска в данный момент(True или False)
PercentFreeSpace – процент свободного места на диске с точностью до сотых

trap – использовать zabbix_sender для отправки данных на zabbix-сервер,
notrap (по умолчанию) – не использовать zabbix_sender для отправки данных.

Важно. Т.к. скрипт я писал для себя, то в нём нет защиты от дурака и особо нет контроля передаваемых скрипту параметров. Кому нужно, можете сами дописать. 🙂

3. Перезапускаем службу zabbix-агента и проверяем, что наши пользовательские параметры работают правильно.

Т.е. последовательно выполняем 3 команды:

  • C:\zabbix\zabbix_agentd.exe -c c:\zabbix\zabbix_agentd.win.conf -t Win_SysDrv_PercentFreeSpace
  • C:\zabbix\zabbix_agentd.exe -c c:\zabbix\zabbix_agentd.win.conf -t Win_SysDrv_TotalSize
  • C:\zabbix\zabbix_agentd.exe -c c:\zabbix\zabbix_agentd.win.conf -t Win_SysDrv_FreeSpace

Вот пример корректной работы первой команды:

Видно, что у меня на диске 75,12% свободного места. 🙂

Если ошибок нет, продолжаем дальше…

4. Теперь идём в web-интерфейс вашего Zabbix-сервера и создаём новый шаблон с именем Win_SysDrv_Monitoring.

При создании элементов данных указываем, что получать мы их будем при помощи Zabbix траппера.

Приведу скриншоты уже настроенного шаблона.

Особо ленивые могут скачать готовый шаблон тут: Win_SysDrv_Monitoring.xml

5. Назначаем подопечному компьютеру созданный нами шаблон и нажимаем кнопку “обновить”.

6. Проверяем работу на текущем этапе.

Идём в Мониторинг, заходим в последние данные, выбираем нужный нам подопечный компьютер и видим… Ничего мы не видим. Данные не попадают на сервер.

Потому, что пользовательские параметры, описанные нами в конце конфигурационного файла, Zabbix-агент отправляет на сервер только по прямому запросу с этого самого сервера. А агент-то находится за NAT, т.е. сервер отдать команду агенту не может, ведь порт с сервера на агента мы тоже не пробросили…

Получается, что агент про параметры знает, но отправлять их на сервер не будет: “Команды не было!”. 🙂

Получается, что нам нужно как-то самим отправлять данные на сервер по расписанию.

7. Настраиваем отправку данных по расписанию.

Идём в управление подопечным компьютером и в планировщике заданий создаём новую папку с именем Zabbix.

В этой папке создаём три простых задачи, которые будут работать от имени пользователя “система”, и по нужному вам расписанию выполнять сбор данных, а потом эти данные будут отправлять на сервер

Задача Win_SysDrv_FreeSpace должна выполнять команду

C:\Windows\System32\cscript.exe C:\zabbix\scripts\WinDriveInfo.vbs %SystemDrive% FreeSpace TRAP

Задача Win_SysDrv_TotalSize должна выполнять команду

C:\Windows\System32\cscript.exe C:\zabbix\scripts\WinDriveInfo.vbs %systemdrive% TotalSize TRAP

Задача Win_SysDrv_PercentFreeSpace должна выполнять команду

C:\Windows\System32\cscript.exe C:\zabbix\scripts\WinDriveInfo.vbs %SystemDrive% PercentFreeSpace TRAP

Смысл каждой команды следующий: мы просим интерпретатор cscript запустить на выполнение скрипт WinDriveInfo.vbs с нужными нам параметрами.

ВАЖНО.

Если вы в качестве “Программы или сценария” укажете не интерпретатор cscript, а выберете непосредственно сам скрипт, то ваша задача стартует, но НЕ ЗАВЕРШИТСЯ!!

Причина очень проста: по умолчанию в Windows используется интерпретатор wscript. а он команду .Echo выводит не в консоль, как нам нужно, а выбрасывает MsgBox c кнопкой, которую, конечно же, будет некому нажать…

ТОЖЕ ВАЖНО.

Обязательно используйте 3 (третий) параметр скрипта TRAP. Именно благодаря этому параметру скрипт будет понимать, что полученные данные нужно не передавать Zabbix-агенту, а отправлять их сразу непосредственно на ваш Zabbix-сервер.

8. Окончательная проверка.

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

Я взял данные с реального компьютера клиента:

Видно, что на системном диске мало места… И, да. На панели тут же отобразилось предупреждение.

Пы.Сы.

Я описал реальный работающий способ в виде “как есть”.

В нём есть некоторые недочёты, которые потом будут исправляться, но этот пример может кому-то помочь решать свои задачи.

УДАЧИ.

Аренда серверов.

Надёжные сервера с Pro-бегом
У ВАС В ОФИСЕ
!

1С:Предприятие “в облаке”.

Безопасный доступ к своей 1С из офиса, командировки и т.п.!

IP-телефония в офис.

IP-телефония давно перестала быть роскошью в офисах.
Хотите себе в офис цифровую АТС — обращайтесь.
!

Читайте также:  Скринсейверы для windows 10 космос
Оцените статью