Zabbix disk space windows

Для того, чтобы при помощи активного агента 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% свободно на системном диске компьютера {HOST.NAME} {Active Computer — SystemDrive:vfs.fs.size[«c:»,pfree].last()}<20
  • Средняя .Меньше 10% свободно на системном диске компьютера {HOST.NAME} {Active Computer — SystemDrive:vfs.fs.size[«c:»,pfree].last()}<10
  • Высокая. Меньше 1ГБ свободно на системном диске компьютера {HOST.NAME} {Active Computer — SystemDrive:vfs.fs.size[«c:»,free].last()}<1073741824
  • Чрезвычайная. Меньше 100 Мб свободно на системном диске компьютера {HOST.NAME} {Active Computer — SystemDrive:vfs.fs.size[«c:»,free].last()}<104857600

Теперь то же самое, но в картинках.















Файл с  экспортированным шаблоном можно скачать тут: zbx_export_templates_Active_Computer_SystemDrive.xml

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

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

Ура!!!

Всё работает.


Provide feedback

Saved searches

Use saved searches to filter your results more quickly

Sign up

Appearance settings

  • Windows install zabbix-agent

  • Monitor Windows-CPU usage

  • Monitor Windows-Disk IO performance monitoring

  • Monitor Windows/Linux-disk trigger threshold changes

  • Monitor Windows-Network Card Automatic Discovery Rules

  • Monitor Windows event log

  • Configure server email alarm function

1. Windows server needs to install zabbix-agent agent first

Overview

Zabbix agent is deployed on the monitoring target and actively monitors local resources and applications (hardware drivers, memory, processor statistics, etc.).

Zabbix agent collects local operating information and reports the data to Zabbix server for further processing. Once an exception occurs (such as the hard disk space is full or there is a crashed service process), Zabbix server will actively warn the administrator of the exception on the specified machine.

The extreme efficiency of Zabbix agents is due to the fact that it can use local system calls to collect statistical data.

Passive and active checks

Zabbix agents can perform two inspection methods, passive and active.

Zabbix agent on Windows runs as a Windows service.

You can run a single instance or multiple instances of Zabbix agent on the host.

A single instance can use the default configuration file or the configuration file specified in the command line.

In the case of multiple instances, each agent instance must have its own independent configuration file (one instance can use the default configuration file).

The following command parameters can be used in Zabbix agent:

parameter Description n
UNIX and Windows agent
-c —config <config-file> The absolute path of the configuration file.
You can use this option to develop a configuration file instead of using the default file. \\In UNIX, the default file is /usr/local/etc/zabbix_agentd.conf or passcompile-timeVariable—sysconfdirOr—prefixTo set
In Windows, the default file is c:\zabbix_agentd.conf
-p —print Display known monitoring items and launch
Note: To return user parameters at the same timeuser parameterYou must make a configuration file (if it is not in the specified location).
-t —test <item key> Test the specified monitoring item and exit.
Note: To return user parameters at the same timeuser parameterYou must make a configuration file (if it is not in the specified location).
-h —help Display help information
-V —version Show version number
UNIX agent only
-R —runtime-control <option> Perform management functions. See runtime control.runtime control.
Windows agent only
-m —multiple-agents Use multiple agent instances (use -i,-d,-s,-x ).
In order to distinguish the service name of the instance, each service name will contain the host name value from the configuration file.
Windows agent only (function)
-i —install Install Zabbix Windows agent as a service
-d —uninstall Uninstall Zabbix indows agent service
-s —start Start Zabbix Windows agent service
-x —stop Stop bbix Windows agent service

Unzip the zabbix_agents_3.4.6.win.zip file downloaded above and place it in the c drive

Then you need to modify the zabbix_agentd.win.conf in conf, this is the configuration file

Configuration options that need to be modified:
LogFile=C:\zabbix_agents_3.4.6.win\log\zabbix_agentd.log ##This is the address where the log is stored
Server=192.168.10.10 ##This is the address of the zabbix server
ServerActive=192.168.10.10:10050 ##10050 is the communication port between zabbix-server and zabbix-agent
Hostname=192.168.10.11 ##This fills in the Windows server IP that needs to be monitored

Run cmd with administrator privileges, as shown in the figure below, installed successfully represents success, and then go to the service to start zabbix-agent

##The following command is to start the agentd service
C:\zabbix_agents_3.4.6.win\bin\win64\zabbix_agentd -i -m -c C:\zabbix_agents_3.4.6.win\conf\zabbix_agentd.win.conf

2. Monitor Windows-CPU usage

In zabbix, the default template does not have CPU usage monitoring. To reduce the repetitive work rate, create a template under the template template

Then you can directly associate the relevant template with the newly added monitoring host server next time!

In Configuration—->Templates—->Create Template

Template name: Template Windows CPU usage

Start creating monitoring items after creating the template

Name: CPU usage%

Key value: perf_counter[\Processor(_Total)\% Processor Time]

Information type: floating point

unit:%

After creating a monitoring item, create a new trigger, you can test whether this trigger is useful in the expression builder

Name: cpu used is more than 80%

Severity: Generally serious

Expression: {Template Windows CPU usage:perf_counter[\Processor(_Total)\% Processor Time].avg(5m)}>80

After creating the trigger, add a graph to view the cpu usage chart

Name: CPU usage

Monitoring items:Template Windows CPU usage: CPU usage

After the addition is successful, you can view the CPU graph table, and there is data to indicate successful monitoring!

3. Monitor Windows-Disk IO performance monitoring

Note: This IO template collects the IO data of all physical hard drives of the entire server

For example: The server has a solid state drive and a mechanical hard drive. The data of the solid state drive and the mechanical hard drive are displayed together.

When monitoring database servers, it is best to treat solid state drives and mechanical hard drives separately and use different trigger thresholds

Because it is the sum of all the hard drives on the machine, it is very difficult to distinguish the trigger for the solid state drive and the mechanical hard drive.

IO performance monitoring under WIN is obtained by calling the parameters in the performance counter

At present, it has been counted into a template, which can be used directly. The template includes the graph and the monitoring items shown in the figure above

 4. Monitor Windows-disk trigger threshold changes

Select Configuration—>Template—> (Template OS Linux/Template OS Windows)

I am monitoring Windows, so I modify the template of Windows. If I monitor Linux, I can modify the template of Linux.

The default is to update once an hour, modified to 600 seconds, which means to update once in 10 minutes, after 10 minutes, you can see the monitoring value of the network card and disk!

Select Configuration—>Template—>(Template OS Linux/Template OS Windows)—>Mounted filesystem discovery—>Trigger type

I have modified it here. If there is no modification or this trigger item, you can click on the upper right corner (create trigger prototype)

Name: Free disk space is less than 50GB on volume {#FSNAME}

Expression: {Template OS Windows:vfs.fs.size[{#FSNAME},free].last(0)}<50000000000

Select Configuration—>Template—>(Template OS Linux/Template OS Windows)—>Mounted filesystem discovery—>monitoring item type

I have modified it here, if there is no modification or there is no such monitoring item, you can click on the upper right corner (create monitoring item prototype)

Name: Free disk space on $1

Expression: vfs.fs.size[{#FSNAME},free]

Unit: B

Update interval: 1m or 60s can be

5. Monitor Windows-automatic network card discovery rules

Problem description: This is generally the default windows template which contains automatic discovery of server network cards, but it will automatically find many other network cards and other graphics stuff

Solution: It is useless if you delete the corresponding graphics directly, because the automatic discovery rules will be automatically discovered again, so you need to change the rules

1. In the automatic discovery rules —-> Windows service discovery (this can be disabled)

2. Management—>General—>Regular expression—>Network interfaces for discovery (add the parameters in the figure below, so that the settings will not automatically discover the network cards with these parameters)

1        »Microsoft [Result is false]
2        »Teredo [Result is false]
3        »Qos [Result is false]
4        »WFP [Result is false]
5        »RAS [Result is false]
6        »WAN [Result is false]
7    »    ^Nu[0-9.]*$ [Result is false]
8    »    ^[Ss]ystem$ [result is false]
9    »    ^[Ll]o[0-9.]*$ [Result is false]
10    »    ^NULL[0-9.]*$ [Result is false]
11    »    ^(In)?[Ll]oop[Bb]ack[0-9._]*$ [Result is false]
12    »    ^Software Loopback Interface [Result is false]
13        »Network traffic on Broadcom NetXtreme Gigabit Ethernet [Result is false]

6. Monitor Windows event log

Template name:Template Windows Event Log

Monitoring items:
Application log MSExchangeTransport
eventlog[Application,,,»MSExchangeTransport»,^15004$,,skip]

trigger:
Application log 60S does not appear, restore
{Template Windows Event Log:eventlog[Application,,,»MSExchangeTransport»,^15004$,,skip].nodata(60)}=0

 

trigger:

System Error Diary

{Template Windows Event Log:eventlog[System,,»Error»,,[^],,skip].logeventid(36882)}<>0 and {Template Windows Event Log:eventlog[System,,»Error»,,[^],,skip].logeventid(36888)}<>0 and {Template Windows Event Log:eventlog[System,,»Error»,,[^],,skip].logeventid(36887)}<>0 and {Template Windows Event Log:eventlog[System,,»Error»,,[^],,skip].logeventid(36874)}<>0

trigger:

Diary of all system errors

{Template Windows Event Log:eventlog[System,,»Error»,,[^],,skip].nodata(60)}=0

7. Configure the server mail alarm function

I am using Tencent Enterprise Mailbox

As shown in the figure below, Manage—>Alarm Media Type—>Email

It should be noted that the user name is to write your corporate email account, and the password is to fill in the password

At first I thought it was the name of the email, so I couldn’t send emails. You can use QQ mailbox.

SMTP server: smtp.exmail.qq.com

Port: 465

SMTP email: [email protected]

User name: [email protected]

Configuration—>Action—>Trigger

Create a trigger to send an email alert

operating:

Default title: failure {TRIGGER.STATUS}, server: {HOSTNAME1} occurred: {TRIGGER.NAME} failure!

Message content:

Alarm host: {HOSTNAME1}
Alarm time: {EVENT.DATE}{EVENT.TIME}
Warning level: {TRIGGER.NAME}
Alarm item: {TRIGGER.KEY1}
Question details: {ITEM.NAME}: {ITEM.VALUE}
Current status: {TRIGGER.STATUS}: {ITEM.VALUE1}
Event ID: {ENET.ID}

Recovery operation:

Default title: Restore {TRIGGER.STATUS}, Server: {HOSTNAME1}: {TRIGGER.NAME} has been restored!

Message content:

Alarm host: {HOSTNAME1}
Alarm time: {EVENT.DATE}{EVENT.TIME}
Warning level: {TRIGGER.NAME}
Alarm item: {TRIGGER.KEY1}
Question details: {ITEM.NAME}: {ITEM.VALUE}
Current status: {TRIGGER.STATUS}: {ITEM.VALUE1}
Event ID: {ENET.ID}

Confirm operation:

Default title: Confirmed: {TRIGGER.NAME}

Message content:

{USER.FULLNAME} has confirmed the problem {ACK.DATE} {ACK.TIME} The following message:
{ACK.MESSAGE}

The current problem status is {EVENT.STATUS}

Finally, configure the alarm medium, that is, trigger the alarm condition, send an email to know which mailbox is in

Click on the small avatar, then enter the user’s basic information, select the alarm medium to set

You can choose the severity level by yourself. After the setting is enabled, the alarm function is set!

Для того, чтобы при помощи активного агента 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% свободно на системном диске компьютера {HOST.NAME} {Active Computer — SystemDrive:vfs.fs.size[«c:»,pfree].last()}<20
  • Средняя .Меньше 10% свободно на системном диске компьютера {HOST.NAME} {Active Computer — SystemDrive:vfs.fs.size[«c:»,pfree].last()}<10
  • Высокая. Меньше 1ГБ свободно на системном диске компьютера {HOST.NAME} {Active Computer — SystemDrive:vfs.fs.size[«c:»,free].last()}<1073741824
  • Чрезвычайная. Меньше 100 Мб свободно на системном диске компьютера {HOST.NAME} {Active Computer — SystemDrive:vfs.fs.size[«c:»,free].last()}<104857600

Теперь то же самое, но в картинках.















Файл с  экспортированным шаблоном можно скачать тут: zbx_export_templates_Active_Computer_SystemDrive.xml

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

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

Ура!!!

Всё работает.


This article omits the installation of zabbix server. For the installation of zabbix server, you can check the article I published earlier. Currently, zabbix4.0server is used as an example to monitor the usage of c disk separately. This article does not involve disk writing, just disk space. The usage rate is theoretically universal for all versions.

1. Download zabbix-agent

The current use of Windows2012 system as an example, theories are common to all systems, other systems please self-test!

Https://www.zabbix.com/cn/download_agents#tab:40LTS

Zabbix-agent provides windows (msi) package from 4.0, and it is more convenient to install directly with one button.

Https://assets.zabbix.com/downloads/4.0.13/zabbix_agent-4.0.13-win-amd64-openssl.msi

2, install zabbix-agent

Run the zabbix_agent-4.0.*-win-amd64-openssl.msi installer on a Windows2012 server

After the default installation is complete, zabbix-agent will be automatically added to the Windows system service and automatically started. Please note that there is a firewall to open the port 10050 , otherwise zabbix-server can not get the data.

So simple zabbix-agent installation is complete, the rest of the steps are all in zabbix-server!

3, zabbix_get verification

Verify that the data can be obtained by zabbix_get command on zabbix-server

1 zabbix_get – s agent端的IP地址 – k “vfs.fs.size[c:,total]”

If the value can be returned normally, it means that the agent has no problem.

4, create a template in the zabbix-server console

Log in to the zabbix-server console, configure → template → create template

5, parameter description

The vfs.fs.size[fs,<mode>] key value is required to monitor disk usage.

Fs: file system
Mode: mode
Total default all, free idle, used, pfree free percentage, used percentage

6, create a monitoring item in the zabbix-server console

Click on the created template to add monitoring items.

Name: total amount of c disk
Key value: vfs.fs.size[c:,total]

Other parameters change according to usage. If you are configuring for the first time, then I suggest you not to change it.

Next continue to create free, used, create methods and total the same as total

12 名称: c盘剩余量 键值vfs . fs . size [ c : , free ] 名称: c盘使用量 键值vfs . fs . size [ c : , used ]

Add pfree, pused, note that these two information types need to choose floating point number, unit %

12 名称: c盘剩余百分比 键值: vfs . fs . size [ c : , pfree ] 名称: c盘使用百分比 键值: vfs . fs . size [ c : , pused ]

7, create a trigger in zabbix-server (optional)

Problem representation: {windows:vfs.fs.size[c:,pfree].last()}<=5
Restore expression: {windows:vfs.fs.size[c:,pfree].last()}>5

8, create a graphic in zabbix-server

9, template associated host

In Configuration → Host → Create Host

Click on the template, link the template you just created, and click Add.

Wait patiently for a while, you can see the use of Windows 2012 c drive, note: This value is different from what you see in Windows, because of the conversion method, not too tangled!

The same method applies to d disk, e disk, etc.

Как в Zabbix 2.0 сделать мониторинг свободного места на дисках?

По сути ничего сложного нет, но поиск по интернету ничего хорошего не нашел (может быть я плохо искал), и так, как это сделал я?!

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

Мне нужно было мониторить 5 дисков (кол-во не важно, но для наглядности).

1. Создаем шаблон (к примеру Windows Disk)

2. Создаем группу данных (к примеру DiskSize)

3. Далее создаем элемент данных, вот тут то самая и суть (вот так должен выглядеть «элемент данных»)

— первое это ключ (vfs.fs.size[C:,free]) по которую забикс будет проверять место на диске.

C: — это имя диска, free — это свободное место (по умолчанию забикс это будет отдавать в килобайтах), это не удобно, по этому делаем пользовательский множитель 0.000000000931322574615478515625 — почему именно такой? (на сколько я понял, раз множитель, значит надо умножить и кроме как число в строчку вставить нельзя, а чтобы из КБ перевести в ГБ, надо несколько раз разделить на 1024 или умножить на вот это самое число).

В итоге получаем элемент данных в ГБ (что намного удобнее).

Далее делаем триггер который будет срабатывать когда на диске остается меньше 20 ГБ.

Сам триггер выглядит вот так (см.ниже).

В нем добавляем выражение «{Windows Disk:vfs.fs.size[C:,free].last(0)}<20» — тут все предельно ясно, смотрим последнее значение и если оно меньше 20 (ГБ), то начинаем кричать. Удачи.

Загрузка…

Один из ключевых аспектов успешной работы с операционной системой Windows – это контроль за использованием дискового пространства. Нет ничего хуже, чем запустить новую программу или загрузить важный файл, и в результате обнаружить, что на диске закончилось свободное место. Узнать размер папки в Windows и следить за ним в режиме реального времени может помочь мониторинговая система Zabbix.

Zabbix – мощное и гибкое решение для мониторинга IT-инфраструктуры, которое позволяет отслеживать различные параметры работы операционной системы, серверов, сетей и других компонентов инфраструктуры в режиме реального времени. Одной из полезных возможностей Zabbix является мониторинг размера папок в Windows.

Для того чтобы настроить мониторинг размера папок в Zabbix, необходимо выполнить несколько простых шагов. Во-первых, нужно настроить Zabbix Server и агентов на мониторинговых объектах. Затем нужно создать соответствующие элементы данных и триггеры для отслеживания размера папок. После этого можно будет наблюдать за изменением размера и получать уведомления, когда свободное дисковое пространство находится в критическом состоянии.

Zabbix предоставляет возможность мониторинга не только размера папок, но и других важных параметров операционной системы Windows. Благодаря этому инструменту можно оперативно реагировать на возможные проблемы, связанные с использованием дискового пространства, и предотвращать их возникновение.

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

Содержание

  1. Что такое Zabbix и зачем нужно знать размер папки Windows?
  2. Получение размера папки Windows
  3. Способы узнать размер папки в Windows
  4. Установка и настройка Zabbix для мониторинга размера папки
  5. Шаги по установке и настройке Zabbix для мониторинга размера папки
  6. Настройка мониторинга размера папки в Zabbix
  7. Как настроить мониторинг размера папки в Zabbix

В контексте папки Windows, Zabbix позволяет узнать и отслеживать размер папки, что может быть важно для эффективного использования дискового пространства. Знание размера папки Windows позволяет оценить, сколько места уже занято и сколько осталось свободного места на диске. Это особенно важно для серверов и компьютеров, где может быть несколько разделов или дисков, и требуется постоянный мониторинг состояния памяти.

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

Получение размера папки Windows

Для получения размера папки в операционной системе Windows можно использовать команду dir в командной строке:

  1. Откройте командную строку (нажмите Win+R и введите cmd).
  2. Перейдите в нужную папку с помощью команды cd. Например, для перехода в папку C:\Program Files введите cd "C:\Program Files".
  3. Введите команду dir /s, чтобы вывести список файлов и подпапок в указанной директории с информацией о размере каждого элемента.
  4. Дождитесь завершения выполнения команды dir и найдите строку, содержащую информацию о размере папки.

Размер папки будет представлен в байтах, килобайтах или мегабайтах, в зависимости от его объема.

Если вам необходимо получить размер папки в более удобном формате (например, в гигабайтах), можно воспользоваться PowerShell. Для этого:

  1. Откройте PowerShell (нажмите Win+R, введите powershell и нажмите Enter).
  2. Введите команду Get-ChildItem -Path "C:\Путь\к\папке" -Recurse | Measure-Object -Property Length -Sum, заменив "C:\Путь\к\папке" на нужный путь к папке.

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

($result.Sum/1GB).ToString("N2") + " GB"

Этот фрагмент преобразует размер в гигабайты и выводит его с двумя знаками после запятой и указанием единиц измерения (ГБ).

Способы узнать размер папки в Windows

В операционной системе Windows есть несколько способов узнать размер папки:

1. С помощью проводника Windows:

Щелкните правой кнопкой мыши на папке, выберите «Свойства» в контекстном меню. В открывшемся окне в разделе «Общие» будет указан размер папки.

2. С помощью командной строки:

Откройте командную строку, введите команду «dir путь_к_папке» и нажмите Enter. В результате будет выведен список файлов и подпапок в данной папке, а также общий размер папки.

3. С помощью программы третьего лица:

Для более детального анализа размера папки можно воспользоваться специальными программами, такими как TreeSize Free или WinDirStat. Эти программы могут показать размер каждого файла и подпапки внутри выбранной папки, а также предоставить графическую диаграмму распределения размеров файлов.

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

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

Для начала установите и настройте Zabbix на вашем сервере, если вы этого еще не сделали. Затем следуйте этим шагам, чтобы мониторить размер папки Windows в реальном времени:

  1. Откройте веб-интерфейс Zabbix и авторизуйтесь в системе.
  2. Перейдите в меню «Настройки» и выберите вкладку «Шаблоны».
  3. Нажмите кнопку «Создать шаблон» и укажите имя для нового шаблона.
  4. В разделе «Приложения» нажмите «Создать приложение» и укажите имя приложения.
  5. В разделе «Элементы данных» нажмите «Создать элемент данных» и укажите следующие настройки:
    • Тип информации: «Наблюдение папки».
    • Ключ: С указанием пути к папке, например «vfs.fs.size[C:\Путь\к\папке]».
    • Интервал обновления: указать желаемый интервал обновления данных.
  6. Нажмите «Сохранить», чтобы создать элемент данных.
  7. Добавьте созданный элемент данных в созданное ранее приложение.
  8. Нажмите «Сохранить», чтобы сохранить настройки приложения.
  9. Вернитесь в главное меню, выберите «Узлы сети» и выберите ту систему, которую вы хотите мониторить.
  10. Нажмите «Создать элемент данных» и укажите следующие настройки:
    • Шаблон: выберите созданный ранее шаблон.
    • Ключ: выберите созданный ранее ключ элемента данных.
    • Тип информации: «Число (без десятичной точки)».
  11. Нажмите «Создать» для создания элемента данных.
  12. Теперь вы можете отслеживать размер папки Windows в реальном времени через Zabbix. Изменения размера папки будут отображаться в виде графика и/или уведомлять вас по электронной почте или другим способом, если настроены оповещения.

Теперь вы знаете, как установить и настроить Zabbix для мониторинга размера папки Windows. Это даст вам полный контроль над размером папки и поможет избежать проблем с заполнением диска или недостатком свободного пространства.

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

Для мониторинга размера папки в операционной системе Windows с помощью Zabbix необходимо выполнить несколько шагов:

Шаг 1: Установка Zabbix сервера

Скачайте установочный пакет Zabbix с официального сайта. Затем запустите установку и следуйте инструкциям мастера установки.

Шаг 2: Настройка базы данных

Во время установки Zabbix сервера будет предложено указать настройки базы данных. Укажите необходимую информацию, например, адрес сервера баз данных, имя пользователя и пароль.

Шаг 3: Установка агента Zabbix на целевой компьютер

Для мониторинга размера папки на целевом компьютере необходимо установить агент Zabbix. Скачайте установочный пакет агента с официального сайта Zabbix. Запустите установку агента и следуйте инструкциям мастера установки.

Шаг 4: Настройка мониторинга размера папки

Откройте веб-интерфейс Zabbix и войдите под учетной записью администратора. Перейдите в раздел «Конфигурация» и выберите «Шаблоны». Нажмите на кнопку «Создать шаблон».

Шаг 5: Создание элемента данных для мониторинга размера папки

В окне создания шаблона перейдите на вкладку «Элементы данных» и нажмите на кнопку «Создать элемент данных». Заполните необходимые поля, включая имя элемента данных и ключ.

Шаг 6: Создание триггера для оповещения о превышении размера папки

На вкладке «Триггеры» в окне создания шаблона нажмите на кнопку «Создать триггер». Заполните необходимые поля, включая имя триггера и условия срабатывания.

Шаг 7: Назначение шаблона компьютеру

Перейдите в раздел «Конфигурация» и выберите «Хосты». Нажмите на кнопку «Создать хост» и заполните необходимую информацию. Затем выберите созданный шаблон и нажмите на кнопку «Добавить».

Шаг 8: Просмотр результатов мониторинга размера папки

После настройки мониторинга размера папки в Zabbix вы сможете просматривать данные через веб-интерфейс. Перейдите в раздел «Мониторинг» и выберите «Последние данные». Здесь вы увидите информацию о размере папки и статусе триггера.

После завершения всех шагов мониторинг размера папки в операционной системе Windows будет настроен и работать в реальном времени.

Настройка мониторинга размера папки в Zabbix

Для мониторинга размера папки в Zabbix необходимо выполнить следующие шаги:

  1. Убедитесь, что в системе на которой установлен Zabbix Agent присутствует необходимая конфигурация:
    • Откройте файл конфигурации Zabbix Agent.
    • Найдите и раскомментируйте параметр EnableRemoteCommands, установите его значение в 1.
    • Найдите и раскомментируйте параметр UnsafeUserParameters, установите его значение в 1.
  2. Создайте пользовательский скрипт на сервере целевой папки:
    • Создайте новый текстовый файл с расширением .bat и откройте его в текстовом редакторе.
    • Введите команду для получения размера папки, например dir /s /-c "путь_к_папке".
    • Сохраните файл и убедитесь, что он имеет исполняемые права.
  3. Настройте Zabbix для мониторинга размера папки:
    • Откройте веб-интерфейс Zabbix и войдите в систему.
    • Перейдите в раздел «Конфигурация» -> «Хосты» и выберите целевой хост для настройки.
    • Перейдите на вкладку «Пользовательские параметры» и добавьте новый параметр.
    • В поле «Ключ» укажите уникальное имя для параметра.
    • В поле «Параметр» введите путь к созданному вами скрипту.
    • Сохраните изменения.
  4. Создайте элемент данных и триггер для мониторинга:
    • Перейдите в раздел «Конфигурация» -> «Элементы данных» и выберите целевой хост.
    • Нажмите «Создать элемент данных» и заполните необходимые поля.
    • В поле «Формула» укажите last("путь_к_параметру").
    • Сохраните элемент данных.
    • Перейдите в раздел «Конфигурация» -> «Триггеры» и создайте новый триггер.
    • В поле «Наименование» укажите название триггера.
    • В поле «Выражение» укажите условие срабатывания триггера, например {имя_хоста:имя_элемента_данных.last()}>1000000 (для размера папки больше 1 МБ).
    • Сохраните триггер.

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

Как настроить мониторинг размера папки в Zabbix

Для настройки мониторинга размера папки в Zabbix необходимо выполнить следующие шаги:

  1. Установить агент Zabbix на сервер, в котором находится папка, размер которой нужно отслеживать.
  2. Создать новый элемент данных в Zabbix для мониторинга размера папки. Для этого необходимо указать имя элемента данных, хост, на котором установлен агент Zabbix, и ключ элемента данных, используя ключ `vfs.dir.size[путь_к_папке]`, где `путь_к_папке` — путь к папке, размер которой нужно отслеживать.
  3. Настроить триггеры для мониторинга размера папки. Можно, например, создать триггеры, которые будут срабатывать, если размер папки превышает определенное значение или уменьшается до определенного значения.
  4. Создать графики для визуализации размера папки в реальном времени. Графики можно создать для всех папок, размер которых отслеживается, или только для определенных папок.

После выполнения всех указанных шагов вы сможете отслеживать размер папки в реальном времени в Zabbix и получать оповещения при изменении размера.

Замечание!

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

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

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

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

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

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

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

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

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

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

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

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

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

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

“Амбула”.

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

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

Т.к. этот агент будет располагаться за 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

### Процент свободного места на системном диске ###
UserParameter=Win_SysDrv_PercentFreeSpace, C:WindowsSystem32cscript.exe C:zabbixscriptsWinDriveInfo.vbs %SystemDrive% PercentFreeSpace
# Проверить
# C:zabbixzabbix_agentd.exe -c c:zabbixzabbix_agentd.win.conf -t Win_SysDrv_PercentFreeSpace

### Общий размер системного диска ###
UserParameter=Win_SysDrv_TotalSize, C:WindowsSystem32cscript.exe C:zabbixscriptsWinDriveInfo.vbs %SystemDrive% TotalSize
# Проверить
# C:zabbixzabbix_agentd.exe -c c:zabbixzabbix_agentd.win.conf -t Win_SysDrv_TotalSize

### Размер свободного пространства на системном диске ###
UserParameter=Win_SysDrv_FreeSpace, C:WindowsSystem32cscript.exe C:zabbixscriptsWinDriveInfo.vbs %SystemDrive% FreeSpace
# Проверить
# C:zabbixzabbix_agentd.exe -c c:zabbixzabbix_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:zabbixscripts простенький VBS-скрипт,

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

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

Запуск скрипта:
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:zabbixzabbix_agentd.exe -c c:zabbixzabbix_agentd.win.conf -t Win_SysDrv_PercentFreeSpace
  • C:zabbixzabbix_agentd.exe -c c:zabbixzabbix_agentd.win.conf -t Win_SysDrv_TotalSize
  • C:zabbixzabbix_agentd.exe -c c:zabbixzabbix_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: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

Кому лень создавать задачи самостоятельно, могут импортировать их из этих файлов: Win_SysDrv_TotalSize.xml,  Win_SysDrv_PercentFreeSpace.xml,  Win_SysDrv_FreeSpace.xml

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

ВАЖНО!!!

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

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

ТОЖЕ ВАЖНО!!!

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

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

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

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

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

УРА!!!

Всё работает!!!

Пы.Сы.

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

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

🙂

УДАЧИ!!!


Как в Zabbix 2.0 сделать мониторинг свободного места на дисках?

По сути ничего сложного нет, но поиск по интернету ничего хорошего не нашел (может быть я плохо искал), и так, как это сделал я?!

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

Мне нужно было мониторить 5 дисков (кол-во не важно, но для наглядности).

1. Создаем шаблон (к примеру Windows Disk)

2. Создаем группу данных (к примеру DiskSize)

3. Далее создаем элемент данных, вот тут то самая и суть (вот так должен выглядеть «элемент данных»)

— первое это ключ (vfs.fs.size[C:,free]) по которую забикс будет проверять место на диске.

C: — это имя диска, free — это свободное место (по умолчанию забикс это будет отдавать в килобайтах), это не удобно, по этому делаем пользовательский множитель 0.000000000931322574615478515625 — почему именно такой? (на сколько я понял, раз множитель, значит надо умножить и кроме как число в строчку вставить нельзя, а чтобы из КБ перевести в ГБ, надо несколько раз разделить на 1024 или умножить на вот это самое число).

В итоге получаем элемент данных в ГБ (что намного удобнее).

Далее делаем триггер который будет срабатывать когда на диске остается меньше 20 ГБ.

Сам триггер выглядит вот так (см.ниже).

В нем добавляем выражение «{Windows Disk:vfs.fs.size[C:,free].last(0)}<20» — тут все предельно ясно, смотрим последнее значение и если оно меньше 20 (ГБ), то начинаем кричать. Удачи.

Загрузка…

This article omits the installation of zabbix server. For the installation of zabbix server, you can check the article I published earlier. Currently, zabbix4.0server is used as an example to monitor the usage of c disk separately. This article does not involve disk writing, just disk space. The usage rate is theoretically universal for all versions.

1. Download zabbix-agent

The current use of Windows2012 system as an example, theories are common to all systems, other systems please self-test!

Https://www.zabbix.com/cn/download_agents#tab:40LTS

Zabbix-agent provides windows (msi) package from 4.0, and it is more convenient to install directly with one button.

Https://assets.zabbix.com/downloads/4.0.13/zabbix_agent-4.0.13-win-amd64-openssl.msi

2, install zabbix-agent

Run the zabbix_agent-4.0.*-win-amd64-openssl.msi installer on a Windows2012 server

After the default installation is complete, zabbix-agent will be automatically added to the Windows system service and automatically started. Please note that there is a firewall to open the port 10050 , otherwise zabbix-server can not get the data.

So simple zabbix-agent installation is complete, the rest of the steps are all in zabbix-server!

3, zabbix_get verification

Verify that the data can be obtained by zabbix_get command on zabbix-server

1 zabbix_get – s agent端的IP地址 – k “vfs.fs.size[c:,total]”

If the value can be returned normally, it means that the agent has no problem.

4, create a template in the zabbix-server console

Log in to the zabbix-server console, configure → template → create template

5, parameter description

The vfs.fs.size[fs,<mode>] key value is required to monitor disk usage.

Fs: file system
Mode: mode
Total default all, free idle, used, pfree free percentage, used percentage

6, create a monitoring item in the zabbix-server console

Click on the created template to add monitoring items.

Name: total amount of c disk
Key value: vfs.fs.size[c:,total]

Other parameters change according to usage. If you are configuring for the first time, then I suggest you not to change it.

Next continue to create free, used, create methods and total the same as total

12 名称: c盘剩余量 键值vfs . fs . size [ c : , free ] 名称: c盘使用量 键值vfs . fs . size [ c : , used ]

Add pfree, pused, note that these two information types need to choose floating point number, unit %

12 名称: c盘剩余百分比 键值: vfs . fs . size [ c : , pfree ] 名称: c盘使用百分比 键值: vfs . fs . size [ c : , pused ]

7, create a trigger in zabbix-server (optional)

Problem representation: {windows:vfs.fs.size[c:,pfree].last()}<=5
Restore expression: {windows:vfs.fs.size[c:,pfree].last()}>5

8, create a graphic in zabbix-server

9, template associated host

In Configuration → Host → Create Host

Click on the template, link the template you just created, and click Add.

Wait patiently for a while, you can see the use of Windows 2012 c drive, note: This value is different from what you see in Windows, because of the conversion method, not too tangled!

The same method applies to d disk, e disk, etc.

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

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

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

В этой статье мы расскажем про настройку квот файловой системы Linux, а также про то, как организован мониторинг квот на хостинговых серверах SAAS-сервиса интернет-магазинов.

Настройка квот файловой системы на сервере

Проще всего настроить использование квот, если на сервере установлена какая-нибудь панель управления, например ISPmanager или Hestia Control Panel. Если же никакая панель не используется, можно настроить квоты вручную.

Настройка через панель управления ISPmanager

Если на вашем сервере установлена панель управления ISPmanager, то для включение дисковых квот достаточно установить флажок Дисковые квоты на странице Конфигурация ПО, доступную в меню Настройки (рис. 1).

Рис. 1. Включение дисковых квот в панели ISPmanager

Рис. 1. Включение дисковых квот в панели ISPmanager

Возможно, вам будет полезна документация разработчика панели по настройке квот.

Настройка через панель управления Hestia Control Panel

В бесплатной панели управления Hestia Control Panel для включения квот нужно использовать плагин File System Disk Quota. Чтобы его включить, щелкните значок шестеренки справа вверху, затем щелкните кнопку Configure и раскройте блок Plugins (рис. 2).

Рис. 2. Блок Plugins в панели Hestia Control Panel

Рис. 2. Блок Plugins в панели Hestia Control Panel

Убедитесь, что в меню File System Disk Quota выбрана строка Yes.

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

Для добавления пакета откройте список пользователей при помощи кнопки USERS, щелкните кнопку Packages, а затем — кнопку Add Package.

При добавлении пакета укажите нужное значение квоты в поле Quota (рис. 3).

Рис. 3. Указание квоты в пакете панели Hestia Control Panel

Рис. 3. Указание квоты в пакете панели Hestia Control Panel

Далее щелкните кнопку Save для сохранения изменений.

Настройка вручную для Debian

Прежде всего, обновите пакеты и установите пакет quota:

# apt update
# apt install quota

Проверьте версию установленного пакета:

# quota --version
Quota utilities version 4.06.
…

Далее отредактируйте файл /etc/fstab при помощи любого текстового редактора, например vim:

# vim /etc/fstab

Найдите в этом файле строку раздела /, для которого нужно добавить квоты:

# <file system> <mount point>   <type>  <options>       <dump>  <pass>
/dev/vda3       /               ext4    errors=remount-ro 0       1
/dev/vda2       /boot           ext2    defaults        0       2

Затем добавьте «,usrquota,grpquota» без пробела, как это показано ниже: 

/dev/vda3       /               ext4    errors=remount-ro,usrquota,grpquota 0       1
/dev/vda2       /boot           ext2    defaults        0       2

Сохраните файл /etc/fstab и перемонтируйте файловую систему:

# mount -o remount /

Убедитесь, что при монтировании файловой системы добавились нужные нам опции:

~# cat /proc/mounts | grep ' / '
/dev/vda3 / ext4 rw,relatime,quota,usrquota,grpquota,errors=remount-ro 0 0

Далее запустите команду quotacheck, которая создаст файлы /aquota.user и /aquota.group, предназначенные для хранения информации об ограничениях и использовании файловой системы:

# quotacheck -ugm /

Проверьте, что файлы создались:

# ls -lh / | grep aquota
-rw-------   1 root root 6.0K Aug  4 15:12 aquota.group
-rw-------   1 root root 6.0K Aug  4 15:12 aquota.user

Если все хорошо, включите квоты:

# quotaon -v /
/dev/vda3 [/]: group quotas turned on
/dev/vda3 [/]: user quotas turned on

Чтобы установить квоты, например, для пользователя quotausr, введите такую команду:

# setquota -u quotausr 100M 120M 0 0 /

Эта команда установит для пользователя quotausr квоту 100 Мбайт и лимит 120 Мбайт.

Проверьте, что квота и лимит были установлены:

# quota -vs quotausr
Disk quotas for user quotausr (uid 1000):
Filesystem   space   quota   limit   grace   files   quota   limit   grace
/dev/vda3     16K    100M    120M               4       0       0

Более подробное руководство по настройке квот вы найдете здесь.

Настройка журналируемых квот

При включении квот командой quotaon на консоли может появиться следующее сообщение:

quotaon: Your kernel probably supports ext4 quota feature but you are using external quota files. Please switch your filesystem to use ext4 quota feature as external quota files on ext4 are deprecated.

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

Для настройки журналируемых квот добавьте в файл /etc/fstab строку (без пробелов) «,usrjquota=aquota.user,grpjquota=aquota.group,jqfmt=vfsv0»:

/dev/vda3       /               ext4    errors=remount-ro,usrjquota=aquota.user,grpjquota=aquota.group,jqfmt=vfsv0 0       1
/dev/vda2       /boot           ext2    defaults        0       2

Если ранее были созданы файлы /aquota.user и /aquota.group, удалите их:

# rm /aquota.user
# rm /aquota.group

Перемонтируйте корневой раздел и запустите проверку квот::

# mount -o remount /
# quotacheck -avugm

При первом запуске вы получите предупреждающие сообщения, которые можно игнорировать:

quotacheck: Your kernel probably supports ext4 quota feature but you are using external quota files. Please switch your filesystem to use ext4 quota feature as external quota files on ext4 are deprecated.
quotacheck: Scanning /dev/vda3 [/] done
quotacheck: Cannot stat old user quota file //aquota.user: No such file or directory. Usage will not be subtracted.
quotacheck: Cannot stat old group quota file //aquota.group: No such file or directory. Usage will not be subtracted.
quotacheck: Cannot stat old user quota file //aquota.user: No such file or directory. Usage will not be subtracted.
quotacheck: Cannot stat old group quota file //aquota.group: No such file or directory. Usage will not be subtracted.
quotacheck: Checked 5029 directories and 42224 files
quotacheck: Old file not found.
quotacheck: Old file not found.

Далее включите квоты:

# quotaon -avug
quotaon: Your kernel probably supports ext4 quota feature but you are using external quota files. Please switch your filesystem to use ext4 quota feature as external quota files on ext4 are deprecated.

Опять игнорируйте предупреждающие сообщения, но убедитесь, что квоты включены:

/dev/vda3 [/]: group quotas turned on
/dev/vda3 [/]: user quotas turned on

Далее, как и при работе с обычными квотами, установите квоты для пользователя и проверьте, что они успешно установились:

# setquota -u quotausr 100M 120M 0 0 /
# quota -vs quotausr
Disk quotas for user quotausr (uid 1000):
Filesystem   space   quota   limit   grace   files   quota   limit   grace
/dev/vda3     16K    100M    120M               4       0       0

Вы можете также обратиться к следующей инструкции.

Однако не создавайте вручную файлы  /aquota.user и /aquota.group, как там рекомендуется. Эти файлы будут созданы автоматически командой quotacheck.

Ручная проверка использования квот

Чтобы проверить использование квот вручную, используйте команду repquota:

# repquota -s /
*** Report for user quotas on device /dev/vda3
Block grace time: 7days; Inode grace time: 7days
                        Space limits                File limits
User            used    soft    hard  grace    used  soft  hard  grace
----------------------------------------------------------------------
root      --   1496M      0K      0K          44653     0     0
man       --   1688K      0K      0K            160     0     0
_apt      --     12K      0K      0K              3     0     0
ntp       --     12K      0K      0K              3     0     0
zabbix    --     72K      0K      0K              8     0     0
quotausr  --     16K    100M    120M              4     0     0

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

Обратите внимание, что здесь выводятся значения для так называемой мягкой (soft) и жесткой (hard) квот. 

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

Команда repquota с параметрами -v и -g показывают все квоты, в том числе для групп, даже если квоты не используются:

# repquota -v -g /
*** Report for group quotas on device /dev/vda3
Block grace time: 7days; Inode grace time: 7days
                        Block limits                File limits
Group           used    soft    hard  grace    used  soft  hard  grace
----------------------------------------------------------------------
root      -- 1493712       0       0          44605     0     0
adm       --    2600       0       0             26     0     0
tty       --      76       0       0              3     0     0
mail      --      28       0       0              2     0     0
man       --    1688       0       0            160     0     0
shadow    --     168       0       0              7     0     0
utmp      --    1828       0       0              4     0     0
staff     --       8       0       0              2     0     0
systemd-journal -- 32780   0       0              3     0     0
crontab   --      48       0       0              2     0     0
messagebus --     52       0       0              1     0     0
ssh       --     348       0       0              1     0     0
ntp       --      12       0       0              3     0     0
zabbix    --      72       0       0              8     0     0
quotausr  --      16       0       0              4     0     0

Statistics:
Total blocks: 7
Data blocks: 1
Entries: 15
Used average: 15.000000

Если добавить параметр -p, то команда repquota будет показывать период времени grace, в течение которого система будет предупреждать пользователя о переполнении квоты, но не ограничивать его:

# repquota -c -v -p -g /
*** Report for group quotas on device /dev/vda3
Block grace time: 7days; Inode grace time: 7days
                        Block limits                File limits
Group           used    soft    hard  grace    used  soft  hard  grace
----------------------------------------------------------------------
root      -- 1493712       0       0      0   44605     0     0      0
adm       --    2608       0       0      0      26     0     0      0
tty       --      76       0       0      0       3     0     0      0
mail      --      28       0       0      0       2     0     0      0
man       --    1688       0       0      0     160     0     0      0
shadow    --     168       0       0      0       7     0     0      0
utmp      --    1832       0       0      0       4     0     0      0
staff     --       8       0       0      0       2     0     0      0
systemd-journal -- 32780   0       0      0       3     0     0      0
crontab   --      48       0       0      0       2     0     0      0
messagebus --     52       0       0      0       1     0     0      0
ssh       --     348       0       0      0       1     0     0      0
ntp       --      12       0       0      0       3     0     0      0
zabbix    --      72       0       0      0       8     0     0      0
quotausr  --      16       0       0      0       4     0     0      0

Statistics:
Total blocks: 7
Data blocks: 1
Entries: 15
Used average: 15.000000

Параметр -c включит кэширование. Более подробное описание параметров программы repquota можно найти здесь.

Программа для мониторинга квот check_quota.pl с помощью Zabbix

Чтобы автоматически контролировать использование дисковых квот с помощью Zabbix, мы подготовили программу check_quota.pl.

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

Предполагается, что если какой-либо пользователь приблизился к переполнению жесткой квоты, то системный администратор получает сообщение об этом от Zabbix. Далее он вручную с помощью панели ISPmanager проверяет «провинившегося» пользователя и увеличивает ему квоту, чтобы сайт продолжил свою работу.

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

Практика показала, что этот способ вполне себя оправдывает. Автоматическая обработка  переполнения квоты едва ли возможна, так как необходимо обсуждение возникшей ситуации с клиентом.

Инициализация программы check_quota.pl

В процессе инициализации программа check_quota.pl получает параметры командной строки, определяет версию ОС (Linux или FreeBSD), пути для запуска утилит zabbix_sender и repquota, а также задает параметры запуска для repquota:

my $zabbix_server_ip = $ARGV[0];
my $hostname = $ARGV[1];
if($ARGV[2] eq 'debug') { $debug = 1; } else { $debug = 0; }
if($^O eq 'linux')
{
  $zabbix_sender = '/usr/bin/zabbix_sender';
  $bin_repquota = '/usr/sbin/repquota';
  $cmd = "$bin_repquota -c -v -p -g /";
}
elsif($^O eq 'freebsd')
{
  $zabbix_sender = '/usr/local/bin/zabbix_sender';
  $bin_repquota = '/usr/sbin/repquota';
  $cmd = "$bin_repquota -v -g /";
}
else
{
  print "nUnsupported OS: $^O";
}

Получение информации об использовании квот

Для получения информации об использовании квот программа запускает утилиту repquota:

my @rqout = ();
@rqout = split /n/, `$cmd`;

Результаты обрабатываются в цикле:

my $max_quota_use=0;
foreach my $line (@rqout)
{
   my @dat = split /s+/, $line;
   next if (($#dat < 9) or ($dat[4] !~ /^d+/));
   my ($quotaname, $quota_status, $quota_inuse, $quota_softlimit, $quota_hardlimit,$quota_grace) = ( $dat[0], $dat[1], $dat[2], $dat[3], $dat[4], $dat[5] );
   if ($quotaname =~ /#/)
   {
     $quotaname =~ s/#//g;
     $quotaname = "${quotaname}";
   }
   my $quotaname_perfdata = $quotaname; $quotaname_perfdata =~ s/^uid /uid/g;
   my $percent;
   if ($quota_hardlimit != 0)
   {
      $percent = int(($quota_inuse * 100) / $quota_hardlimit);
   }
   else
   {
     $percent=0;
   }
   if($percent != 0)
   {
     if($max_quota_use < $percent) { $max_quota_use = $percent; }
   }
}

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

Отправка результатов на серверы Zabbix

Чтобы отправить результат, а именно максимальное значение использованной квоты на серверы Zabbix, программа запускает в цикле утилиту zabbix_sender:

my $zabbix_item_key = 'quota.key';
my @zabbix_server_ip_array = split(',', $zabbix_server_ip);
foreach my $server_ip (@zabbix_server_ip_array)
{
  my $trap_cmd = $zabbix_sender.' -vv -z '.$server_ip.' -s "'.$hostname.'" -k '.$zabbix_item_key.' -o '.$max_quota_use;
  my @trapout = ();
  @trapout = split /n/, `$trap_cmd`;
}

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

Задание crontab для запуска программы check_quota.pl

Программу check_quota.pl нужно запускать периодически как задание crontab с правами пользователя root:

*/11 * * * *    /usr/bin/perl /home/frolov/zabbix_quota/check_quota.pl [Zabbix_IP_1], [Zabbix_IP_2] [Hostname

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

В качестве параметров программе передается список адресов IP серверов Zabbix, разделенных запятой, а также имя хоста, как оно определено на серверах Zabbix.

Для программы check_quota.pl мы подготовили шаблон, который можно загрузить по этому адресу.

В шаблоне определен один ключ quota.key (рис. 4).

Рис. 4. Ключ quota.key

Рис. 4. Ключ quota.key

Также в этом шаблоне определены два триггера (рис. 5).

Рис. 5. Триггеры в шаблоне программы check_quota.pl

Рис. 5. Триггеры в шаблоне программы check_quota.pl

Первый из этих триггеров срабатывает, когда максимальное использование квоты достигло 90% или более. Этот триггер отмечен как серьезный (High), так как переполнение квоты требует срочного вмешательства системного администратора.

Второй триггер срабатывает, если данные о текущем использовании квот не поступают полтора часа или дольше. Как правило, такое бывает при неправильной настройке задания crontab или при наличии других ошибок в настройке сервера. Здесь важность не так велика (Warning), и системный администратор может действовать в плановом, а не срочном порядке. 

Автор: Александр Фролов.


НЛО прилетело и оставило здесь промокод для читателей нашего блога:

— 15% на все тарифы VDS (кроме тарифа Прогрев) — HABRFIRSTVDS.

A few years ago we moved from Nagios to Zabbix for our server monitoring needs. I wasn’t a big fan of Nagios, finding it a pain to manage with its myriad configuration files. It’s probably gotten better since I last toyed with it but since we moved to Zabbix I haven’t had much reason to look at Nagios again.

I also try to use SNMP monitoring for everything. SNMP is widely supported – all sorts of hardware has SNMP support, and with the net-snmp package you can pretty easily create your own SNMP-monitorable stuff on Linux. Since almost all of our stuff runs on Linux this has worked out pretty well, but our Exchange server is probably going to be running on Windows for the foreseeable future. Windows has SNMP support, it’s just not on by default. However, even when it’s enabled it doesn’t have the simple “dskPercent” monitoring I’ve come to know and love with net-snmp on Linux, which simply tells you how full a given disk is as a percent. This makes it easy to set alerts when a disk reaches 80% full.

On Windows I found these objects that can be used to get something similar:

[evan@monitoring02 14:41:24 ~]$ snmpwalk -v 2c -c community 192.168.1.20 | grep -i storage
HOST-RESOURCES-MIB::hrStorageIndex.1 = INTEGER: 1
HOST-RESOURCES-MIB::hrStorageIndex.2 = INTEGER: 2
HOST-RESOURCES-MIB::hrStorageIndex.3 = INTEGER: 3
HOST-RESOURCES-MIB::hrStorageIndex.4 = INTEGER: 4
HOST-RESOURCES-MIB::hrStorageIndex.5 = INTEGER: 5
HOST-RESOURCES-MIB::hrStorageIndex.6 = INTEGER: 6
HOST-RESOURCES-MIB::hrStorageType.1 = OID: HOST-RESOURCES-TYPES::hrStorageRemovableDisk
HOST-RESOURCES-MIB::hrStorageType.2 = OID: HOST-RESOURCES-TYPES::hrStorageFixedDisk
HOST-RESOURCES-MIB::hrStorageType.3 = OID: HOST-RESOURCES-TYPES::hrStorageCompactDisc
HOST-RESOURCES-MIB::hrStorageType.4 = OID: HOST-RESOURCES-TYPES::hrStorageFixedDisk
HOST-RESOURCES-MIB::hrStorageType.5 = OID: HOST-RESOURCES-TYPES::hrStorageVirtualMemory
HOST-RESOURCES-MIB::hrStorageType.6 = OID: HOST-RESOURCES-TYPES::hrStorageRam
HOST-RESOURCES-MIB::hrStorageDescr.1 = STRING: A:
HOST-RESOURCES-MIB::hrStorageDescr.2 = STRING: C: Label:  Serial Number b78d19
HOST-RESOURCES-MIB::hrStorageDescr.3 = STRING: D: Label:EXCH201064  Serial Number xxxxxxxx
HOST-RESOURCES-MIB::hrStorageDescr.4 = STRING: E: Label:Exchange2010  Serial Number xxxxxxxx
HOST-RESOURCES-MIB::hrStorageDescr.5 = STRING: Virtual Memory
HOST-RESOURCES-MIB::hrStorageDescr.6 = STRING: Physical Memory
HOST-RESOURCES-MIB::hrStorageAllocationUnits.1 = INTEGER: 0 Bytes
HOST-RESOURCES-MIB::hrStorageAllocationUnits.2 = INTEGER: 4096 Bytes
HOST-RESOURCES-MIB::hrStorageAllocationUnits.3 = INTEGER: 2048 Bytes
HOST-RESOURCES-MIB::hrStorageAllocationUnits.4 = INTEGER: 4096 Bytes
HOST-RESOURCES-MIB::hrStorageAllocationUnits.5 = INTEGER: 65536 Bytes
HOST-RESOURCES-MIB::hrStorageAllocationUnits.6 = INTEGER: 65536 Bytes
HOST-RESOURCES-MIB::hrStorageSize.1 = INTEGER: 0
HOST-RESOURCES-MIB::hrStorageSize.2 = INTEGER: 10459647
HOST-RESOURCES-MIB::hrStorageSize.3 = INTEGER: 546570
HOST-RESOURCES-MIB::hrStorageSize.4 = INTEGER: 104824319
HOST-RESOURCES-MIB::hrStorageSize.5 = INTEGER: 393172
HOST-RESOURCES-MIB::hrStorageSize.6 = INTEGER: 196600
HOST-RESOURCES-MIB::hrStorageUsed.1 = INTEGER: 0
HOST-RESOURCES-MIB::hrStorageUsed.2 = INTEGER: 5885720
HOST-RESOURCES-MIB::hrStorageUsed.3 = INTEGER: 546570
HOST-RESOURCES-MIB::hrStorageUsed.4 = INTEGER: 44650892
HOST-RESOURCES-MIB::hrStorageUsed.5 = INTEGER: 166057
HOST-RESOURCES-MIB::hrStorageUsed.6 = INTEGER: 152902

I thought initially that the hrStorageUsed and hrStorageSize values were being reported in bytes, but according to this MSDN article, the units are reported in “allocation units,” which I assume are being reported under hrStorageAllocationUnits, so you just need to multiply the values by the allocation units.

In Zabbix, I check hrStorageUsed every 15 minutes as “disk_1_used”. I check hrStorageSize every 2 hours (since the actual size of the disk/partition isn’t likely to change that often) as “disk_1_size”. To calculate the percentage, I created a “Calculated” item with this formula:

100*(last("disk_1_used") / last("disk_1_size"))

Windows disk usage percent

Windows disk usage percent

The values for disk_1_used and disk_1_size are in Storage Allocation Units, but since this is a percentage that doesn’t matter. However, I do also like to get an idea of the actual disk space being consumed; luckily this is also relatively easy to obtain in Zabbix using Calculated items. I monitor hrStorageAllocationUnits as “disk_1_allocunit” (every 7200 seconds since this too is unlikely to change much) and then the formula for the calculated used disk space is simply:

last("disk_1_used") * last("disk_1_allocunit")

Windows disk used (bytes)

Windows disk used (bytes)

Once all the work is done, here’s what the result looks like:

Zabbix SNMP monitored Windows disk items

When I log in to the actual machine (my vCenter VM in this case) and check disk usage, the numbers match what Zabbix’s calculated values show, though Zabbix seems to be reporting values in “mebibytes” rather than “megabytes”:

Actual Windows disk usage

I created a template in Zabbix which monitors these data for disks 1-5 and then applied it to all Windows servers; now I just need to apply some alert triggers and mission accomplished.

Срабатывает тригер в Zabbix:

Решение: Если у вас старые диски, то вполне возможно, что это у них данное значение может считаться нормальным, поэтому его можно увеличить путем изменения макроса для конкретного диска:

{$VFS.DEV.READ.AWAIT.WARN:«sdс»}

и

{$VFS.DEV.WRITE.AWAIT.WARN:«sdс»}

Но что бы убедиться, что триггер появляется не случайно можно запустить команду указанную ниже и посмотреть параметр tps:

Изменение настройки оповещений о нехватке свободного места на диске при мониторинге Windows.

Проблема: Есть VPS сервер, у которого диск забит уже давненько больше 80% и пока этого хватает, но заббикс, со стандартным шаблоном, присылает уведомление когда видит, что свободного места осталось 20%.

Решение:

Макросы которые отвечают за данное оповещение:

{$VFS.FS.PUSED.MAX.WARN}

{$VFS.FS.PUSED.MAX.CRIT}

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

{$VFS.FS.PUSED.MAX.CRIT:«C:»}

и

{$VFS.FS.PUSED.MAX.WARN:«C:»}

Содержание

  1. ZABBIX – Мониторинг Windows Filesystem через FSNAME и FSTYPE
  2. Как настроить мониторинг Windows FileSystem через FSNAME в ZABBIX?
  3. Мониторинг дискового пространства активным Zabbix-агентом. OLD.
  4. Замечание!
  5. Лирическое отступление.
  6. Лирическое наступление.
  7. “Амбула”.
  8. 1. Устанавливаем на подопечный компьютер Zabbix-агента:
  9. 2. Размещаем в папке C:zabbixscripts простенький VBS-скрипт,
  10. 3. Перезапускаем службу zabbix-агента и проверяем, что наши пользовательские параметры работают правильно.
  11. 4. Теперь идём в web-интерфейс вашего Zabbix-сервера и создаём новый шаблон с именем Win_SysDrv_Monitoring.
  12. 5. Назначаем подопечному компьютеру созданный нами шаблон и нажимаем кнопку “обновить”.
  13. 6. Проверяем работу на текущем этапе.
  14. 7. Настраиваем отправку данных по расписанию.
  15. 8. Окончательная проверка.
  16. Аренда серверов.
  17. 1С:Предприятие “в облаке”.
  18. IP-телефония в офис.
  19. Zabbix + Iostat: мониторинг дисковой подсистемы
  20. Мониторинг производительности дисковой подсистемы при помощи zabbix и block stat
  21. Небольшое отступление
  22. Мониторинг дисков в zabbix
  23. Утилизация дисковой подсистемы
  24. Время обработки запроса
  25. Пропускная способность
  26. Количество операций ввода-вывода в секунду
  27. Заключение
  28. Zabbix: LLD-мониторинг дисков без UserParameter и скриптов на агентах
  29. Настройка агента
  30. Smartmontools
  31. Скрипт
  32. Шаблон
  33. Видео

ZABBIX – Мониторинг Windows Filesystem через FSNAME и FSTYPE

Долгое время мы не публиковали статей по Zabbix-у и не делали ничего по мониторингу через FSNAME и FSTYPE. Связано это с тем, что у нас было много еще задумок, которые мы смогли реализовать. Но теперь у нас есть время, и мы готовы подарить вам целый гайд на тему – Как мониторить Windows FileSystem через FSNAME.

Как настроить мониторинг Windows FileSystem через FSNAME в ZABBIX?

Для начала небольшой обзор: этот тип мониторинга относится к низкоуровневому обнаружению. Оно позволяет автоматически создавать элементы данных, триггеры и графики для различных объектов. Например необходимо мониторить Windows FileSystem и свободное место на дисках. Чтобы использовать #FSNAME нам необходимо проделать ряд действий. Давайте начнем.

На данной странице нажимаем кнопку: Создать правило обнаружения

На появившейся странице заполняем поля по стандарту. Особое внимание необходимо уделить полю “Ключ”. В него обязательно нужно вписать vfs.fs.discovery. Так мы указываем, что ключу необходимо опрашивать файловые системы узла сети.

Переходим на вкладку “Фильтры”, и здесь уже находим то, что нам необходимо. Нам необходим макрос <#FSNAME>. В первую строчку пишем следующие значения(фигурные скобки тоже копируем, кому необходимо):
<#FSNAME>совпадает/matshec ^C|^D|^E

Данный способ позволяет нам мониторить диски C;D;E; и сразу же к ним обращаться, если точнее, то значения описанные в поле напротив макроса это регулярные выражения. Подробнее о них вы можете узнать из гугла.

Фильтрация возможна по типам файловой системы через макрос <#FSTYPE>например, “^ext|^reiserfs”. Помимо этого есть специально разработанный под Windows макрос, позволяющий фильтровать тип самого диска <#FSDRIVETYPE>например, “fixed”.

Нажимаем кнопку Добавит. Далее нас переносит обратно на страницу настройки правил обнаружения. Как только правило будет создано, нам необходимо создать прототип элемента данных этого правила со следующими параметрами:

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

Источник

Мониторинг дискового пространства активным 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 команды:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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 с нужными нам параметрами.

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

ВАЖНО.

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

ТОЖЕ ВАЖНО.

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

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

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

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

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

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

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

Пы.Сы.

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

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

УДАЧИ.

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

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

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

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

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

Источник

Zabbix + Iostat: мониторинг дисковой подсистемы

Zabbix + Iostat: мониторинг дисковой подсистемы.

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

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

Под катом, о мониторинге и о том как настроить.

Зависимости:
Мониторинг реализован через 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:

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

Графики отзывчивости (Latency):

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

График утилизации и IOPS:

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

Вот и собственно и все, спасибо за внимание.
Ну и по традиции, пользуясь случаем передаю привет Федорову Сергею (Алексеевичу) 🙂

Источник

Мониторинг производительности дисковой подсистемы при помощи zabbix и block stat

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

Сегодня хочу поделиться с сообществом своим текущим опытом на реальном примере zabbix и его связке с block stat.

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

Небольшое отступление

Я являюсь архитектором баз данных и систем хранения очень высокой производительности и больших объемов. Поэтому часто сталкиваюсь с задачами оценки, как те или иные параметры настройки системы влияют на работу СХД, какие железные конфигурации СХД лучше.

Да есть куча утилит, которая позволит протестировать диски, например тот же 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 так как значение в статистике в миллисекундах, а нам нужны проценты.

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

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

Аналогичным образом можно посчитать нагрузку записью/чтением (колонки 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: 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 и его команде за качественный продукт, который не перестает радовать новым функционалом. Особенно за предобработку. Жизнь с ней администратору станет гораздо легче.

Источник

Видео

ZABBIX — Мониторинг Windows FileSystem через FSNAME и FSTYPE

ZABBIX - Мониторинг Windows FileSystem через FSNAME и FSTYPE

️Мониторинг Windows в Zabbix.

️Мониторинг Windows в Zabbix.

Zabbix — оповещения через сторонний SMTP

Zabbix - оповещения через сторонний SMTP

Zabbix — мониторинг: установка, настройка и первое использование

Zabbix - мониторинг: установка, настройка и первое использование

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

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

7. Как мониторить VMware Esxi c Zabbix-Server ? / VMware ESXI / Zabbix / Monitoring

7.  Как мониторить VMware Esxi c Zabbix-Server ?  /  VMware ESXI / Zabbix / Monitoring

6. Как мониторить Windows в Zabbix 6.0 ? / Windows Server / Zabbix 6

6.  Как мониторить Windows в Zabbix 6.0 ?  / Windows Server / Zabbix 6

Установка zabbix Agent на Windows Server

Установка zabbix Agent на Windows Server

Zabbix — настройка мониторинга сервера

Zabbix - настройка мониторинга сервера

Создании шаблонов для мониторинг SNMP устройств

Создании шаблонов для мониторинг SNMP устройств

zabbix-disk-performance

Zabbix template for collecting IO statistics

With this template you can collect different disk statistics.

Bytes/Sec

Merged

Ops/Sec

Overview

Installation

To install, copy userparameter_diskstats.conf to /etc/zabbix/zabbix_agentd.d/userparameter_diskstats.conf and lld-disks.py to /usr/local/bin/lld-disks.py.
Do not forget to mark it executable.

# diskstats user parameters config
sudo mkdir -p /etc/zabbix/zabbix_agentd.d/
sudo wget https://raw.githubusercontent.com/grundic/zabbix-disk-performance/master/userparameter_diskstats.conf -O /etc/zabbix/zabbix_agentd.d/userparameter_diskstats.conf

# low level discovery script
sudo wget https://raw.githubusercontent.com/grundic/zabbix-disk-performance/master/lld-disks.py -O /usr/local/bin/lld-disks.py
sudo chmod +x /usr/local/bin/lld-disks.py

userparameter_diskstats.conf is user parameters for Zabbix.
lld-disks.py is low level discovery script for enumerating disks of your system.

After that restart zabbix-agent
sudo service zabbix-agent restart

Go to Zabbix’s web interface, Configuration->Templates and import Template Disk Performance.xml.
After that you should be able to monitor disk activity for all your disks.

Please note, that items and graphs are created for each disk/partition individually using discovery script, so do not expect to
find them under usual configuration — they would be in Discovery rules section:

Discovery Rules

Low level discovery will list your RAID devices, and LVM volumes, but LVM
volumes will be mapped with their device-mapper ID, not the pretty names.

Using without User Parameters

Zabbix have standard parameters for monitoring disk io: vfs.dev.read and vfs.dev.write with several types:

  • sectors
  • operations
  • sps
  • ops

Template have this values configured, but disabled by default.

Testing

To test that everything work use zabbix_get (from some time this is in it’s own package, so do apt-get/yum install zabbix-get):

# view result of low level discovery
zabbix_get -s 127.0.0.1 -k "custom.vfs.discover_disks"
# view statistics for 'sda' disk
zabbix_get -s 127.0.0.1 -k "custom.vfs.dev.write.sectors[sda]"

Понравилась статья? Поделить с друзьями:
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
  • Windows поддержка utf 8
  • Как из ноутбука сделать монитор через hdmi windows 10
  • Microsoft windows publisher вирус
  • Windows show size of folders
  • Леново s10 3 драйвера windows 7