Template module windows physical disks by zabbix agent active

Присматриваем за окнами. Windows + Zabbix Введение Практика «Агента» Если у Вас установлен Zabbix агент, то общаться мы будем с ОС через него. При

Содержание

  1. Присматриваем за окнами. Windows + Zabbix
  2. Введение
  3. Практика «Агента»
  4. Практика SNMP
  5. Заключение
  6. Мониторинг производительности дисковой подсистемы при помощи zabbix и block stat
  7. Небольшое отступление
  8. Мониторинг дисков в zabbix
  9. Утилизация дисковой подсистемы
  10. Время обработки запроса
  11. Пропускная способность
  12. Количество операций ввода-вывода в секунду
  13. Заключение
  14. Zabbix + Windows
  15. Windows
  16. Available solutions
  17. Windows CPU by Zabbix agent
  18. Overview
  19. Setup
  20. Zabbix configuration
  21. Macros used
  22. Template links
  23. Discovery rules
  24. Items collected
  25. Triggers
  26. Feedback
  27. Windows memory by Zabbix agent
  28. Overview
  29. Setup
  30. Zabbix configuration
  31. Macros used
  32. Template links
  33. Discovery rules
  34. Items collected
  35. Triggers
  36. Feedback
  37. Windows filesystems by Zabbix agent
  38. Overview
  39. Setup
  40. Zabbix configuration
  41. Macros used
  42. Template links
  43. Discovery rules
  44. Items collected
  45. Triggers
  46. Feedback
  47. Windows physical disks by Zabbix agent
  48. Overview
  49. Setup
  50. Zabbix configuration
  51. Macros used
  52. Template links
  53. Discovery rules
  54. Items collected
  55. Triggers
  56. Feedback
  57. Windows generic by Zabbix agent
  58. Overview
  59. Setup
  60. Zabbix configuration
  61. Macros used
  62. Template links
  63. Discovery rules
  64. Items collected
  65. Triggers
  66. Feedback
  67. Windows network by Zabbix agent
  68. Overview
  69. Setup
  70. Zabbix configuration
  71. Macros used
  72. Template links
  73. Discovery rules
  74. Items collected
  75. Triggers
  76. Feedback
  77. Windows services by Zabbix agent
  78. Overview
  79. Setup
  80. Zabbix configuration
  81. Macros used
  82. Template links
  83. Discovery rules
  84. Items collected
  85. Triggers
  86. Feedback
  87. Windows by Zabbix agent
  88. Overview
  89. Setup
  90. Zabbix configuration
  91. Template links
  92. Discovery rules
  93. Items collected
  94. Triggers
  95. Feedback
  96. Windows CPU by Zabbix agent active
  97. Overview
  98. Setup
  99. Zabbix configuration
  100. Macros used
  101. Template links
  102. Discovery rules
  103. Items collected
  104. Triggers
  105. Feedback
  106. Windows memory by Zabbix agent active
  107. Overview
  108. Setup
  109. Zabbix configuration
  110. Macros used
  111. Template links
  112. Discovery rules
  113. Items collected
  114. Triggers
  115. Feedback
  116. Windows filesystems by Zabbix agent active
  117. Overview
  118. Setup
  119. Zabbix configuration
  120. Macros used
  121. Template links
  122. Discovery rules
  123. Items collected
  124. Triggers
  125. Feedback
  126. Windows physical disks by Zabbix agent active
  127. Overview
  128. Setup
  129. Zabbix configuration
  130. Macros used
  131. Template links
  132. Discovery rules
  133. Items collected
  134. Triggers
  135. Feedback
  136. Windows generic by Zabbix agent active
  137. Overview
  138. Setup
  139. Zabbix configuration
  140. Macros used
  141. Template links
  142. Discovery rules
  143. Items collected
  144. Triggers
  145. Feedback
  146. Windows network by Zabbix agent active
  147. Overview
  148. Setup
  149. Zabbix configuration
  150. Macros used
  151. Template links
  152. Discovery rules
  153. Items collected
  154. Triggers
  155. Feedback
  156. Windows services by Zabbix agent active
  157. Overview
  158. Setup
  159. Zabbix configuration
  160. Macros used
  161. Template links
  162. Discovery rules
  163. Items collected
  164. Triggers
  165. Feedback
  166. Windows by Zabbix agent active
  167. Overview
  168. Setup
  169. Zabbix configuration
  170. Template links
  171. Discovery rules
  172. Items collected
  173. Triggers
  174. Feedback
  175. Windows SNMP
  176. Overview
  177. Setup
  178. Zabbix configuration
  179. Template links
  180. Discovery rules
  181. Items collected
  182. Triggers
  183. Feedback
  184. Known Issues

Присматриваем за окнами. Windows + Zabbix

Введение

Практика «Агента»

Если у Вас установлен Zabbix агент, то общаться мы будем с ОС через него.

При просмотра шаблона Template OS Windows обращаем внимание на элемент данных:
Average disk write queue length perf_counter[234(_Total)1404].

Что же означают эти цифры 234(_Total)1404. ?

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

Получаем счетчики следующим образом:
typeperf -q

А если у нас несколько жестких дисков (интерфейсов и т.п.):
typeperf -qx

Слишком много информации? Фильтруем:
typeperf «Физический диск(_Total)»

Другой вариант получить счетчики:
lodctr /s:perfcount.txt
Открыв файл мы увидем идентификаторы и их название в начале на английском, а затем на русском языке.

Практика SNMP

Но что делать, когда нельзя (или нет желания) установить агент?
Для этого, мы будем читать счетчики через SNMP:

snmpwalk -Of -c public -v 2c 192.168.0.1

Если выполнять под ОС Windows, то результат будет вида:
.iso.3.6.1.2.1.1.1.0 = STRING: «Hardware: Intel64 Family 6 Model 44 Stepping 2 AT/AT COMPATIBLE — Software: Windows Version 6.1 (Build 7601 Multiprocessor Free)»

Если выполнять под ОС Linux, то результат будет вида:
.iso.org.dod.internet.mgmt.mib-2.system.sysDescr.0 = STRING: Hardware: Intel64 Family 6 Model 44 Stepping 2 AT/AT COMPATIBLE — Software: Windows Version 6.1 (Build 7601 Multiprocessor Free)

(Также можно поискать соответствие цифр с названиями на http://support.ipmonitor.com/snmp_center.aspx)

Linux вариант более информативный.

Заключение

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

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

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

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

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

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

Да есть куча утилит, которая позволит протестировать диски, например тот же fio. Но ничто не сравнится с тестированием реальной нагрузкой.

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

Когда то давным-давно для этих целей использовал iostat, лютый парсер к нему и gnuplot, и даже написал статейку habr.com/post/165855. Скажу я вам – это жутко неудобно.

Куда как удобнее натравить на систему zabbix и мониторить. А к zabbix можно прикрутить модную Grafana и мониторить красиво. Сразу скажу – выбор zabbix скорее исторический: «потому что он уже был».

Мониторинг дисков в zabbix

Справедливости ради скажу, что в zabbix уже есть встроенные ключи vfs.dev.*, но увы очень мало: скорость чтения и записи, объем.

А что нужно нам?

Практика показывает что ключевые метрики по которым можно оценивать дисковую подсистему это:

  • Количество операций в секунду (ops)
  • Пропускная способность (throughput)
  • Время обработки запроса (latency или правильней svctime)
  • Утилизация дисковой подсистемы (utilization)

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

Все эти метрики есть в iostat. Но как их положить в zabbix?

Легкое гугление приводит нас к различным парсерам iostat, в том числе и здесь.

Но мне по душе другой вариант, а именно парсинг вывода /sys/class/block/*/stat

  • это первоисточник данных — iostat так же использует эти данные
  • для разбора показателей можно ограничиться только однострочником в UserParameter без дополнительных скриптов.

Но есть и недостатки:

  • Некоторые параметры необходимо вычислять делением дельты одного на дельту другого, причем не простой, а временной (скорости). В zabbix это сделать можно, но это будут не одновременные запросы, как если бы это делал сложный скрипт, а отношение последних значений, что в принципе не совсем верно, но в нашем случае довольно точно.

Итак, кроме самого zabbix и zabbix-agent на наблюдаемой машине нам потребуется awk. Мы используем дистрибутив CentOS 7.4 и zabbix 3.4

Данные в zabbix мы будем собирать при помощи zabbix-agent, создав пользовательские ключи. Для этого в /etc/zabbix/zabbix_agentd.d нужно создать файлик userparameter_custom.vfs.conf примерно со следующим содержимым:

UserParameter=custom.vfs.dev.io.ms[*],cat /sys/class/block/$1/stat | awk ‘‘

Тут все просто — создаем пользовательский ключ custom.vfs.dev.io.ms, в качестве параметра передаем туда имя блочного устройства, значением параметра будет 10 колонка файлика stat.

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

Колонка №10 это io_tics — количество миллисекунд затраченным устройством на ввод вывод. Как почти все параметры — эта цифра является аккумулятором и постоянно возрастает. Как же получить из них привычные метрики.

Утилизация дисковой подсистемы

Эта метрика аналогична значению поля utils команды iostat -x. Характеризует загрузку дисковой подсистемы. По сути это сколько процентов реального времени система затратила на операции ввода-вывода за интервал между опросами. Как правило при приближении к 100% система начинает все больше простаивать в ожидании когда диски обработают ваши запросы.

Чтобы получить эту цифру — надо взять значение 10 колонки файла статистики и запомнить его в zabbix как скорость изменения в секунду, не забыв умножить на 0.1 так как значение в статистике в миллисекундах, а нам нужны проценты.

Аналогичным образом можно посчитать нагрузку записью/чтением (колонки write_ticks / read_ticks).

Время обработки запроса

Эта метрика аналогична r_svctime и w_svctime для записи и чтения соответственно. По сути это усредненное время обработки запросов за интервал между опросами.

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

Для этого нам понадобится создать три ключа:

    write utils — количество времени потраченное на запись — колонка №8 write_ticks сохраненная, как скорость изменения в секунду между опросами. По сути значение ключа в zabbix будет утилизация записью.

  • write ops — количество запросов на запись — колонка №5 write I/Os. Так же сохраняем как скорость
  • svctime или latency — искомый параметр. Создаем как вычисляемое значение: последнее значение write utils / последнее значение write ops. Плюс еще поделить на 1000 чтобы в секунды перейти
  • Абсолютно также считается время обработки запросов на чтение, только используя колонки №1 read I/Os и №4 read_ticks.

    Пропускная способность

    Метрика показывающая с какой скоростью данные были записаны или прочитаны

    Для этой метрики используются колонки №3 read sectors и №5 write sectors. Значение сколько было прочитано или записано «секторов». Точно так же в zabbix сохраняем как изменение за секунду.

    Единственный ньюанс — значение в файле указанно «в попугаях-секторах», причем размер этого «сектора» фиксирован 512 байт и не зависит от реальных значений ни физического ни логического сектора устройства (проверял на нескольких устройствах с реальным размером физического сектора 4к). Так что чтобы пересчитать в байты — не забудьте умножить на 512.

    Количество операций ввода-вывода в секунду

    Эта метрика — те самые пресловутые IOPS

    Самая простая метрика — мы ее уже записывали для подсчета svc time это значение колонок №5 write I/Os и №1 read I/Os также сохраненные как скорость в секунду.

    Заключение

    Этих метрик мне как правило достаточно для того чтобы я мог делать обоснованные выводы. Конечно это не все цифры которые можно получить из файла статистики. Например там есть и число текущих обрабатываемых запросов, и количество запросов которые были объеденены. Но полагаю при необходимости вам не составит труда добавить их по аналогии с описанным.
    И да не претендую на авторство — сам метод был когда-то давно загуглен, но за давностью лет ссылки конечно затерялись.

    Увы NDA заставляет кое-что подчистить из них, но надеюсь на работоспособность шаблона это не повлияет.

    А в шапке скриншот из Grafana прикрученной поверх zabbix — демонстрирующий реальные цифры с одной из тестовых инсталляций.

    Zabbix + Windows

    Windows

    Microsoft Windows is a group of several graphical operating system families, all of which are developed, marketed, and sold by Microsoft.

    Available solutions

    Windows CPU by Zabbix agent

    Overview

    For Zabbix version: 5.4 and higher

    Setup

    Refer to the vendor documentation.

    Zabbix configuration

    No specific Zabbix configuration is required.

    Macros used

    The critical threshold of the % Interrupt Time counter.

    The threshold of the % Privileged Time counter.

    The threshold of the Processor Queue Length counter.

    The critical threshold of the CPU utilization in %.

    Template links

    There are no template links in this template.

    Discovery rules

    Items collected

    CPU utilization in %

    The Processor Information% Interrupt Time is the time the processor spends receiving and servicing

    hardware interrupts during sample intervals. This value is an indirect indicator of the activity of

    devices that generate interrupts, such as the system clock, the mouse, disk drivers, data communication

    lines, network interface cards and other peripheral devices. This is an easy way to identify a potential

    hardware failure. This should never be higher than 20%.

    Context Switches/sec is the combined rate at which all processors on the computer are switched from one thread to another.

    Context switches occur when a running thread voluntarily relinquishes the processor, is preempted by a higher priority ready thread, or switches between user-mode and privileged (kernel) mode to use an Executive or subsystem service.

    It is the sum of ThreadContext Switches/sec for all threads running on all processors in the computer and is measured in numbers of switches.

    There are context switch counters on the System and Thread objects. This counter displays the difference between the values observed in the last two samples, divided by the duration of the sample interval.

    The Processor Information% Privileged Time counter shows the percent of time that the processor is spent

    executing in Kernel (or Privileged) mode. Privileged mode includes services interrupts inside Interrupt

    Service Routines (ISRs), executing Deferred Procedure Calls (DPCs), Device Driver calls and other kernel-mode

    functions of the Windows® Operating System.

    Processor DPC time is the time that a single processor spent receiving and servicing deferred procedure

    calls (DPCs). DPCs are interrupts that run at a lower priority than standard interrupts. % DPC Time is a

    component of % Privileged Time because DPCs are executed in privileged mode. If a high % DPC Time is

    sustained, there may be a processor bottleneck or an application or hardware related issue that can

    significantly diminish overall system performance.

    The Processor Information% User Time counter shows the percent of time that the processor(s) is spent executing

    The number of logical processors available on the computer.

    The Processor Queue Length shows the number of threads that are observed as delayed in the processor Ready Queue

    and are waiting to be executed.

    Group Name Description Type Key and additional info
    CPU CPU utilization ZABBIX_PASSIVE system.cpu.util
    CPU CPU interrupt time ZABBIX_PASSIVE perf_counter_en[«Processor Information(_total)% Interrupt Time»]
    CPU Context switches per second ZABBIX_PASSIVE perf_counter_en[«SystemContext Switches/sec»]
    CPU CPU privileged time ZABBIX_PASSIVE perf_counter_en[«Processor Information(_total)% Privileged Time»]
    CPU CPU DPC time ZABBIX_PASSIVE perf_counter_en[«Processor Information(_total)% DPC Time»]
    CPU CPU user time ZABBIX_PASSIVE perf_counter_en[«Processor Information(_total)% User Time»]
    CPU Number of cores ZABBIX_PASSIVE wmi.get[root/cimv2,»Select NumberOfLogicalProcessors from Win32_ComputerSystem»]
    CPU CPU queue length ZABBIX_PASSIVE perf_counter_en[«SystemProcessor Queue Length»]

    Triggers

    CPU utilization is too high. The system might be slow to respond.

    «The CPU Interrupt Time in the last 5 minutes exceeds <$CPU.INTERRUPT.CRIT.MAX>%.»

    The Processor Information% Interrupt Time is the time the processor spends receiving and servicing

    hardware interrupts during sample intervals. This value is an indirect indicator of the activity of

    devices that generate interrupts, such as the system clock, the mouse, disk drivers, data communication

    lines, network interface cards and other peripheral devices. This is an easy way to identify a potential

    hardware failure. This should never be higher than 20%.

    Depends on:

    — High CPU utilization (over <$CPU.UTIL.CRIT>% for 5m)

    The CPU privileged time in the last 5 minutes exceeds <$CPU.PRIV.CRIT.MAX>%.

    Depends on:

    — CPU interrupt time is too high (over <$CPU.INTERRUPT.CRIT.MAX>% for 5m)

    — High CPU utilization (over <$CPU.UTIL.CRIT>% for 5m)

    The CPU Queue Length in the last 5 minutes exceeds <$CPU.QUEUE.CRIT.MAX>. According to actual observations, PQL should not exceed the number of cores * 2. To fine-tune the conditions, use the macro <$CPU.QUEUE.CRIT.MAX >.

    Depends on:

    — High CPU utilization (over <$CPU.UTIL.CRIT>% for 5m)

    Feedback

    Please report any issues with the template at https://support.zabbix.com

    Windows memory by Zabbix agent

    Overview

    For Zabbix version: 5.4 and higher

    Setup

    Refer to the vendor documentation.

    Zabbix configuration

    No specific Zabbix configuration is required.

    Macros used

    The warning threshold of the Memory Pages/sec counter.

    The warning threshold of the Free System Page Table Entries counter.

    The warning threshold of the Memory util item.

    The warning threshold of the minimum free swap.

    Template links

    There are no template links in this template.

    Discovery rules

    Items collected

    Name Description Expression Severity Dependencies and additional info
    High CPU utilization (over <$CPU.UTIL.CRIT>% for 5m) > WARNING
    CPU interrupt time is too high (over <$CPU.INTERRUPT.CRIT.MAX>% for 5m)
    CPU privileged time is too high (over <$CPU.PRIV.CRIT.MAX>% for 5m)
    CPU queue length is too high (over <$CPU.QUEUE.CRIT.MAX>for 5m)

    Used memory in Bytes

    Total memory in Bytes

    Memory utilization in %

    Cache Bytes is the sum of the MemorySystem Cache Resident Bytes, MemorySystem Driver Resident Bytes,

    MemorySystem Code Resident Bytes, and MemoryPool Paged Resident Bytes counters. This counter displays

    the last observed value only; it is not an average.

    The free space of swap volume/file in bytes.

    The free space of swap volume/file in percent.

    The total space of swap volume/file in bytes.

    This indicates the number of page table entries not currently in use by the system. If the number is less

    than 5,000, there may well be a memory leak or you running out of memory.

    Page Faults/sec is the average number of pages faulted per second. It is measured in number of pages

    faulted per second because only one page is faulted in each fault operation, hence this is also equal

    to the number of page fault operations. This counter includes both hard faults (those that require

    disk access) and soft faults (where the faulted page is found elsewhere in physical memory.) Most

    processors can handle large numbers of soft faults without significant consequence. However, hard faults,

    which require disk access, can cause significant delays.

    This measures the rate at which pages are read from or written to disk to resolve hard page faults.

    If the value is greater than 1,000, as a result of excessive paging, there may be a memory leak.

    This measures the size, in bytes, of the non-paged pool. This is an area of system memory for objects

    that cannot be written to disk but instead must remain in physical memory as long as they are allocated.

    There is a possible memory leak if the value is greater than 175MB (or 100MB with the /3GB switch).

    A typical Event ID 2019 is recorded in the system event log.

    Group Name Description Type Key and additional info
    Memory Used memory ZABBIX_PASSIVE vm.memory.size[used]
    Memory Total memory ZABBIX_PASSIVE vm.memory.size[total]
    Memory Memory utilization CALCULATED vm.memory.util

    Expression:

    last(«vm.memory.size[used]») / last(«vm.memory.size[total]») * 100

    Memory Cache bytes ZABBIX_PASSIVE perf_counter_en[«MemoryCache Bytes»]
    Memory Free swap space CALCULATED system.swap.free

    Expression:

    last(«system.swap.size[,total]») — last(«system.swap.size[,total]») / 100 * last(«perf_counter_en[»Paging file(_Total)% Usage»]»)

    Memory Free swap space in % DEPENDENT system.swap.pfree

    Preprocessing:

    — JAVASCRIPT: return (100 — value)

    The used space of swap volume/file in percent.

    ZABBIX_PASSIVE perf_counter_en[«Paging file(_Total)% Usage»]
    Memory Total swap space ZABBIX_PASSIVE system.swap.size[,total]
    Memory Free system page table entries ZABBIX_PASSIVE perf_counter_en[«MemoryFree System Page Table Entries»]
    Memory Memory page faults per second ZABBIX_PASSIVE perf_counter_en[«MemoryPage Faults/sec»]
    Memory Memory pages per second ZABBIX_PASSIVE perf_counter_en[«MemoryPages/sec»]
    Memory Memory pool non-paged ZABBIX_PASSIVE perf_counter_en[«MemoryPool Nonpaged Bytes»]

    Triggers

    The system is running out of free memory.

    This trigger is ignored, if there is no swap configured

    Depends on:

    — High memory utilization (><$MEMORY.UTIL.MAX>% for 5m)

    The Memory Free System Page Table Entries is less than <$MEM.PAGE_TABLE_CRIT.MIN>for 5 minutes. If the number is less than 5,000, there may well be a memory leak.

    Depends on:

    — High memory utilization (><$MEMORY.UTIL.MAX>% for 5m)

    The Memory Pages/sec in the last 5 minutes exceeds <$MEM.PAGE_SEC.CRIT.MAX>. If the value is greater than 1,000, as a result of excessive paging, there may be a memory leak.

    Depends on:

    — High memory utilization (><$MEMORY.UTIL.MAX>% for 5m)

    Feedback

    Please report any issues with the template at https://support.zabbix.com

    Windows filesystems by Zabbix agent

    Overview

    For Zabbix version: 5.4 and higher

    Setup

    Refer to the vendor documentation.

    Zabbix configuration

    No specific Zabbix configuration is required.

    Macros used

    This macro is used in filesystems discovery. Can be overridden on the host or linked template level.

    This macro is used in filesystems discovery. Can be overridden on the host or linked template level.

    This macro is used in filesystems discovery. Can be overridden on the host or linked template level.

    This macro is used in filesystems discovery. Can be overridden on the host or linked template level.

    This macro is used in filesystems discovery. Can be overridden on the host or linked template level.

    This macro is used in filesystems discovery. Can be overridden on the host or linked template level.

    The critical threshold of the filesystem utilization in percent.

    The warning threshold of the filesystem utilization in percent.

    Template links

    There are no template links in this template.

    Discovery rules

    Name Description Expression Severity Dependencies and additional info
    High memory utilization (><$MEMORY.UTIL.MAX>% for 5m) > AVERAGE
    High swap space usage (less than <$SWAP.PFREE.MIN.WARN>% free)
    Number of free system page table entries is too low (less <$MEM.PAGE_TABLE_CRIT.MIN>for 5m)
    The Memory Pages/sec is too high (over <$MEM.PAGE_SEC.CRIT.MAX>for 5m)

    Discovery of file systems of different types.

    Name Description Type Key and additional info
    Mounted filesystem discovery ZABBIX_PASSIVE vfs.fs.discovery

    Filter:

    Items collected

    Used storage in Bytes

    Total space in Bytes

    Space utilization in % for

    Group Name Description Type Key and additional info
    Filesystems <#FSNAME>: Used space ZABBIX_PASSIVE vfs.fs.size[<#FSNAME>,used]
    Filesystems <#FSNAME>: Total space ZABBIX_PASSIVE vfs.fs.size[<#FSNAME>,total]
    Filesystems <#FSNAME>: Space utilization ZABBIX_PASSIVE vfs.fs.size[<#FSNAME>,pused]

    Triggers

    Two conditions should match: First, space utilization should be above <$VFS.FS.PUSED.MAX.CRIT:»<#FSNAME>«>.

    Second condition should be one of the following:

    — The disk free space is less than 5G.

    — The disk will be full in less than 24 hours.

    Manual close: YES

    Two conditions should match: First, space utilization should be above <$VFS.FS.PUSED.MAX.WARN:»<#FSNAME>«>.

    Second condition should be one of the following:

    — The disk free space is less than 10G.

    — The disk will be full in less than 24 hours.

    Manual close: YES

    Depends on:

    Feedback

    Please report any issues with the template at https://support.zabbix.com

    Windows physical disks by Zabbix agent

    Overview

    For Zabbix version: 5.4 and higher

    Setup

    Refer to the vendor documentation.

    Zabbix configuration

    No specific Zabbix configuration is required.

    Macros used

    This macro is used in physical disks discovery. Can be overridden on the host or linked template level.

    This macro is used in physical disks discovery. Can be overridden on the host or linked template level.

    Disk read average response time (in s) before the trigger would fire.

    The warning threshold of disk time utilization in percent.

    Disk write average response time (in s) before the trigger would fire.

    Template links

    There are no template links in this template.

    Discovery rules

    Name Description Expression Severity Dependencies and additional info
    <#FSNAME>: Disk space is critically low (used > <$VFS.FS.PUSED.MAX.CRIT:»<#FSNAME>«>%) ,pused].last()>><$VFS.FS.PUSED.MAX.CRIT:»<#FSNAME>«> and ((,total].last()>-,used].last()>) AVERAGE ,pused].last()>><$VFS.FS.PUSED.MAX.WARN:»<#FSNAME>«> and ((,total].last()>-,used].last()>) WARNING

    Discovery of installed physical disks.

    Name Description Type Key and additional info
    Physical disks discovery ZABBIX_PASSIVE perf_instance_en.discovery[PhysicalDisk]

    Preprocessing:

    Filter:

    Items collected

    Rate of read operations on the disk.

    Rate of write operations on the disk.

    Current average disk queue, the number of requests outstanding on the disk at the time the performance data is collected.

    This item is the percentage of elapsed time that the selected disk drive was busy servicing read or writes requests.

    The average time for read requests issued to the device to be served. This includes the time spent by the requests in queue and the time spent servicing them.

    The average time for write requests issued to the device to be served. This includes the time spent by the requests in queue and the time spent servicing them.

    Average disk read queue, the number of requests outstanding on the disk at the time the performance data is collected.

    Average disk write queue, the number of requests outstanding on the disk at the time the performance data is collected.

    Group Name Description Type Key and additional info
    Storage <#DEVNAME>: Disk read rate ZABBIX_PASSIVE perf_counter_en[«PhysicalDisk(<#DEVNAME>)Disk Reads/sec»,60]
    Storage <#DEVNAME>: Disk write rate ZABBIX_PASSIVE perf_counter_en[«PhysicalDisk(<#DEVNAME>)Disk Writes/sec»,60]
    Storage <#DEVNAME>: Disk average queue size (avgqu-sz) ZABBIX_PASSIVE perf_counter_en[«PhysicalDisk(<#DEVNAME>)Current Disk Queue Length»,60]
    Storage <#DEVNAME>: Disk utilization ZABBIX_PASSIVE perf_counter_en[«PhysicalDisk(<#DEVNAME>)% Disk Time»,60]
    Storage <#DEVNAME>: Disk read request avg waiting time ZABBIX_PASSIVE perf_counter_en[«PhysicalDisk(<#DEVNAME>)Avg. Disk sec/Read»,60]
    Storage <#DEVNAME>: Disk write request avg waiting time ZABBIX_PASSIVE perf_counter_en[«PhysicalDisk(<#DEVNAME>)Avg. Disk sec/Write»,60]
    Storage <#DEVNAME>: Average disk read queue length ZABBIX_PASSIVE perf_counter_en[«PhysicalDisk(<#DEVNAME>)Avg. Disk Read Queue Length»,60]
    Storage <#DEVNAME>: Average disk write queue length ZABBIX_PASSIVE perf_counter_en[«PhysicalDisk(<#DEVNAME>)Avg. Disk Write Queue Length»,60]

    Triggers

    The disk appears to be under heavy load

    Manual close: YES

    Depends on:

    — <#DEVNAME>: Disk read request responses are too high (read > <$VFS.DEV.READ.AWAIT.WARN:»<#DEVNAME>«>s for 15m

    — <#DEVNAME>: Disk write request responses are too high (write > <$VFS.DEV.WRITE.AWAIT.WARN:»<#DEVNAME>«>s for 15m)

    This trigger might indicate disk <#DEVNAME>saturation.

    Manual close: YES

    This trigger might indicate disk <#DEVNAME>saturation.

    Manual close: YES

    Feedback

    Please report any issues with the template at https://support.zabbix.com

    Windows generic by Zabbix agent

    Overview

    For Zabbix version: 5.4 and higher

    Setup

    Refer to the vendor documentation.

    Zabbix configuration

    No specific Zabbix configuration is required.

    Macros used

    The threshold for difference of system time in seconds.

    Template links

    There are no template links in this template.

    Discovery rules

    Items collected

    Name Description Expression Severity Dependencies and additional info
    <#DEVNAME>: Disk is overloaded (util > <$VFS.DEV.UTIL.MAX.WARN>% for 15m)
    <#DEVNAME>: Disk read request responses are too high (read > <$VFS.DEV.READ.AWAIT.WARN:»<#DEVNAME>«>s for 15m )Avg. Disk sec/Read»,60].min(15m)> > <$VFS.DEV.READ.AWAIT.WARN:»<#DEVNAME>«> WARNING
    <#DEVNAME>: Disk write request responses are too high (write > <$VFS.DEV.WRITE.AWAIT.WARN:»<#DEVNAME>«>s for 15m) )Avg. Disk sec/Write»,60].min(15m)> > <$VFS.DEV.WRITE.AWAIT.WARN:»<#DEVNAME>«> WARNING

    System local time of the host.

    System host name.

    The number of threads used by all running processes.

    Operating system architecture of the host.

    Group Name Description Type Key and additional info
    General System local time ZABBIX_PASSIVE system.localtime
    General System name ZABBIX_PASSIVE system.hostname

    Preprocessing:

    System description of the host.

    ZABBIX_PASSIVE system.uname

    Preprocessing:

    The number of processes.

    ZABBIX_PASSIVE proc.num[]
    General Number of threads ZABBIX_PASSIVE perf_counter_en[«SystemThreads»]
    Inventory Operating system architecture ZABBIX_PASSIVE system.sw.arch

    Preprocessing:

    System uptime in ‘N days, hh:mm:ss’ format.

    ZABBIX_PASSIVE system.uptime

    Triggers

    The host system time is different from the Zabbix server time.

    Manual close: YES

    System name has changed. Ack to close.

    Manual close: YES

    Manual close: YES

    Feedback

    Please report any issues with the template at https://support.zabbix.com

    Windows network by Zabbix agent

    Overview

    For Zabbix version: 5.4 and higher

    Setup

    Refer to the vendor documentation.

    Zabbix configuration

    No specific Zabbix configuration is required.

    Macros used

    This macro is used in Network interface discovery. Can be overridden on the host or linked template level.

    This macro is used in Network interface discovery. Can be overridden on the host or linked template level.

    This macro is used in Network interface discovery. Can be overridden on the host or linked template level.

    This macro is used in Network interface discovery. Can be overridden on the host or linked template level.

    This macro is used in Network interface discovery. Can be overridden on the host or linked template level.

    This macro is used in Network interface discovery. Can be overridden on the host or linked template level.

    Name Description Expression Severity Dependencies and additional info
    System time is out of sync (diff with Zabbix server > <$SYSTEM.FUZZYTIME.MAX>s)
    System name has changed (new name: )
    Host has been restarted (uptime WARNING Miniport|Virtual|Teredo|Kernel|Loopback|Bluetooth|HTTPS|6to4|QoS|Layer

    Template links

    There are no template links in this template.

    Discovery rules

    Discovery of installed network interfaces.

    Name Description Type Key and additional info
    Network interfaces discovery DEPENDENT net.if.discovery

    Preprocessing:

    — JAVASCRIPT: Text is too long. Please see the template.

    Filter:

    Items collected

    Incoming traffic on the network interface.

    Outgoing traffic on the network interface.

    The number of incoming packets dropped on the network interface.

    The number of outgoing packets dropped on the network interface.

    The number of incoming packets with errors on the network interface.

    The number of outgoing packets with errors on the network interface.

    Estimated bandwidth of the network interface if any.

    The type of the network interface.

    The operational status of the network interface.

    Raw data of win32_networkadapter.

    Group Name Description Type Key and additional info
    Network_interfaces Interface <#IFNAME>(<#IFALIAS>): Bits received ZABBIX_PASSIVE net.if.in[«<#IFNAME>«]

    Preprocessing:

    Network_interfaces Interface <#IFNAME>(<#IFALIAS>): Bits sent ZABBIX_PASSIVE net.if.out[«<#IFNAME>«]

    Preprocessing:

    Network_interfaces Interface <#IFNAME>(<#IFALIAS>): Inbound packets discarded ZABBIX_PASSIVE net.if.in[«<#IFNAME>«,dropped]

    Preprocessing:

    — CHANGE_PER_SECOND

    Network_interfaces Interface <#IFNAME>(<#IFALIAS>): Outbound packets discarded ZABBIX_PASSIVE net.if.out[«<#IFNAME>«,dropped]

    Preprocessing:

    — CHANGE_PER_SECOND

    Network_interfaces Interface <#IFNAME>(<#IFALIAS>): Inbound packets with errors ZABBIX_PASSIVE net.if.in[«<#IFNAME>«,errors]

    Preprocessing:

    — CHANGE_PER_SECOND

    Network_interfaces Interface <#IFNAME>(<#IFALIAS>): Outbound packets with errors ZABBIX_PASSIVE net.if.out[«<#IFNAME>«,errors]

    Preprocessing:

    — CHANGE_PER_SECOND

    Network_interfaces Interface <#IFNAME>(<#IFALIAS>): Speed DEPENDENT net.if.speed[«<#IFNAME>«]

    Preprocessing:

    ⛔️ON_FAIL: CUSTOM_VALUE -> 0

    — JAVASCRIPT: return (value==’9223372036854775807′ ? 0 : value)

    Network_interfaces Interface <#IFNAME>(<#IFALIAS>): Interface type DEPENDENT net.if.type[«<#IFNAME>«]

    Preprocessing:

    — JSONPATH: $[?(@.Name == «<#IFNAME>«)].AdapterTypeId.first()

    Network_interfaces Interface <#IFNAME>(<#IFALIAS>): Operational status DEPENDENT net.if.status[«<#IFNAME>«]

    Preprocessing:

    — JSONPATH: $[?(@.Name == «<#IFNAME>«)].NetConnectionStatus.first()

    Zabbix_raw_items Network interfaces WMI get ZABBIX_PASSIVE wmi.getall[rootcimv2,»select Name,Description,NetConnectionID,Speed,AdapterTypeId,NetConnectionStatus from win32_networkadapter where PhysicalAdapter=True and NetConnectionStatus>0″]

    Triggers

    The network interface utilization is close to its estimated maximum bandwidth.

    Manual close: YES

    Depends on:

    Recovers when below 80% of <$IF.ERRORS.WARN:»<#IFNAME>«> threshold

    Manual close: YES

    Depends on:

    This Ethernet connection has transitioned down from its known maximum speed. This might be a sign of autonegotiation issues. Ack to close.

    Manual close: YES

    Depends on:

    This trigger expression works as follows:

    1. Can be triggered if operations status is down.

    2. <$IFCONTROL:»<#IFNAME>»>=1 — user can redefine Context macro to value — 0. That marks this interface as not important.

    No new trigger will be fired if this interface is down.

    3. =1) — trigger fires only if operational status is different from Connected(2).

    WARNING: if closed manually — won’t fire again on next poll, because of .diff.

    Manual close: YES

    Feedback

    Please report any issues with the template at https://support.zabbix.com

    Windows services by Zabbix agent

    Overview

    For Zabbix version: 5.4 and higher
    Special version of services template that is required for Windows OS.

    Setup

    Refer to the vendor documentation.

    Zabbix configuration

    No specific Zabbix configuration is required.

    Macros used

    This macro is used in Service discovery. Can be overridden on the host or linked template level.

    This macro is used in Service discovery. Can be overridden on the host or linked template level.

    Name Description Expression Severity Dependencies and additional info
    Interface <#IFNAME>(<#IFALIAS>): High bandwidth usage (> <$IF.UTIL.MAX:»<#IFNAME>«>% ) («].avg(15m)>>(<$IF.UTIL.MAX:»<#IFNAME>«>/100)*«].last()> or «].avg(15m)>>(<$IF.UTIL.MAX:»<#IFNAME>«>/100)*«].last()>) and «].last()>>0

    «].avg(15m)>

    WARNING
    Interface <#IFNAME>(<#IFALIAS>): High error rate (> <$IF.ERRORS.WARN:»<#IFNAME>«> for 5m) «,errors].min(5m)>><$IF.ERRORS.WARN:»<#IFNAME>«> or «,errors].min(5m)>><$IF.ERRORS.WARN:»<#IFNAME>«>

    «,errors].max(5m)>

    WARNING
    Interface <#IFNAME>(<#IFALIAS>): Ethernet has changed to lower speed than it was before <$IFCONTROL:»<#IFNAME>«>=1 and («].last()><>2 and «].diff()>=1)

    «].last()>=2 or <$IFCONTROL:»<#IFNAME>«>=0

    AVERAGE ^RemoteRegistry|MMCSS|gupdate|SysmonLog|clr_optimization_v.+|clr_optimization_v.+|sppsvc|gpsvc|Pml Driver HPZ12|Net Driver HPZ12|MapsBroker|IntelAudioService|Intel(R) TPM Provisioning Service|dbupdate|DoSvc$

    This macro is used in Service discovery. Can be overridden on the host or linked template level.

    This macro is used in Service discovery. Can be overridden on the host or linked template level.

    ^manual|disabled$

    Template links

    There are no template links in this template.

    Discovery rules

    Discovery of Windows services of different types as defined in template’s macros.

    Name Description Type Key and additional info
    Windows services discovery ZABBIX_PASSIVE service.discovery

    Filter:

    Items collected

    Group Name Description Type Key and additional info
    Services State of service «<#SERVICE.NAME>» (<#SERVICE.DISPLAYNAME>) ZABBIX_PASSIVE service.info[«<#SERVICE.NAME>«,state]

    Triggers

    The service has a state other than «Running» for the last three times.

    Name Description Expression Severity Dependencies and additional info
    «<#SERVICE.NAME>» (<#SERVICE.DISPLAYNAME>) is not running (startup type <#SERVICE.STARTUPNAME>) «,state].min(#3)><>0 AVERAGE

    Feedback

    Please report any issues with the template at https://support.zabbix.com

    Windows by Zabbix agent

    Overview

    For Zabbix version: 5.4 and higher
    New official Windows template. Requires agent of Zabbix 4.4 and newer.

    This template was tested on:

    • Windows, version 7 and newer.
    • Windows Server, version 2008 R2 and newer.

    Setup

    Install Zabbix agent on Windows OS according to Zabbix documentation.

    Zabbix configuration

    No specific Zabbix configuration is required.

    Template links

    Name
    Windows CPU by Zabbix agent
    Windows filesystems by Zabbix agent
    Windows generic by Zabbix agent
    Windows memory by Zabbix agent
    Windows network by Zabbix agent
    Windows physical disks by Zabbix agent
    Windows services by Zabbix agent
    Zabbix agent

    Discovery rules

    Items collected

    Group Name Description Type Key and additional info

    Triggers

    Name Description Expression Severity Dependencies and additional info

    Feedback

    Please report any issues with the template at https://support.zabbix.com

    You can also provide a feedback, discuss the template or ask for help with it at ZABBIX forums.

    Windows CPU by Zabbix agent active

    Overview

    For Zabbix version: 5.4 and higher

    Setup

    Refer to the vendor documentation.

    Zabbix configuration

    No specific Zabbix configuration is required.

    Macros used

    The critical threshold of the % Interrupt Time counter.

    The threshold of the % Privileged Time counter.

    The threshold of the Processor Queue Length counter.

    The critical threshold of the CPU utilization in %.

    Template links

    There are no template links in this template.

    Discovery rules

    Items collected

    CPU utilization in %

    The Processor Information% Interrupt Time is the time the processor spends receiving and servicing

    hardware interrupts during sample intervals. This value is an indirect indicator of the activity of

    devices that generate interrupts, such as the system clock, the mouse, disk drivers, data communication

    lines, network interface cards and other peripheral devices. This is an easy way to identify a potential

    hardware failure. This should never be higher than 20%.

    Context Switches/sec is the combined rate at which all processors on the computer are switched from one thread to another.

    Context switches occur when a running thread voluntarily relinquishes the processor, is preempted by a higher priority ready thread, or switches between user-mode and privileged (kernel) mode to use an Executive or subsystem service.

    It is the sum of ThreadContext Switches/sec for all threads running on all processors in the computer and is measured in numbers of switches.

    There are context switch counters on the System and Thread objects. This counter displays the difference between the values observed in the last two samples, divided by the duration of the sample interval.

    The Processor Information% Privileged Time counter shows the percent of time that the processor is spent

    executing in Kernel (or Privileged) mode. Privileged mode includes services interrupts inside Interrupt

    Service Routines (ISRs), executing Deferred Procedure Calls (DPCs), Device Driver calls and other kernel-mode

    functions of the Windows® Operating System.

    Processor DPC time is the time that a single processor spent receiving and servicing deferred procedure

    calls (DPCs). DPCs are interrupts that run at a lower priority than standard interrupts. % DPC Time is a

    component of % Privileged Time because DPCs are executed in privileged mode. If a high % DPC Time is

    sustained, there may be a processor bottleneck or an application or hardware related issue that can

    significantly diminish overall system performance.

    The Processor Information% User Time counter shows the percent of time that the processor(s) is spent executing

    The number of logical processors available on the computer.

    The Processor Queue Length shows the number of threads that are observed as delayed in the processor Ready Queue

    and are waiting to be executed.

    Group Name Description Type Key and additional info
    CPU CPU utilization ZABBIX_ACTIVE system.cpu.util
    CPU CPU interrupt time ZABBIX_ACTIVE perf_counter_en[«Processor Information(_total)% Interrupt Time»]
    CPU Context switches per second ZABBIX_ACTIVE perf_counter_en[«SystemContext Switches/sec»]
    CPU CPU privileged time ZABBIX_ACTIVE perf_counter_en[«Processor Information(_total)% Privileged Time»]
    CPU CPU DPC time ZABBIX_ACTIVE perf_counter_en[«Processor Information(_total)% DPC Time»]
    CPU CPU user time ZABBIX_ACTIVE perf_counter_en[«Processor Information(_total)% User Time»]
    CPU Number of cores ZABBIX_ACTIVE wmi.get[root/cimv2,»Select NumberOfLogicalProcessors from Win32_ComputerSystem»]
    CPU CPU queue length ZABBIX_ACTIVE perf_counter_en[«SystemProcessor Queue Length»]

    Triggers

    CPU utilization is too high. The system might be slow to respond.

    «The CPU Interrupt Time in the last 5 minutes exceeds <$CPU.INTERRUPT.CRIT.MAX>%.»

    The Processor Information% Interrupt Time is the time the processor spends receiving and servicing

    hardware interrupts during sample intervals. This value is an indirect indicator of the activity of

    devices that generate interrupts, such as the system clock, the mouse, disk drivers, data communication

    lines, network interface cards and other peripheral devices. This is an easy way to identify a potential

    hardware failure. This should never be higher than 20%.

    Depends on:

    — High CPU utilization (over <$CPU.UTIL.CRIT>% for 5m)

    The CPU privileged time in the last 5 minutes exceeds <$CPU.PRIV.CRIT.MAX>%.

    Depends on:

    — CPU interrupt time is too high (over <$CPU.INTERRUPT.CRIT.MAX>% for 5m)

    — High CPU utilization (over <$CPU.UTIL.CRIT>% for 5m)

    The CPU Queue Length in the last 5 minutes exceeds <$CPU.QUEUE.CRIT.MAX>. According to actual observations, PQL should not exceed the number of cores * 2. To fine-tune the conditions, use the macro <$CPU.QUEUE.CRIT.MAX >.

    Depends on:

    — High CPU utilization (over <$CPU.UTIL.CRIT>% for 5m)

    Feedback

    Please report any issues with the template at https://support.zabbix.com

    Windows memory by Zabbix agent active

    Overview

    For Zabbix version: 5.4 and higher

    Setup

    Refer to the vendor documentation.

    Zabbix configuration

    No specific Zabbix configuration is required.

    Macros used

    The warning threshold of the Memory Pages/sec counter.

    The warning threshold of the Free System Page Table Entries counter.

    The warning threshold of the Memory util item.

    The warning threshold of the minimum free swap.

    Template links

    There are no template links in this template.

    Discovery rules

    Items collected

    Name Description Expression Severity Dependencies and additional info
    High CPU utilization (over <$CPU.UTIL.CRIT>% for 5m) > WARNING
    CPU interrupt time is too high (over <$CPU.INTERRUPT.CRIT.MAX>% for 5m)
    CPU privileged time is too high (over <$CPU.PRIV.CRIT.MAX>% for 5m)
    CPU queue length is too high (over <$CPU.QUEUE.CRIT.MAX>for 5m)

    Used memory in Bytes

    Total memory in Bytes

    Memory utilization in %

    Cache Bytes is the sum of the MemorySystem Cache Resident Bytes, MemorySystem Driver Resident Bytes,

    MemorySystem Code Resident Bytes, and MemoryPool Paged Resident Bytes counters. This counter displays

    the last observed value only; it is not an average.

    The free space of swap volume/file in bytes.

    The free space of swap volume/file in percent.

    The total space of swap volume/file in bytes.

    This indicates the number of page table entries not currently in use by the system. If the number is less

    than 5,000, there may well be a memory leak or you running out of memory.

    Page Faults/sec is the average number of pages faulted per second. It is measured in number of pages

    faulted per second because only one page is faulted in each fault operation, hence this is also equal

    to the number of page fault operations. This counter includes both hard faults (those that require

    disk access) and soft faults (where the faulted page is found elsewhere in physical memory.) Most

    processors can handle large numbers of soft faults without significant consequence. However, hard faults,

    which require disk access, can cause significant delays.

    This measures the rate at which pages are read from or written to disk to resolve hard page faults.

    If the value is greater than 1,000, as a result of excessive paging, there may be a memory leak.

    This measures the size, in bytes, of the non-paged pool. This is an area of system memory for objects

    that cannot be written to disk but instead must remain in physical memory as long as they are allocated.

    There is a possible memory leak if the value is greater than 175MB (or 100MB with the /3GB switch).

    A typical Event ID 2019 is recorded in the system event log.

    Group Name Description Type Key and additional info
    Memory Used memory ZABBIX_ACTIVE vm.memory.size[used]
    Memory Total memory ZABBIX_ACTIVE vm.memory.size[total]
    Memory Memory utilization CALCULATED vm.memory.util

    Expression:

    last(«vm.memory.size[used]») / last(«vm.memory.size[total]») * 100

    Memory Cache bytes ZABBIX_ACTIVE perf_counter_en[«MemoryCache Bytes»]
    Memory Free swap space CALCULATED system.swap.free

    Expression:

    last(«system.swap.size[,total]») — last(«system.swap.size[,total]») / 100 * last(«perf_counter_en[»Paging file(_Total)% Usage»]»)

    Memory Free swap space in % DEPENDENT system.swap.pfree

    Preprocessing:

    — JAVASCRIPT: return (100 — value)

    The used space of swap volume/file in percent.

    ZABBIX_ACTIVE perf_counter_en[«Paging file(_Total)% Usage»]
    Memory Total swap space ZABBIX_ACTIVE system.swap.size[,total]
    Memory Free system page table entries ZABBIX_ACTIVE perf_counter_en[«MemoryFree System Page Table Entries»]
    Memory Memory page faults per second ZABBIX_ACTIVE perf_counter_en[«MemoryPage Faults/sec»]
    Memory Memory pages per second ZABBIX_ACTIVE perf_counter_en[«MemoryPages/sec»]
    Memory Memory pool non-paged ZABBIX_ACTIVE perf_counter_en[«MemoryPool Nonpaged Bytes»]

    Triggers

    The system is running out of free memory.

    This trigger is ignored, if there is no swap configured

    Depends on:

    — High memory utilization (><$MEMORY.UTIL.MAX>% for 5m)

    The Memory Free System Page Table Entries is less than <$MEM.PAGE_TABLE_CRIT.MIN>for 5 minutes. If the number is less than 5,000, there may well be a memory leak.

    Depends on:

    — High memory utilization (><$MEMORY.UTIL.MAX>% for 5m)

    The Memory Pages/sec in the last 5 minutes exceeds <$MEM.PAGE_SEC.CRIT.MAX>. If the value is greater than 1,000, as a result of excessive paging, there may be a memory leak.

    Depends on:

    — High memory utilization (><$MEMORY.UTIL.MAX>% for 5m)

    Feedback

    Please report any issues with the template at https://support.zabbix.com

    Windows filesystems by Zabbix agent active

    Overview

    For Zabbix version: 5.4 and higher

    Setup

    Refer to the vendor documentation.

    Zabbix configuration

    No specific Zabbix configuration is required.

    Macros used

    This macro is used in filesystems discovery. Can be overridden on the host or linked template level.

    This macro is used in filesystems discovery. Can be overridden on the host or linked template level.

    This macro is used in filesystems discovery. Can be overridden on the host or linked template level.

    This macro is used in filesystems discovery. Can be overridden on the host or linked template level.

    This macro is used in filesystems discovery. Can be overridden on the host or linked template level.

    This macro is used in filesystems discovery. Can be overridden on the host or linked template level.

    The critical threshold of the filesystem utilization in percent.

    The warning threshold of the filesystem utilization in percent.

    Template links

    There are no template links in this template.

    Discovery rules

    Name Description Expression Severity Dependencies and additional info
    High memory utilization (><$MEMORY.UTIL.MAX>% for 5m) > AVERAGE
    High swap space usage (less than <$SWAP.PFREE.MIN.WARN>% free)
    Number of free system page table entries is too low (less <$MEM.PAGE_TABLE_CRIT.MIN>for 5m)
    The Memory Pages/sec is too high (over <$MEM.PAGE_SEC.CRIT.MAX>for 5m)

    Discovery of file systems of different types.

    Name Description Type Key and additional info
    Mounted filesystem discovery ZABBIX_ACTIVE vfs.fs.discovery

    Filter:

    Items collected

    Used storage in Bytes

    Total space in Bytes

    Space utilization in % for

    Group Name Description Type Key and additional info
    Filesystems <#FSNAME>: Used space ZABBIX_ACTIVE vfs.fs.size[<#FSNAME>,used]
    Filesystems <#FSNAME>: Total space ZABBIX_ACTIVE vfs.fs.size[<#FSNAME>,total]
    Filesystems <#FSNAME>: Space utilization ZABBIX_ACTIVE vfs.fs.size[<#FSNAME>,pused]

    Triggers

    Two conditions should match: First, space utilization should be above <$VFS.FS.PUSED.MAX.CRIT:»<#FSNAME>«>.

    Second condition should be one of the following:

    — The disk free space is less than 5G.

    — The disk will be full in less than 24 hours.

    Manual close: YES

    Two conditions should match: First, space utilization should be above <$VFS.FS.PUSED.MAX.WARN:»<#FSNAME>«>.

    Second condition should be one of the following:

    — The disk free space is less than 10G.

    — The disk will be full in less than 24 hours.

    Manual close: YES

    Depends on:

    Feedback

    Please report any issues with the template at https://support.zabbix.com

    Windows physical disks by Zabbix agent active

    Overview

    For Zabbix version: 5.4 and higher

    Setup

    Refer to the vendor documentation.

    Zabbix configuration

    No specific Zabbix configuration is required.

    Macros used

    This macro is used in physical disks discovery. Can be overridden on the host or linked template level.

    This macro is used in physical disks discovery. Can be overridden on the host or linked template level.

    Disk read average response time (in s) before the trigger would fire.

    The warning threshold of disk time utilization in percent.

    Disk write average response time (in s) before the trigger would fire.

    Template links

    There are no template links in this template.

    Discovery rules

    Name Description Expression Severity Dependencies and additional info
    <#FSNAME>: Disk space is critically low (used > <$VFS.FS.PUSED.MAX.CRIT:»<#FSNAME>«>%) ,pused].last()>><$VFS.FS.PUSED.MAX.CRIT:»<#FSNAME>«> and ((,total].last()>-,used].last()>) AVERAGE ,pused].last()>><$VFS.FS.PUSED.MAX.WARN:»<#FSNAME>«> and ((,total].last()>-,used].last()>) WARNING

    Discovery of installed physical disks.

    Name Description Type Key and additional info
    Physical disks discovery ZABBIX_ACTIVE perf_instance_en.discovery[PhysicalDisk]

    Preprocessing:

    Filter:

    Items collected

    Rate of read operations on the disk.

    Rate of write operations on the disk.

    Current average disk queue, the number of requests outstanding on the disk at the time the performance data is collected.

    This item is the percentage of elapsed time that the selected disk drive was busy servicing read or writes requests.

    The average time for read requests issued to the device to be served. This includes the time spent by the requests in queue and the time spent servicing them.

    The average time for write requests issued to the device to be served. This includes the time spent by the requests in queue and the time spent servicing them.

    Average disk read queue, the number of requests outstanding on the disk at the time the performance data is collected.

    Average disk write queue, the number of requests outstanding on the disk at the time the performance data is collected.

    Group Name Description Type Key and additional info
    Storage <#DEVNAME>: Disk read rate ZABBIX_ACTIVE perf_counter_en[«PhysicalDisk(<#DEVNAME>)Disk Reads/sec»,60]
    Storage <#DEVNAME>: Disk write rate ZABBIX_ACTIVE perf_counter_en[«PhysicalDisk(<#DEVNAME>)Disk Writes/sec»,60]
    Storage <#DEVNAME>: Disk average queue size (avgqu-sz) ZABBIX_ACTIVE perf_counter_en[«PhysicalDisk(<#DEVNAME>)Current Disk Queue Length»,60]
    Storage <#DEVNAME>: Disk utilization ZABBIX_ACTIVE perf_counter_en[«PhysicalDisk(<#DEVNAME>)% Disk Time»,60]
    Storage <#DEVNAME>: Disk read request avg waiting time ZABBIX_ACTIVE perf_counter_en[«PhysicalDisk(<#DEVNAME>)Avg. Disk sec/Read»,60]
    Storage <#DEVNAME>: Disk write request avg waiting time ZABBIX_ACTIVE perf_counter_en[«PhysicalDisk(<#DEVNAME>)Avg. Disk sec/Write»,60]
    Storage <#DEVNAME>: Average disk read queue length ZABBIX_ACTIVE perf_counter_en[«PhysicalDisk(<#DEVNAME>)Avg. Disk Read Queue Length»,60]
    Storage <#DEVNAME>: Average disk write queue length ZABBIX_ACTIVE perf_counter_en[«PhysicalDisk(<#DEVNAME>)Avg. Disk Write Queue Length»,60]

    Triggers

    The disk appears to be under heavy load

    Manual close: YES

    Depends on:

    — <#DEVNAME>: Disk read request responses are too high (read > <$VFS.DEV.READ.AWAIT.WARN:»<#DEVNAME>«>s for 15m

    — <#DEVNAME>: Disk write request responses are too high (write > <$VFS.DEV.WRITE.AWAIT.WARN:»<#DEVNAME>«>s for 15m)

    This trigger might indicate disk <#DEVNAME>saturation.

    Manual close: YES

    This trigger might indicate disk <#DEVNAME>saturation.

    Manual close: YES

    Feedback

    Please report any issues with the template at https://support.zabbix.com

    Windows generic by Zabbix agent active

    Overview

    For Zabbix version: 5.4 and higher

    Setup

    Refer to the vendor documentation.

    Zabbix configuration

    No specific Zabbix configuration is required.

    Macros used

    The threshold for difference of system time in seconds.

    Template links

    There are no template links in this template.

    Discovery rules

    Items collected

    Name Description Expression Severity Dependencies and additional info
    <#DEVNAME>: Disk is overloaded (util > <$VFS.DEV.UTIL.MAX.WARN>% for 15m)
    <#DEVNAME>: Disk read request responses are too high (read > <$VFS.DEV.READ.AWAIT.WARN:»<#DEVNAME>«>s for 15m )Avg. Disk sec/Read»,60].min(15m)> > <$VFS.DEV.READ.AWAIT.WARN:»<#DEVNAME>«> WARNING
    <#DEVNAME>: Disk write request responses are too high (write > <$VFS.DEV.WRITE.AWAIT.WARN:»<#DEVNAME>«>s for 15m) )Avg. Disk sec/Write»,60].min(15m)> > <$VFS.DEV.WRITE.AWAIT.WARN:»<#DEVNAME>«> WARNING

    System local time of the host.

    System host name.

    The number of threads used by all running processes.

    Operating system architecture of the host.

    Group Name Description Type Key and additional info
    General System local time ZABBIX_ACTIVE system.localtime
    General System name ZABBIX_ACTIVE system.hostname

    Preprocessing:

    System description of the host.

    ZABBIX_ACTIVE system.uname

    Preprocessing:

    The number of processes.

    ZABBIX_ACTIVE proc.num[]
    General Number of threads ZABBIX_ACTIVE perf_counter_en[«SystemThreads»]
    Inventory Operating system architecture ZABBIX_ACTIVE system.sw.arch

    Preprocessing:

    System uptime in ‘N days, hh:mm:ss’ format.

    ZABBIX_ACTIVE system.uptime

    Triggers

    The host system time is different from the Zabbix server time.

    Manual close: YES

    System name has changed. Ack to close.

    Manual close: YES

    Manual close: YES

    Feedback

    Please report any issues with the template at https://support.zabbix.com

    Windows network by Zabbix agent active

    Overview

    For Zabbix version: 5.4 and higher

    Setup

    Refer to the vendor documentation.

    Zabbix configuration

    No specific Zabbix configuration is required.

    Macros used

    This macro is used in Network interface discovery. Can be overridden on the host or linked template level.

    This macro is used in Network interface discovery. Can be overridden on the host or linked template level.

    This macro is used in Network interface discovery. Can be overridden on the host or linked template level.

    This macro is used in Network interface discovery. Can be overridden on the host or linked template level.

    This macro is used in Network interface discovery. Can be overridden on the host or linked template level.

    This macro is used in Network interface discovery. Can be overridden on the host or linked template level.

    Name Description Expression Severity Dependencies and additional info
    System time is out of sync (diff with Zabbix server > <$SYSTEM.FUZZYTIME.MAX>s)
    System name has changed (new name: )
    Host has been restarted (uptime WARNING Miniport|Virtual|Teredo|Kernel|Loopback|Bluetooth|HTTPS|6to4|QoS|Layer

    Template links

    There are no template links in this template.

    Discovery rules

    Discovery of installed network interfaces.

    Name Description Type Key and additional info
    Network interfaces discovery DEPENDENT net.if.discovery

    Preprocessing:

    — JAVASCRIPT: Text is too long. Please see the template.

    Filter:

    Items collected

    Incoming traffic on the network interface.

    Outgoing traffic on the network interface.

    The number of incoming packets dropped on the network interface.

    The number of outgoing packets dropped on the network interface.

    The number of incoming packets with errors on the network interface.

    The number of outgoing packets with errors on the network interface.

    Estimated bandwidth of the network interface if any.

    The type of the network interface.

    The operational status of the network interface.

    Raw data of win32_networkadapter.

    Group Name Description Type Key and additional info
    Network_interfaces Interface <#IFNAME>(<#IFALIAS>): Bits received ZABBIX_ACTIVE net.if.in[«<#IFNAME>«]

    Preprocessing:

    Network_interfaces Interface <#IFNAME>(<#IFALIAS>): Bits sent ZABBIX_ACTIVE net.if.out[«<#IFNAME>«]

    Preprocessing:

    Network_interfaces Interface <#IFNAME>(<#IFALIAS>): Inbound packets discarded ZABBIX_ACTIVE net.if.in[«<#IFNAME>«,dropped]

    Preprocessing:

    — CHANGE_PER_SECOND

    Network_interfaces Interface <#IFNAME>(<#IFALIAS>): Outbound packets discarded ZABBIX_ACTIVE net.if.out[«<#IFNAME>«,dropped]

    Preprocessing:

    — CHANGE_PER_SECOND

    Network_interfaces Interface <#IFNAME>(<#IFALIAS>): Inbound packets with errors ZABBIX_ACTIVE net.if.in[«<#IFNAME>«,errors]

    Preprocessing:

    — CHANGE_PER_SECOND

    Network_interfaces Interface <#IFNAME>(<#IFALIAS>): Outbound packets with errors ZABBIX_ACTIVE net.if.out[«<#IFNAME>«,errors]

    Preprocessing:

    — CHANGE_PER_SECOND

    Network_interfaces Interface <#IFNAME>(<#IFALIAS>): Speed DEPENDENT net.if.speed[«<#IFNAME>«]

    Preprocessing:

    ⛔️ON_FAIL: CUSTOM_VALUE -> 0

    — JAVASCRIPT: return (value==’9223372036854775807′ ? 0 : value)

    Network_interfaces Interface <#IFNAME>(<#IFALIAS>): Interface type DEPENDENT net.if.type[«<#IFNAME>«]

    Preprocessing:

    — JSONPATH: $[?(@.Name == «<#IFNAME>«)].AdapterTypeId.first()

    Network_interfaces Interface <#IFNAME>(<#IFALIAS>): Operational status DEPENDENT net.if.status[«<#IFNAME>«]

    Preprocessing:

    — JSONPATH: $[?(@.Name == «<#IFNAME>«)].NetConnectionStatus.first()

    Zabbix_raw_items Network interfaces WMI get ZABBIX_ACTIVE wmi.getall[rootcimv2,»select Name,Description,NetConnectionID,Speed,AdapterTypeId,NetConnectionStatus from win32_networkadapter where PhysicalAdapter=True and NetConnectionStatus>0″]

    Triggers

    The network interface utilization is close to its estimated maximum bandwidth.

    Manual close: YES

    Depends on:

    Recovers when below 80% of <$IF.ERRORS.WARN:»<#IFNAME>«> threshold

    Manual close: YES

    Depends on:

    This Ethernet connection has transitioned down from its known maximum speed. This might be a sign of autonegotiation issues. Ack to close.

    Manual close: YES

    Depends on:

    This trigger expression works as follows:

    1. Can be triggered if operations status is down.

    2. <$IFCONTROL:»<#IFNAME>»>=1 — user can redefine Context macro to value — 0. That marks this interface as not important.

    No new trigger will be fired if this interface is down.

    3. =1) — trigger fires only if operational status is different from Connected(2).

    WARNING: if closed manually — won’t fire again on next poll, because of .diff.

    Manual close: YES

    Feedback

    Please report any issues with the template at https://support.zabbix.com

    Windows services by Zabbix agent active

    Overview

    For Zabbix version: 5.4 and higher
    Special version of services template that is required for Windows OS.

    Setup

    Refer to the vendor documentation.

    Zabbix configuration

    No specific Zabbix configuration is required.

    Macros used

    This macro is used in Service discovery. Can be overridden on the host or linked template level.

    This macro is used in Service discovery. Can be overridden on the host or linked template level.

    Name Description Expression Severity Dependencies and additional info
    Interface <#IFNAME>(<#IFALIAS>): High bandwidth usage (> <$IF.UTIL.MAX:»<#IFNAME>«>% ) («].avg(15m)>>(<$IF.UTIL.MAX:»<#IFNAME>«>/100)*«].last()> or «].avg(15m)>>(<$IF.UTIL.MAX:»<#IFNAME>«>/100)*«].last()>) and «].last()>>0

    «].avg(15m)>

    WARNING
    Interface <#IFNAME>(<#IFALIAS>): High error rate (> <$IF.ERRORS.WARN:»<#IFNAME>«> for 5m) «,errors].min(5m)>><$IF.ERRORS.WARN:»<#IFNAME>«> or «,errors].min(5m)>><$IF.ERRORS.WARN:»<#IFNAME>«>

    «,errors].max(5m)>

    WARNING
    Interface <#IFNAME>(<#IFALIAS>): Ethernet has changed to lower speed than it was before <$IFCONTROL:»<#IFNAME>«>=1 and («].last()><>2 and «].diff()>=1)

    «].last()>=2 or <$IFCONTROL:»<#IFNAME>«>=0

    AVERAGE ^RemoteRegistry|MMCSS|gupdate|SysmonLog|clr_optimization_v.+|clr_optimization_v.+|sppsvc|gpsvc|Pml Driver HPZ12|Net Driver HPZ12|MapsBroker|IntelAudioService|Intel(R) TPM Provisioning Service|dbupdate|DoSvc$

    This macro is used in Service discovery. Can be overridden on the host or linked template level.

    This macro is used in Service discovery. Can be overridden on the host or linked template level.

    ^manual|disabled$

    Template links

    There are no template links in this template.

    Discovery rules

    Discovery of Windows services of different types as defined in template’s macros.

    Name Description Type Key and additional info
    Windows services discovery ZABBIX_ACTIVE service.discovery

    Filter:

    Items collected

    Group Name Description Type Key and additional info
    Services State of service «<#SERVICE.NAME>» (<#SERVICE.DISPLAYNAME>) ZABBIX_ACTIVE service.info[«<#SERVICE.NAME>«,state]

    Triggers

    The service has a state other than «Running» for the last three times.

    Name Description Expression Severity Dependencies and additional info
    «<#SERVICE.NAME>» (<#SERVICE.DISPLAYNAME>) is not running (startup type <#SERVICE.STARTUPNAME>) «,state].min(#3)><>0 AVERAGE

    Feedback

    Please report any issues with the template at https://support.zabbix.com

    Windows by Zabbix agent active

    Overview

    For Zabbix version: 5.4 and higher
    New official Windows template. Requires agent of Zabbix 4.4 and newer.

    This template was tested on:

    • Windows, version 7 and newer.
    • Windows Server, version 2008 R2 and newer.

    Setup

    Install Zabbix agent on Windows OS according to Zabbix documentation.

    Zabbix configuration

    No specific Zabbix configuration is required.

    Template links

    Name
    Windows CPU by Zabbix agent active
    Windows filesystems by Zabbix agent active
    Windows generic by Zabbix agent active
    Windows memory by Zabbix agent active
    Windows network by Zabbix agent active
    Windows physical disks by Zabbix agent active
    Windows services by Zabbix agent active
    Zabbix agent

    Discovery rules

    Items collected

    Group Name Description Type Key and additional info

    Triggers

    Name Description Expression Severity Dependencies and additional info

    Feedback

    Please report any issues with the template at https://support.zabbix.com

    You can also provide a feedback, discuss the template or ask for help with it at ZABBIX forums.

    Windows SNMP

    Overview

    For Zabbix version: 5.2 and higher

    Setup

    Refer to the vendor documentation.

    Zabbix configuration

    No specific Zabbix configuration is required.

    Template links

    Name
    Generic SNMP
    HOST-RESOURCES-MIB SNMP
    Interfaces Windows SNMP

    Discovery rules

    Items collected

    Group Name Description Type Key and additional info

    Triggers

    Name Description Expression Severity Dependencies and additional info

    Feedback

    Please report any issues with the template at https://support.zabbix.com

    Known Issues

    Description: Doesn’t support In/Out 64 bit counters even though IfxTable is present: Currently, Windows gets it’s interface status from MIB-2. Since these 64bit SNMP counters (ifHCInOctets, ifHCOutOctets, etc.) are defined as an extension to IF-MIB, Microsoft has not implemented it. https://social.technet.microsoft.com/Forums/windowsserver/en-US/07b62ff0-94f6-40ca-a99d-d129c1b33d70/windows-2008-r2-snmp-64bit-counters-support?forum=winservergen

    Description: Doesn’t support ifXTable at all

    Description: EtherLike MIB is not supported

    Читайте также:  Как изменить права папки линукс

    Adblock
    detector

    Для того, чтобы при помощи активного агента 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

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

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

    Ура!!!

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


    И есть ли в этом смысл?

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

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

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

    Мониторинг вообще штука полезная, бесспорно. У меня лично в какой-то период возникло сразу несколько задач:

    1. Круглосуточно и непрерывно мониторить одну специфическую железку по ряду параметров;

    2. Мониторить у рабочих станций информацию о температурах, ЦП в первую очередь;

    3. Всякие мелочи в связи с широким внедрением удалёнки: количество подключений по VPN, общее состояние дополнительных виртуальных машин.

    Подробнее про локальные задачи:

    1. Надо было оценить и наглядно представить данные об интернет-канале. Канал на тот момент представлял собой 4G-роутер Huawei. Это устройство было последним, но далеко не первым в огромном количестве плясок с бубном в попытках избавиться от разного рода нестабильностей. Забегая вперёд: забирать с него данные напрямую о качестве сигнала более-менее стандартными средствами оказалось невозможно, и даже добраться до этих данных — отдельный квест. Пришлось городить дендрофекальную конструкцию, которая, на удивление стабильно, и стала в итоге поставлять данные. Данные в динамике и в графическом представлении оказались настолько неутешительными, что позволили убедить всех причастных таки поменять канал, даже и на более дорогой;

    2. Данные о температуре процессора дают сразу несколько линий: можно обнаружить шифровальщик в процессе работы, наглядно сделать вывод о недостаточной мощности рабочей станции, найти повод провести плановую чистку, узнать о нарушении условий эксплуатации. Последний пункт особенно хорош: множество отказов оборудования и BSOD’ов в итоге нашли причину в «я ставлю обогреватель под стол, ну и свой баул, ну да, прям к этой решётке. А что? А я канпуктер развернула, а то неудобно»;

    3. Интерфейс того же OpenVPN… ну, он в общем даже и не интерфейс и оставляет желать любого другого. Отдельная история.

    Как большой любитель велосипедить всё подряд, сначала я решил свелосипедить и это. Уже валялись под рукой всякие скрипты по сбору статистки, и html проекты с графиками на js, и какие-то тестовые БД… Но тут сработала жадность (и лень, чоужтам). А чего это, подумал я, самому опять корячиться, если в том же Zabbix уже куча всяких шаблонов, и помимо задач из списка можно будет видеть много чего ещё? Да и он бесплатный к тому же. Всего-то делов, виртуалку поднять да клиенты централизованно расставить. Потренируюсь с ним, опять же, он много где используется.

    Итак, нам понадобятся:

    1. Виртуальная машина или физический хост. Zabbix нетребователен к ресурсам при небольшом количестве хостов на мониторинге: мне хватило одного виртуального процессора на 2ГГц и 4 Гб RAM за глаза;

    2. Любой инструмент для автоматического раскидывания zabbix-agent. При некотором скилле это можно делать даже через оригинальный WSUS, или просто батником с psexec, вариантов много. Также желательно запилить предварительно сконфигурированный инсталлятор агента — об этом ниже;

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

    У Zabbix много вариантов установки. В моём случае (я начинал с 4 LTS) сработала только установка руками в чистую, из собственного образа, OC в виртуальной машине на Hyper-V. Так что, коли не получится с первого раза, — не сдавайтесь, пробуйте. Саму процедуру подробнее описывать не буду, есть куча статей и хороший официальный мануал.

    Вот так красиво это выглядит, когда применяется по назначению. Автор: Dotneft - собственная работа, CC BY-SA 4.0 https://commons.wikimedia.org/w/index.php?curid=73459928

    Вот так красиво это выглядит, когда применяется по назначению. Автор: Dotneft — собственная работа, CC BY-SA 4.0 https://commons.wikimedia.org/w/index.php?curid=73459928

    Про формирование инсталлятора агента: один из самых простых способов — использовать утилиты наподобие 7zfx Builder . Нужно будет подготовить:

    • файл zabbix_agentd.conf ;

    • файлы сторонних приложений и скриптов, используемых в userParameters (об этом ниже) ;

    • скрипт инсталлятора с кодом наподобие этого:

    SETLOCAL ENABLEDELAYEDEXPANSION 
    SET INSTDR=C:ZabbixAgent 
    SET IP=192.168.100.10 
    set ip_address_string="IPv4-адрес"
    
    for /f "usebackq tokens=2 delims=:" %%F in (ipconfig ^| findstr /c:%ip_address_string%) do SET IP=%%F 
    SET IP=%IP: =% 
    ECHO SourceIP=%IP%>> "%INSTDR%confzabbix_agentd.conf" 
    ECHO ListenIP=%IP%>> "%INSTDR%confzabbix_agentd.conf" 
    ECHO Hostname=%COMPUTERNAME%>> "%INSTDR%confzabbix_agentd.conf"
    
    "%INSTDR%binzabbix_agentd.exe" -c "%INSTDR%confzabbix_agentd.conf" -i 
    net start "Zabbix Agent" 
    ENDLOCAL

    Кстати, об IP. Адрес в Zabbix является уникальным идентификатором, так что при «свободном» DHCP нужно будет настроить привязки. Впрочем, это и так хорошая практика.

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

    sc failure "Zabbix Agent" reset= 30 actions= restart/60000

    Как и многие сервисы, Zabbix agent под Windows при загрузке ОС стартует раньше, чем некоторые сетевые адаптеры. Из-за этого агент не может увидеть IP, к которому должен быть привязан, и останавливает службу. В оригинальном дистрибутиве при установке настроек перезапуска нет.

    После этого добавляем хосты. Не забудьте выбрать Template – OS Windows. Если сервер не видит клиента — проверяем:

    1. IP-адрес;

    2. файрвол на клиенте;

    3. работу службы на клиенте — смотрим zabbix_agentd.log, он вполне информативный.

    По моему опыту, сервер и агенты Zabbix очень стабильны. На сервере, возможно, придётся расширить пул памяти по active checks (уведомление о необходимости такого действия появляется в дашборде), на клиентах донастроить упомянутые выше нюансы с запуском службы, а также, при наличии UserParameters, донастроить параметр timeout (пример будет ниже).

    Что видно сразу, без настроек?

    Сразу видно, что Zabbix заточен под другое :) Но и об обычных рабочих станциях в конфигурации «из коробки» можно узнать много: идёт мониторинг оперативной памяти и SWAP, места на жёстких дисках, загрузки ЦП и сетевых адаптеров; будут предупреждения о том, что клиент давно не подключался или недавно перезагружен; агент автоматически создаёт список служб и параметров их работы, и сгенерирует оповещение о «необычном» поведении. Практически из коробки (со скачиванием доп. template’ов с офсайта и небольшой донастройкой) работает всё, что по SNMP: принтеры и МФУ, управляемые свитчи, всякая специфическая мелочь. Иметь алерты по тем же офисным принтерам в едином окне очень удобно.

    В общем-то, очень неплохо, но…

    Что доделывать?

    Оооо. Ну, хотел повелосипедить, так это всегда пожалуйста. Прежде всего, нет алертов на события типа «критические» из системного лога Windows, при том, что механизм доступа к логам Windows встроенный, а не внешний, как Zabbix agent active. Странно, ну штош. Всё придётся добавлять руками.

    Например

    для записи и оповещения по событию «Система перезагрузилась, завершив работу с ошибками» (Microsoft-Windows-Kernel-Power, коды 41, 1001) нужно создать Item c типом Zabbix agent (active) и кодом в поле Key:

    eventlog[System,,,,1001]

    По этому же принципу создаём оповещения на другие коды. Странно, но готового template я не нашёл.

    Cистема автоматизированной генерации по службам генерирует целую тучу спама. Часть служб в Windows предполагает в качестве нормального поведения тип запуска «авто» и остановку впоследствии. Zabbix в такое не может и будет с упорством пьяного сообщать «а BITS-то остановился!». Есть широко рекомендуемый способ избавления от такого поведения — добавление набора служб в фильтр-лист: нужно добавить в Template «Module Windows services by Zabbix agent», в разделе Macros, в фильтре {$SERVICE.NAME.NOT_MATCHES} имя службы в формате RegExp. Получается список наподобие:

    ^RemoteRegistry|MMCSS|gupdate|SysmonLog|
    clr_optimization_v.+|clr_optimization_v.+|
    sppsvc|gpsvc|Pml Driver HPZ12|Net Driver HPZ12|
    MapsBroker|IntelAudioService|Intel(R) TPM Provisioning Service|
    dbupdate|DoSvc|BITS.*|ShellHWDetection.*$

    И он не работает работает с задержкой в 30 дней.

    После добавления служб в фильтр триггеры будут висеть ещё 30 дней. Этот срок, впрочем, тоже можно настроить

    После добавления служб в фильтр триггеры будут висеть ещё 30 дней. Этот срок, впрочем, тоже можно настроить

    Про службы, автоматически генерируемые в Windows 10, я вообще промолчу.
    Нет никаких температур (но это, если подумать, ладно уж), нет SMART и его алертов (тоже отдельная история, конечно). Нет моих любимых UPS.

    Некоторые устройства генерируют данные и алерты, работу с которыми надо выстраивать. В частности, например, управляемый свитч Tp-Link генерирует интересный алерт «скорость на порту понизилась». Почти всегда это означает, что рабочая станция просто выключена в штатном режиме (ушла в S3), но сама постановка вопроса заставляет задуматься: сведения, вообще, полезные — м.б. и драйвер глючит, железо дохнет, время странное…

    Некоторые встроенные алерты требуют переработки и перенастройки. Часть из них не закрывается в «ручном» режиме по принципу «знаю, не ори, так надо» и создаёт нагромождение информации на дашборде.

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

    После допиливания – примерно так

    После допиливания – примерно так

    О локальных задачах

    Всё, что не встроено в Zabbix agent, реализуется через механизм Zabbix agent (active). Суть проста: пишем скрипт, который будет выдавать нужные нам данные. Прописываем наш скрипт в conf:

    UserParameter=имя.параметра,путькскрипту 

    Нюансы:

    • если хотите получать в Zabbix строку на кириллице из cmd — не надо. Только powershell;

    • если параметр специфический – для имени нужно будет придумать и сформулировать дерево параметров, наподобие «hardware.huawei.modem.link.speed» ;

    • отладка и стабильность таких параметров — вопрос и скрипта, и самого Zabbix. Об этом дальше.

    Хотелка №1: температуры процессоров рабочих станций

    В качестве примера реализуем хотелку «темература ЦП рабочей станции». Вам может встретиться вариант наподобие:

    wmic /namespace:rootwmi PATH MSAcpi_ThermalZoneTemperature get CurrentTemperature

    но это не работает (вернее, работает не всегда и не везде).
    Самый простой способ, что я нашёл — воспользоваться проектом OpenHardwareMonitor. Он свои результаты выгружает прямо в тот же WMI, так что температуру получим так:

    @echo OFF 
    SETLOCAL ENABLEDELAYEDEXPANSION 
    SET TMPTMP=0 
    for /f "tokens=* skip=1 delims=" %%I in ('wmic /namespace:rootOpenHardwareMonitor PATH Sensor WHERE Identifier^="/intelcpu/0/temperature/1" get Value') DO (     
    	SET TMPTMP=%%I && GOTO :NXT 
    ) 
    :NXT  
    ECHO %TMPTMP% 
    ENDLOCAL 
    GOTO :EOF

    Конечно, при условии, что OHM запущен. В текущем релизе OHM не умеет работать в качестве Windows service. Так что придётся либо смущать пользователей очередной иконкой в трее, либо снова городить свой инсталлятор и запихивать OHM в сервисы принудительно. Я выбрал поcледнее, создав инсталляционный cmd для всё того же 7zfx Builder наподобие:

    nssm install OHMservice "%programfiles%OHMOpenHardwareMonitor.exe" 
    timeout 3 
    net start "OHMservice" 
    del nssm.exe /Q

    Два момента:

    1. NSSM — простая и достаточно надёжная утилита с многолетней историей. Применяется как раз в случаях, когда ПО не имеет режима работы «сервис», а надо. Во вредоносности утилита не замечена;

    2. Обратите внимание на «intelcpu» в скрипте получения температуры от OHM. Т.к. речь идёт о внедрении в малом офисе, можно рассчитывать на единообразие парка техники. Более того, таким образом лично у меня получилось извлечь и температуру ЦП от AMD. Но тем не менее этот пункт требует особого внимания. Возможно, придётся модифицировать и усложнять инсталлятор для большей универсальности.

    Работает более чем надёжно, проблем не замечено.

    Хотелка № 2: получаем и мониторим температуру чего угодно

    Понадобятся нам две вещи:

    1. Штука от братского китайского народа: стандартный цифровой термометр DS18B20, совмещённый с USB-UART контроллером. Стоит не сказать что бюджетно, но приемлемо;

    2. powershell cкрипт:

    param($cPort='COM3')
    
    $port= new-Object System.IO.Ports.SerialPort $cPort,9600,None,8,one
    
    $port.Open()
    $tmp = $port.ReadLine()
    $port.Close()
    
    $tmp = $tmp -replace "t1="
    if (([int]$tmp -lt 1) -or ([int]$tmp -gt 55)){
    
    	#echo ("trigg "+$tmp)
    	$port.Open()
    	$tmp = $port.ReadLine()
    	$port.Close()
    
    	$tmp = $tmp -replace "t1="
    } 
    echo ($tmp)

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

    Тесты показали, что проблема в самом Zabbix, а данные с китайских датчиков приходят верные. Детальное рассмотрение пиков и провалов выявило неожиданный факт: похоже Zabbix иногда получает и/или записывает в БД не полное значение, а «хвост». Т.е., например, 1.50 от значения 21.50. При этом положение точки не важно — может получить и 1.50, и 50, и даже 0. Как так происходит, мне выяснить пока не удалось. Изменение timeout на поведение не влияет никак, ни в большую, ни в меньшую сторону.
    Наверное, стоило бы написать багрепорт. Но уже вышел 6.0 LTS (у меня 5) и обновляться в текущей ситуации, пожалуй, не буду.

    Хотелка № 3: OpenVPN подключения

    Template’ов для OpenVPN и Zabbix существует довольно много, но все они реализованы на том или ином sh под *nix’ы . В свою очередь, «dashboard» OpenVPN-сервера представляет из себя, по сути, вывод утилиты в консоль, который пишется в файл по событиям. Мне лень было считать трафик по отдельным пользователям и вообще делать их discover, т.к. подключений и пользователей немного. Ограничился текущим количеством подключений:

    $openvpnLogPath = "C:OpenVPNconfig"
    $openvpnLogName = "openvpn-status.log"
    
    try { 
    	$logData = Get-Content $openvpnLogPath$openvpnLogName -ErrorAction Stop
    }
    catch{
    	
    	Write-Host("Missing log file")
    	exit 1
    }
    
    $logHeader = "OpenVPN CLIENT LIST"
    $logHeader2 = "Common Name,Real Address,Bytes Received,Bytes Sent,Connected Since"
    $logMark1 = "ROUTING TABLE"
    
    if ($logData[0] -ne $logHeader -or $logData[2] -ne $logHeader2 ){
    	
    	Write-Host("Bad log file")
    	exit 1
    }
    
    $i = 0
    foreach ($tmpStr in ($logData | select -skip 3)) {
    	
    	if ($tmpStr -eq $logMark1) {break}
    	$i++
    }
    
    Write-Host($i)
    exit 0

    Хотелка № 4: спецжелезка 1

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

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

    установив один из таких темплейтов, я узнал, что «нормальная рабочая» температура чипа RAID-контроллера в серваке — 65+ градусов. Это, в свою очередь, побудило внимательнее посмотреть и на контроллер, и на сервер в целом. Были найдены косяки и выражены «фи»:

    1. Apaptec’у – за игольчатый радиатор из неизвестного крашеного силумина высотой чуть более чем нихрена, поток воздуха к которому закрыт резервной батарейкой с высотой больше, чем радиатор. Особенно мне понравилось потом читать у Adaptec того же «ну, это его нормальная рабочая температура. Не волнуйтесь». Ответственно заявляю: при такой «нормальной рабочей температуре» контроллер безбожно и непредсказуемо-предсказуемо глючил;

    2. Одному отечественному сборщику серверов. «Берём толстый жгут проводов. Скрепляем его, чтобы он был толстым, плотным, надёжным. Вешаем это прямо перед забором воздуха вентиляторами продува серверного корпуса. Идеально!». На «полу» сервера было дофига места, длины кабелей тоже хватало, но сделали почему-то так.

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

    Но полный функционал реализован далеко не всегда. В частности, мне понадобились температуры жёстких дисков с нового RAID-контроллера (ну люблю я температуры, что поделать :) ), которых в оригинальном темплейте не было. Пришлось самому реализовывать температуры и заодно autodiscover физических дисков: https://github.com/automatize-it/zabbix-lsi-raid/commit/1d3a8b3a0e289b8c2df637028475177a2b940689

    Можно видеть, какой HDD и даже SSD стоит перед отсеком с БП сервера и хуже охлаждается

    Можно видеть, какой HDD и даже SSD стоит перед отсеком с БП сервера и хуже охлаждается

    Оригинальный репозиторий, вероятно, заброшен, как это довольно часто бывает.

    Хотелка № 5, на десерт: спецжелезка 2

    Как и обещал, делюсь опытом вырывания данных из беспроводной железки Huawei. Речь о 4G роутере серии B*. Внутри себя железка имеет ПО на ASP, а данные о качестве сигнала — RSSI, SINR и прочее — в пользовательском пространстве показывать не хочет совсем. Смотри, мол, картинку с уровнем сигнала и всё, остальное не твоего юзерского ума дело. К счастью, в ПО остались какие-то хвосты, выводящие нужное в plain JSON. К сожалению, взять да скачать это wget-ом не получается никак: мало того, что авторизация, так ещё и перед генерацией plain json требуется исполнение JS на клиенте. К счастью, существует проект phantomjs. Кроме того, нам понадобится перенесённая руками кука из браузера, где мы единожды авторизовались в веб-интерфейсе, вручную. Кука живёт около полугода, можно было и скрипт написать, но я поленился.

    Алгоритм действий и примеры кода:

    вызываем phantomjs с кукой и сценарием:

    phantomjs.exe --cookies-file=cookie.txt C:cmdyota_signalscenery.js

    Примеры сценариев:

    //получаем общий уровень сигнала
    var url = "http://192.168.2.1/html/home.html";
    var page = require('webpage').create();
    page.open(url, function(status) {
      //console.log("Status: " + status);
      if(status === "success") {
    	
    	var sgnl = page.evaluate(function() {
    		return document.getElementById("status_img").innerHTML; //
    	});
    	
    	var stt = page.evaluate(function() {
    		return document.getElementById("index_connection_status").innerText; //
    	});
    	
    	var sttlclzd = "dis";
    	var sgnlfnd = "NA";
    	
    	if (stt.indexOf("Подключено") != -1) {sttlclzd = "conn";}
    		
    	if (sgnl.indexOf("icon_signal_01") != -1) {sgnlfnd = "1";}
    	else {
    		var tmpndx = sgnl.indexOf("icon_signal_0");
    		sgnlfnd = sgnl.substring(tmpndx+13,tmpndx+14);
    	}
    	
    	console.log(sttlclzd+","+sgnlfnd);
    	
    	var fs = require('fs');
    		
    		try {
    			fs.write("C:\cmd\siglvl.txt", sgnlfnd, 'w');
    		} catch(e) {
    			console.log(e);
    		}
        
      }
      phantom.exit();
    });
    
    //получаем технические параметры сигнала через какбэ предназначенный для этого "API"
    var url = "http://192.168.2.1/api/device/signal"; 
    var page = require('webpage').create();
    
      
    	page.onLoadFinished = function() {
    		
    		//console.log("page load finished");
    		//page.render('export.png');
    		console.log(page.content);
    		
    		parser = new DOMParser();
    		xmlDoc = parser.parseFromString(page.content,"text/xml");
    
    		var rsrq = xmlDoc.getElementsByTagName("rsrq")[0].childNodes[0].nodeValue.replace("dB","");
    		var rsrp = xmlDoc.getElementsByTagName("rsrp")[0].childNodes[0].nodeValue.replace("dBm","");
    		var rssi = xmlDoc.getElementsByTagName("rssi")[0].childNodes[0].nodeValue.replace("dBm","").replace(">=","");
    		var sinr = xmlDoc.getElementsByTagName("sinr")[0].childNodes[0].nodeValue.replace("dB","");
    		
    		var fs = require('fs');
    		
    		try {
    			fs.write("C:\cmd\rsrq.txt", rsrq, 'w');
    			fs.write("C:\cmd\rsrp.txt", rsrp, 'w');
    			fs.write("C:\cmd\rssi.txt", rssi, 'w');
    			fs.write("C:\cmd\sinr.txt", sinr, 'w');
    		} catch(e) {
    			console.log(e);
    		}
    		
    		phantom.exit();
    	};
    	
    	page.open(url, function() {
    		page.evaluate(function() {
    		});
        });
    

    Конструкция запускается из планировщика задач. В Zabbix-агенте производится лишь чтение соответствующих файлов:

    UserParameter=internet.devices.huawei1.signal.level,type C:cmdsiglvl.txt 

    Особое внимание на SINR. Он должен быть 10+. Ну, иногда и правда был. Около 4-5 утра обычно

    Особое внимание на SINR. Он должен быть 10+. Ну, иногда и правда был. Около 4-5 утра обычно

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

    Итого

    Стоит ли заморачиваться на Zabbix, если у вас 20 машин и 1-2 сервера, да ещё и инфраструктура Windows?

    Как можно понять из вышеизложенного, работы будет много. Я даже рискну предположить, что объёмы работ и уровень квалификации для них сравнимы с решением «свелосипедить своё с нуля по-быстрому на коленке».

    Не стоит рассматривать Zabbix как панацею или серебряную пулю.

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

    А красивые графики дают усладу глазам и часто — новое видение процессов в динамике.

    Если захочется внедрить, то могу пообещать, как минимум — скучно не будет! ;)

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

    Мониторите малые офисы?


    59.42%
    Мониторю, Заббиксом
    41


    2.9%
    Мониторю, не Заббиксом
    2


    2.9%
    Мониторю, самописной системой
    2


    24.64%
    Не мониторю, но вообще надо бы
    17


    10.14%
    Не мониторю и не надо
    7

    Проголосовали 69 пользователей.

    Воздержались 25 пользователей.

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

    Шаблон или прототип элемента мониторинга будет выглядеть следующим образом (параметры для удобства пронумерованы):

    eventlog[1- имя журнала,2-регулярное выражение,3-важность,4-источник,5-eventid,6-макс кол-во строк, 7-режим]

    Тип данных: журнал (лог)

    Далее рассмотрим конкретные практические примеры.

    1. Ошибки в журнале приложений.

    Максимально простой пример сбора ошибок в журнале «Приложение» (события уровня «Ошибка»)

    eventlog[Application,,"Error",,,,skip]

    2. Ошибки отложенной записи.

    eventlog[System,,"Warning",,50,,skip]

    краткие пояснения:

    System — журнал система

    Warning — тип события: предупреждение

    50 — id события равно 50

    skip — берем только свежие значения (не перечитываем весь лог)

    триггер:

    count(/Terminal server/eventlog[System,,"Warning",,50,,skip],30m)>7 and nodata(/Terminal server/eventlog[System,,"Warning",,50,,skip],60m)<>1

    где Terminal server — это просто имя шаблона, в котором используются элемент данных и триггер

    3. Ошибки диска.

    eventlog[System,,"Warning",,153,,skip]

    триггер:

    count(/Template OS Windows by Zabbix agent active/eventlog[System,,"Warning",,153,,skip],30m)>5 and nodata(/Template OS Windows by Zabbix agent active/eventlog[System,,"Warning",,153,,skip],60m)<>1

    4. ошибки в журнале событий от службы MSSQLSERVER.

    eventlog[Application,,"Error","MSSQLSERVER",,,skip]

    триггер:

    count(/Template OS Windows SQL for 1C/eventlog[Application,,"Error","MSSQLSERVER",,,skip],8m)>0 and nodata(/Template OS Windows SQL for 1C/eventlog[Application,,"Error","MSSQLSERVER",,,skip],10m)<>1

    Полезные ссылки:

    https://www.zabbix.com/documentation/5.0/ru/manual/config/items/itemtypes/zabbix_agent/win_keys

    Template OS Windows rus

    Так же Ниже описания шаблона:
    Проверка текущего времени узла сети
    Как убрать лишние сетевые интерфейсы
    Во 2 сообщении
    Автоперезапуск / подъем упавших служб Windows
    Автоматический Перезапуск (Перезагрузка) Windows
    Завершение Сеанса Пользователей

    СКАЧАТЬ

    Скачать

    Скачать

    Скачать Без зависимости NoPingAgent {HOST.NAME}

    Присоединенные шаблоны
    Template App Zabbix Agent

    Изменения
    05.08.2020 добавлено сравнение времени расхождение

    Template OS Windows rus
    Template OS Windows rus

    Макросы
    {$HOST.PORTS} > 10050
    {$IF_ERRORS_WARN} > 2

    Template OS Windows rus Группы
    Template OS Windows rus Группы

    Группы
    Центральный процессор Элементы данных 11
    Файловая система Элементы данных 4
    Службы Элементы данных
    Сетевой интерфейс Элементы данных
    Процессы Элементы данных 1
    Производительность Элементы данных 11
    Операционная система Элементы данных 7
    Общее Элементы данных 6
    Template App Zabbix Agent: Zabbix агент Элементы данных 3
    SWAP Память (файл подкачки) Элементы данных 8
    RAM Память Элементы данных 18

    Template OS Windows rus Элементы данных
    Template OS Windows rus Элементы данных

    Элементы данных
    Template App Zabbix Agent: Имя хоста запущенного zabbix_агентаd Триггеры 1 agent.hostname 1h 1w Zabbix агент Zabbix агент Активировано

    Template App Zabbix Agent: Агент пинг ping Триггеры 1 agent.ping 1m 1w 365d Zabbix агент Zabbix агент Активировано

    Template App Zabbix Agent: Версия zabbix_агента(d) работает Триггеры 1 agent.version 1h 1w Zabbix агент Zabbix агент Активировано

    Файл считывает байты в секунду perf_counter[216] 1m 1w 365d Zabbix агент Производительность, Файловая система Активировано

    Запись файла байт в секунду perf_counter[218] 1m 1w 365d Zabbix агент Производительность, Файловая система Активировано

    Число потоков perf_counter[2250] 1m 1w 365d Zabbix агент Операционная система Активировано

    Память Ошибок страницы/сек Триггеры 1 perf_counter_en[428] 1m 90d 90d Zabbix агент (активный) RAM Память, SWAP Память (файл подкачки), Производительность Активировано

    Память и файл подкачки Учитывает промахи подсистемы кэширования обращение к диску не требуется Триггеры 1 perf_counter_en[436] 1m 90d 90d Zabbix агент (активный) SWAP Память (файл подкачки) Активировано

    Память и файл подкачки ПамятьОбмен страниц/с Триггеры 1 perf_counter_en[440] 1m 90d 90d Zabbix агент Производительность, Файловая система Активировано

    Память и файл подкачки Кол-во операций чтения, совершенных при подкачке Триггеры 1 perf_counter_en[442] 1m 90d 90d Zabbix агент Производительность, Файловая система Активировано

    Память и файл подкачки Кол-во страниц, прочитанных с диска Триггеры 1 perf_counter_en[4822] 1m 90d 365d Zabbix агент (активный) SWAP Память (файл подкачки) Активировано

    Число процессов Триггеры 1 proc.num[] 1m 1w 90d Zabbix агент Процессы Активировано

    Прерывания устройств. system.cpu.intr 1m 1w 365d Zabbix агент Центральный процессор Деактивировано

    Загрузка процессора ALL (1 мин в среднем) system.cpu.load[all,avg1] 1m 1w 365d Zabbix агент Производительность, Центральный процессор Активировано

    Нагрузка процессора ALL (среднее 5 минут) system.cpu.load[all,avg5] 1m 1w 365d Zabbix агент Производительность, Центральный процессор Активировано

    Нагрузка процессора ALL (среднее 15 минут) system.cpu.load[all,avg15] 1m 1w 365d Zabbix агент Производительность, Центральный процессор Активировано

    Загрузка процессора (1 мин в среднем) Триггеры 3 system.cpu.load[percpu,avg1] 1m 1w 365d Zabbix агент Производительность, Центральный процессор Активировано

    Нагрузка на процессор (в среднем 5 мин ) system.cpu.load[percpu,avg5] 1m 1w 365d Zabbix агент Производительность, Центральный процессор Активировано

    Нагрузка процессора (среднее 15 минут) system.cpu.load[percpu,avg15] 1m 1w 365d Zabbix агент Производительность, Центральный процессор Активировано

    Общее Число ядер в процессорах CPU онлайн system.cpu.num[] 1h 1w 90d Zabbix агент Центральный процессор Активировано

    Все CPU system Время затраченное на выполнение системных вызовов (5 мин в среднем) system.cpu.util[,system,avg5] 1m 1w 365d Zabbix агент Центральный процессор Активировано

    Все CPU system Время затраченное на выполнение системных вызовов (15 мин в среднем) system.cpu.util[,system,avg15] 1m 1w 365d Zabbix агент Центральный процессор Активировано

    Все CPU system Время затраченное на выполнение системных вызовов (1 мин в среднем) system.cpu.util[,system] 1m 1w 365d Zabbix агент Центральный процессор Активировано

    Host name имя хоста Триггеры 1 system.hostname 1h 90d Zabbix агент Общее, Операционная система Активировано

    Местное время хоста Триггеры 1 system.localtime 1m 90d 90d Zabbix агент Общее, Операционная система Активировано

    Местное время хоста 2 Триггеры 1 system.localtime.fuzzytime 1m 90d 90d Вычисляемое Общее, Операционная система Деактивировано

    Архитектура ПО system.sw.arch 6h 90d Zabbix агент Операционная система Активировано

    Свободное место подкачки Триггеры 1 system.swap.size[,free] 1m 1w 90d Zabbix агент SWAP Память (файл подкачки) Активировано

    Свободное место подкачки в файле % Триггеры 2 system.swap.size[,pfree] 1m 1w 90d Zabbix агент SWAP Память (файл подкачки) Активировано

    Используемое место в файле подкачки, в % system.swap.size[,pused] 1m 1w 90d Zabbix агент SWAP Память (файл подкачки) Деактивировано

    Общее пространство файла подкачки Триггеры 1 system.swap.size[,total] 1h 1w 90d Zabbix агент SWAP Память (файл подкачки) Активировано

    Используется места в файле подкачки Триггеры 1 system.swap.size[,used] 1m 1w 90d Zabbix агент SWAP Память (файл подкачки) Активировано

    Системная информация Триггеры 1 system.uname 1h 1w Zabbix агент Общее, Операционная система Активировано

    Работоспособность системы Триггеры 1 system.uptime 1m 1w 365d Zabbix агент Общее Активировано

    Число пользователей system.users.num 1m 1w 365d Zabbix агент Общее, Операционная система Активировано

    Активная память находится в RAM vm.memory.size[active] 1m 90d 90d Zabbix агент RAM Память Деактивировано

    Память RAM, не связанная с файлами (повторное чтение из них невозможно). vm.memory.size[anon] 1m 90d 90d Zabbix агент RAM Память Деактивировано

    Доступная RAM память Триггеры 1 vm.memory.size[available] 1m 90d 90d Zabbix агент RAM Память Активировано

    Буферная RAM память, кэш метаданных файловой системы. vm.memory.size[buffers] 1m 90d 90d Zabbix агент RAM Память Деактивировано

    Память RAM кэш для различных вещей vm.memory.size[cached] 1m 90d 90d Zabbix агент RAM Память Активировано

    Выполняемая Память RAM, исполняемый код, в основном из (программ) файлов vm.memory.size[exec] 1m 90d 90d Zabbix агент RAM Память Деактивировано

    Файловая Память RAM, кэш содержимого наиболее часто используемых файлов. vm.memory.size[file] 1m 90d 90d Zabbix агент RAM Память Деактивировано

    Свободная память RAM Триггеры 2 vm.memory.size[free] 1m 1w 90d Zabbix агент RAM Память Активировано

    Неактивная память RAM vm.memory.size[inactive] 1m 90d 90d Zabbix агент RAM Память Деактивировано

    Закрепленная память в RAM не может быть перемещена на диск. vm.memory.size[pinned] 1m 90d 90d Zabbix агент RAM Память Деактивировано

    Используемая память RAM в% Триггеры 2 vm.memory.size[pused] 1m 1w 90d Zabbix агент RAM Память Активировано

    Общедоступная память RAM для нескольких процессов vm.memory.size[shared] 1m 90d 90d Zabbix агент RAM Память Деактивировано

    Общий объем памяти RAM используемый ядром для кэширования структур данных vm.memory.size[slab] 1m 90d 90d Zabbix агент RAM Память Деактивировано

    Общая память RAM Триггеры 1 vm.memory.size[total] 1h 1w 90d Zabbix агент RAM Память Активировано

    Используемая память RAM Триггеры 1 vm.memory.size[used] 1m 1w 90d Zabbix агент RAM Память Активировано

    Память всегда в RAM не используя диск vm.memory.size[wired] 1m 90d 90d Zabbix агент RAM Память Деактивировано

    Свободная виртуальная память RAM, внутри % Триггеры 2 vm.vmemory.size[pavailable] 1m 1w 90d Zabbix агент RAM Память Активировано

    Отображено 52 из 52 найденных

    Template OS Windows rus Триггеры
    Template OS Windows rus Триггеры

    Триггеры
    Средняя Template App Zabbix Agent: NoPingAgent {HOST.NAME} {Template OS Windows:agent.ping.nodata(6m)}=1 Активировано

    Информационная Template App Zabbix Agent: VersionAgent= {HOST.NAME} {Template OS Windows:agent.version.diff(0)}>0 Активировано

    Средняя {HOST.NAME} только что было перезапущено {Template OS Windows:system.uptime.change(0)}<0 Активировано

    Информационная Время Windows {HOST.HOST} отличается от времени Zabbix Server {Template OS Windows:system.localtime.fuzzytime(60)}=0 Активировано

    Информационная Время Windows {HOST.HOST} отличается от времени Zabbix Server {Template OS Windows:system.localtime.fuzzytime.sum(#3)}=0 Деактивировано

    Информационная Template App Zabbix Agent: Имя было изменено на {HOST.NAME} {Template OS Windows:agent.hostname.diff(0)}>0 Активировано

    Информационная Имя было изменено на {HOST.NAME} {Template OS Windows:system.hostname.diff(0)}>0 Активировано

    Средняя Информация о хосте была изменена на {HOST.NAME} {Template OS Windows:system.uname.diff(0)}>0 Активировано

    Внимание/Предупреждение Нагрузка процессора более 70% на {HOST.NAME} {Template OS Windows:system.cpu.load[percpu,avg1].avg(5m)}>0.70 Активировано

    Средняя Нагрузка процессора почти 100% на {HOST.NAME} {Template OS Windows:system.cpu.load[percpu,avg1].avg(5m)}>1 Активировано

    Высокая Нагрузка процессора слишком высока на {HOST.NAME} {Template OS Windows:system.cpu.load[percpu,avg1].avg(5m)}>5 Активировано

    Средняя Отсутствие доступной RAM виртуальной памяти 10% {HOST.NAME} Проблема: {Template OS Windows:vm.vmemory.size[pavailable].min(10m)}<10
    Восстановление: {Template OS Windows:vm.vmemory.size[pavailable].min(10m)}>20 Активировано

    Средняя Отсутствие свободной RAM памяти menee 5 % {HOST.NAME} {Template OS Windows:vm.memory.size[pused].min(5m)}>=95 or {Template OS Windows:vm.memory.size[total].last(0)}-({Template OS Windows:vm.memory.size[used].min(3m)}*1.06)<=0 or {Template OS Windows:vm.memory.size[total].last(0)}-({Template OS Windows:vm.memory.size[available].min(3m)}*20)>=0 or {Template OS Windows:vm.memory.size[total].last(0)}-({Template OS Windows:vm.memory.size[free].min(3m)}*20)>=0 or {Template OS Windows:vm.vmemory.size[pavailable].min(5m)}<=5 Активировано

    Средняя Отсутствие свободной RAM памяти menee 5 % {HOST.NAME} {Template OS Windows:vm.memory.size[pused].min(5m)}>=95 Активировано

    Средняя Отсутствие свободной RAM памяти {HOST.NAME} {Template OS Windows:vm.memory.size[free].last(0)}<10000 Активировано

    Внимание/Предупреждение Память Обмен страниц/с, Файл подкачки чтение с диска, промахи кеша {Template OS Windows:perf_counter_en[440].min(5)}>2500 or {Template OS Windows:perf_counter_en[440].min(3m)}>{Template OS Windows:perf_counter_en[436].min(3m)} and {Template OS Windows:perf_counter_en[442].min(3)}>{Template OS Windows:perf_counter_en[436].min(3m)} and {Template OS Windows:perf_counter_en[4822].min(3)}>{Template OS Windows:perf_counter_en[436].min(3m)} and {Template OS Windows:perf_counter_en[436].min(5m)}<90 or {Template OS Windows:perf_counter_en[436].min(10m)}>3000 Деактивировано

    Информационная Память Ошибок страницы/сек {Template OS Windows:perf_counter_en[428].min(5m)}>1000 Активировано

    Внимание/Предупреждение Свободного места swap в файла подкачки менее 50% на {HOST.NAME} {Template OS Windows:system.swap.size[,pfree].min(3m)}<50 Активировано

    Высокая Свободного места swap подкачки менее 90% на {HOST.NAME} Проблема: {Template OS Windows:system.swap.size[,total].last(0)}<>0 and {Template OS Windows:system.swap.size[,pfree].max(3m)}<=10 or {Template OS Windows:system.swap.size[,total].last(0)}<>0 and {Template OS Windows:system.swap.size[,total].last(0)}-({Template OS Windows:system.swap.size[,used].min(3m)}*1.12)<=0 or {Template OS Windows:system.swap.size[,total].last(0)}<>0 and {Template OS Windows:system.swap.size[,total].last(0)}-({Template OS Windows:system.swap.size[,free].min(3m)}*10)>=0
    Восстановление: {Template OS Windows:system.swap.size[,total].last(0)}=0 Активировано

    Средняя Слишком много процессов на {HOST.NAME} {Template OS Windows:proc.num[].avg(5m)}>300 Активировано

    Template OS Windows rus Графики
    Template OS Windows rus Графики

    Графики
    Свободная память RAM 900 200 Нормальный
    Оперативная RAM память в% 900 200 Стэкируемый
    Оперативная RAM память Круговой 900 200 Расширенный круговой
    Оперативная RAM память 900 200 Стэкируемый
    Использование файла подкачки памяти SWAP Круговой 900 200 Круговой
    Использование файла подкачки SWAP % 900 200 Стэкируемый
    Использование памяти файла подкачки SWAP 900 200 Нормальный
    Загрузка процессора CPU 900 200 Нормальный

    Комплексные экраны
    Производительность системы

    Template OS Windows rus Правила обнаружения
    Template OS Windows rus Правила обнаружения

    Правила обнаружения
    Обнаружение сетевого интерфейса Прототипы элементов данных 22 Прототипы триггеров 14 Прототипы графиков 4 Прототипы узлов сети net.if.discovery 1h Zabbix агент Активировано

    Обнаружение службы Windows Прототипы элементов данных 1 Прототипы триггеров 1 Прототипы графиков Прототипы узлов сети service.discovery 1h Zabbix агент Активировано

    Смонтированная файловая система обнаружения Прототипы элементов данных 5 Прототипы триггеров 2 Прототипы графиков 1 Прототипы узлов сети vfs.fs.discovery 1h Zabbix агент Активировано

    Список обнаружения Физических дисков Прототипы элементов данных 21 Прототипы триггеров 3 Прототипы графиков 6 Прототипы узлов сети disk.spisok.sh[{HOST.CONN},discovery.physical] 1h Внешняя проверка Деактивировано

    Список обнаружения Логических дисков Прототипы элементов данных 21 Прототипы триггеров 3 Прототипы графиков 6 Прототипы узлов сети disk.spisok.sh[{HOST.CONN},discovery.logical] 1h Внешняя проверка Деактивировано

    Список найденных CPU/CPU ядер Прототипы элементов данных 3 Прототипы триггеров Прототипы графиков Прототипы узлов сети system.cpu.discovery 6h Zabbix агент Деактивировано

    Обнаружение сетевого интерфейса

    Template OS Windows rus Правило Обнаружение сетевого интерфейса
    Template OS Windows rus Правило Обнаружение сетевого интерфейса

    Прототипы элементов данных

    Template OS Windows rus Правило Обнаружение сетевого интерфейса Прототипы Элементов
    Template OS Windows rus Правило Обнаружение сетевого интерфейса Прототипы Элементов

    Коллизии за пределами окна (out-of-window) {#IFNAME} net.if.collisions[{#IFNAME}] 1m 1w 365d Zabbix агент Сетевой интерфейс Нет

    Входящий трафик кол-во сжатых пакетов {#IFNAME} net.if.in[{#IFNAME},compressed] 1m 1w 365d Zabbix агент Сетевой интерфейс Нет

    Входящий трафик кол-во отброшенных пакетов {#IFNAME} net.if.in[{#IFNAME},dropped] 1m 1w 365d Zabbix агент Сетевой интерфейс Да

    Входящий трафик кол-во ошибок {#IFNAME} net.if.in[{#IFNAME},errors] 1m 1w 365d Zabbix агент Сетевой интерфейс Да

    Входящий трафик кол-во ошибок кадрирования пакетов {#IFNAME} net.if.in[{#IFNAME},frame] 1m 1w 365d Zabbix агент Сетевой интерфейс Нет

    Входящий трафик кол-во кадров многоадресного вещания {#IFNAME} net.if.in[{#IFNAME},multicast] 1m 1w 365d Zabbix агент Сетевой интерфейс Нет

    Входящий трафик кол-во ошибок FIFO буфера {#IFNAME} net.if.in[{#IFNAME},overruns] 1m 1w 365d Zabbix агент Сетевой интерфейс Нет

    Входящий сетевой трафик пакетов {#IFNAME} net.if.in[{#IFNAME},packets] 1m 1w 365d Zabbix агент Сетевой интерфейс Да

    Входящий сетевой трафик {#IFNAME} net.if.in[{#IFNAME}] 1m 1w 365d Zabbix агент Сетевой интерфейс Да

    Исходящий трафик кол-во потерь несущей {#IFNAME} net.if.out[{#IFNAME},carrier] 1m 1w 365d Zabbix агент Сетевой интерфейс Нет

    Исходящий трафик кол-во коллизий обнаруженных на {#IFNAME} net.if.out[{#IFNAME},collisions] 1m 1w 365d Zabbix агент Сетевой интерфейс Нет

    Исходящий трафик кол-во отброшенных пакетов {#IFNAME} net.if.out[{#IFNAME},dropped] 1m 1w 365d Zabbix агент Сетевой интерфейс Да

    Исходящий трафик кол-во ошибок {#IFNAME} net.if.out[{#IFNAME},errors] 1m 1w 365d Zabbix агент Сетевой интерфейс Да

    Исходящий сетевой трафик пакетов {#IFNAME} net.if.out[{#IFNAME},packets] 1m 1w 365d Zabbix агент Сетевой интерфейс Да

    Исходящий сетевой трафик {#IFNAME} net.if.out[{#IFNAME}] 1m 1w 365d Zabbix агент Сетевой интерфейс Да

    Суммарное кол-во сжатых пакетов на {#IFNAME} net.if.total[{#IFNAME},compressed] 1m 1w 365d Zabbix агент Сетевой интерфейс Нет

    Суммарное кол-во отброшенных пакетов на {#IFNAME} net.if.total[{#IFNAME},dropped] 1m 1w 365d Zabbix агент Сетевой интерфейс Да

    Суммарное кол-во ошибок на {#IFNAME} net.if.total[{#IFNAME},errors] 1m 1w 365d Zabbix агент Сетевой интерфейс Да

    Суммарное кол-во ошибок FIFO буфера на {#IFNAME} net.if.total[{#IFNAME},overruns] 1m 1w 365d Zabbix агент Сетевой интерфейс Нет

    Суммарный сетевой трафик пакетов на {#IFNAME} net.if.total[{#IFNAME},packets] 1m 1w 365d Zabbix агент Сетевой интерфейс Да

    Суммарный сетевой трафик {#IFNAME} net.if.total[{#IFNAME}] 1m 1w 365d Zabbix агент Сетевой интерфейс Да

    MAC адрес {#IFNAME} system.hw.macaddr[{#IFNAME},full] 6h 90d Zabbix агент Сетевой интерфейс Да

    Прототипы триггеров

    Template OS Windows rus Правило Обнаружение сетевого интерфейса Прототипы Триггеров
    Template OS Windows rus Правило Обнаружение сетевого интерфейса Прототипы Триггеров

    Высокая 95% LAN загрузка входящего трафика {#IFNAME} {Template OS Windows:net.if.in[{#IFNAME}].min(10m)}>=95M and {Template OS Windows:net.if.in[{#IFNAME}].min(10m)}<=100M Да

    Высокая 95% LAN загрузка входящего трафика {#IFNAME} {Template OS Windows:net.if.in[{#IFNAME}].min(10m)}>=950M and {Template OS Windows:net.if.in[{#IFNAME}].min(10m)}<=1000M Да

    Высокая 95% LAN загрузка исходящего трафика {#IFNAME} {Template OS Windows:net.if.out[{#IFNAME}].min(10m)}>=95M and {Template OS Windows:net.if.out[{#IFNAME}].min(10m)}<=100M Да

    Высокая 95% LAN загрузка исходящего трафика {#IFNAME} {Template OS Windows:net.if.out[{#IFNAME}].min(10m)}>=950M and {Template OS Windows:net.if.out[{#IFNAME}].min(10m)}<=1000M Да

    Высокая 95% LAN загрузка суммарного трафика {#IFNAME} {Template OS Windows:net.if.total[{#IFNAME}].min(10m)}>=95M and {Template OS Windows:net.if.total[{#IFNAME}].min(10m)}<=100M Да

    Высокая 95% LAN загрузка суммарного трафика {#IFNAME} {Template OS Windows:net.if.total[{#IFNAME}].min(10m)}>=950M and {Template OS Windows:net.if.total[{#IFNAME}].min(10m)}<=1000M Да

    Чрезвычайная Аварийная 100% LAN загрузка входящего трафика {#IFNAME} {Template OS Windows:net.if.in[{#IFNAME}].min(10m)}>=100M and {Template OS Windows:net.if.in[{#IFNAME}].min(10m)}<=950M Да

    Чрезвычайная Аварийная 100% LAN загрузка входящего трафика {#IFNAME} {Template OS Windows:net.if.in[{#IFNAME}].min(10m)}>=1000M Да
    Чрезвычайная Аварийная 100% LAN загрузка исходящего трафика {#IFNAME} {Template OS Windows:net.if.out[{#IFNAME}].min(10m)}>=100M and {Template OS Windows:net.if.out[{#IFNAME}].min(10m)}<=950M Да

    Чрезвычайная Аварийная 100% LAN загрузка исходящего трафика {#IFNAME} {Template OS Windows:net.if.out[{#IFNAME}].min(10m)}>=1000M Да

    Чрезвычайная Аварийная 100% LAN загрузка суммарного трафика {#IFNAME} {Template OS Windows:net.if.total[{#IFNAME}].min(10m)}>=100M and {Template OS Windows:net.if.total[{#IFNAME}].min(10m)}<=950M Да

    Чрезвычайная Аварийная 100% LAN загрузка суммарного трафика {#IFNAME} {Template OS Windows:net.if.total[{#IFNAME}].min(10m)}>=1000M Да

    Внимание/Предупреждение Интерфейс {#IFNAME}: Высокая частота отброшенных пакетов Проблема: {Template OS Windows:net.if.in[{#IFNAME},dropped].avg(5m)}>{$IF_ERRORS_WARN:»{#IFNAME}»} or {Template OS Windows:net.if.out[{#IFNAME},dropped].avg(5m)}>{$IF_ERRORS_WARN:»{#IFNAME}»}
    Восстановление: {Template OS Windows:net.if.in[{#IFNAME},dropped].avg(5m)}<{$IF_ERRORS_WARN:»{#IFNAME}»} * 0.8 and {Template OS Windows:net.if.in[{#IFNAME},dropped].avg(5m)}<{$IF_ERRORS_WARN:»{#IFNAME}»} * 0.8 Нет

    Внимание/Предупреждение Интерфейс {#IFNAME}: Высокая частота ошибок Проблема: {Template OS Windows:net.if.in[{#IFNAME},errors].avg(5m)}>{$IF_ERRORS_WARN:»{#IFNAME}»} or {Template OS Windows:net.if.out[{#IFNAME},errors].avg(5m)}>{$IF_ERRORS_WARN:»{#IFNAME}»}
    Восстановление: {Template OS Windows:net.if.in[{#IFNAME},errors].avg(5m)}<{$IF_ERRORS_WARN:»{#IFNAME}»} * 0.8 and {Template OS Windows:net.if.in[{#IFNAME},errors].avg(5m)}<{$IF_ERRORS_WARN:»{#IFNAME}»} * 0.8 Да

    Прототипы графиков

    Template OS Windows rus Правило Обнаружение сетевого интерфейса Прототипы Графиков
    Template OS Windows rus Правило Обнаружение сетевого интерфейса Прототипы Графиков

    Сетевой трафик на {#IFNAME} 900 200 Нормальный
    Пакеты Сетевой трафик на {#IFNAME} 900 200 Нормальный
    Ошибки на сетевом интерфейсе {#IFNAME} 900 200 Нормальный
    Отброшенные на сетевом интерфейсе {#IFNAME} 900 200 Нормальный

    Обнаружение службы Windows

    Template OS Windows rus Правило Обнаружение службы Windows
    Template OS Windows rus Правило Обнаружение службы Windows

    Прототипы элементов данных

    Template OS Windows rus Правило Обнаружение службы Windows Прототипы Элемента данных
    Template OS Windows rus Правило Обнаружение службы Windows Прототипы Элемента данных

    Служба «{#SERVICE.NAME}» ({#SERVICE.DISPLAYNAME}) service.info[{#SERVICE.NAME},state] 1m 1w 365d Zabbix агент Службы Да

    Прототипы триггеров

    Template OS Windows rus Правило Обнаружение службы Windows Прототипы Триггеров
    Template OS Windows rus Правило Обнаружение службы Windows Прототипы Триггеров

    Средняя Служба «{#SERVICE.NAME}» ({#SERVICE.DISPLAYNAME}) не работает (тип запуска {#SERVICE.STARTUPNAME}) {Template OS Windows:service.info[{#SERVICE.NAME},state].min(#3)}<>0 Да #SERVICE.NAME: {#SERVICE.NAME}{#SERVICE.NAME}

    Смонтированная файловая система обнаружения

    Template OS Windows rus Правило Обнаружение Смонтированная файловая система обнаружения
    Template OS Windows rus Правило Обнаружение Смонтированная файловая система обнаружения

    Прототипы элементов данных

    Template OS Windows rus Правило Обнаружение Смонтированная файловая система обнаружения Прототипы элемента данных
    Template OS Windows rus Правило Обнаружение Смонтированная файловая система обнаружения Прототипы элемента данных

    Свободное место на диске {#FSNAME} vfs.fs.size[{#FSNAME},free] 1m 1w 365d Zabbix агент Файловая система Да

    Свободное место на диске {#FSNAME} (в процентах) vfs.fs.size[{#FSNAME},pfree] 1m 1w 365d Zabbix агент Файловая система Да

    Использовано место на диске {#FSNAME} (в процентах) vfs.fs.size[{#FSNAME},pused] 1m 1w 365d Zabbix агент Файловая система Да

    Общее место на диске {#FSNAME} vfs.fs.size[{#FSNAME},total] 1h 1w 365d Zabbix агент Файловая система Да

    Использованное место на диске {#FSNAME} vfs.fs.size[{#FSNAME},used] 1m 1w 365d Zabbix агент Файловая система Да

    Прототипы триггеров

    Template OS Windows rus Правило Обнаружение Смонтированная файловая система обнаружения Прототипы Триггеров
    Template OS Windows rus Правило Обнаружение Смонтированная файловая система обнаружения Прототипы Триггеров

    Внимание/Предупреждение Свободное место на диске меньше 15% на томе {#FSNAME}
    Зависит от:
    Template OS Windows rus: Свободное место на диске составляет менее 1% на томе {#FSNAME}
    Проблема: {Template OS Windows:vfs.fs.size[{#FSNAME},pfree].last(0)}<15
    Восстановление: {Template OS Windows:vfs.fs.size[{#FSNAME},pfree].last(0)}<2 or {Template OS Windows:vfs.fs.size[{#FSNAME},pfree].last(0)}>15 Да

    Чрезвычайная Аварийная Свободное место на диске составляет менее 1% на томе {#FSNAME} {Template OS Windows:vfs.fs.size[{#FSNAME},pfree].last(0)}<1 Да

    Прототипы графиков
    Использование дискового пространства {#FSNAME} 600 340 Расширенный круговой

    Список найденных CPU/CPU ядер

    Template OS Windows rus Правило Обнаружение Список найденных CPU ядер
    Template OS Windows rus Правило Обнаружение Список найденных CPU ядер

    Прототипы элементов данных

    Template OS Windows rus Правило Обнаружение Список найденных CPU ядер Прототипы элементов данных
    Template OS Windows rus Правило Обнаружение Список найденных CPU ядер Прототипы элементов данных

    Время system затраченное на выполнение системных вызовов (1 мин в среднем) CPU{#CPU.NUMBER}-{#CPU.STATUS} system.cpu.util[{#CPU.NUMBER},system,avg1] 1m 90d 90d Zabbix агент Центральный процессор Да

    Время system затраченное на выполнение системных вызовов (5 мин в среднем) CPU{#CPU.NUMBER}-{#CPU.STATUS} system.cpu.util[{#CPU.NUMBER},system,avg5] 1m 90d 90d Zabbix агент Центральный процессор Да

    Время system затраченное на выполнение системных вызовов (15 мин в среднем) CPU{#CPU.NUMBER}-{#CPU.STATUS} system.cpu.util[{#CPU.NUMBER},system,avg15] 1m 90d 90d Zabbix агент Центральный процессор Да

    Скрипт для дисков disk.spisok.sh

    Код: Выделить всё

    #!/bin/bash
    #2021/08/19 v1.0
    # Автор Мамзиков Артём Андреевич Описание по скрипту
    # Получение списка Физических Логических дисков
    
    #./net.if.sh 192.168.ххх.ххх discovery 10050, ключ disk.spisok.sh[{HOST.CONN},discovery,{HOST.PORT}]
    # {HOST.HOST} -Имя узла сети; {HOST.CONN} -IP адрес или DNS имя узла сети; {HOST.PORT} -Порт узла сети (агента)
    
    if [[ $2 = "discovery.physical" ]]
    then
    
    # Список Физический/Логический диск|Удалить шапку|Удалить пустые строки|Удалить пробелы в конце строки и каретку r|Подстановка макроса|зыкрытие }, кроме последней строки| закрытие последней строки}
    DISKNUM=$(zabbix_get -s $1 -k system.run["WMIC.exe /NAMESPACE:\rootCIMV2 PATH win32_PerfFormattedData_PerfDisk_PhysicalDisk GET Name"]|sed -e '/Name/d'|sed -e '/^$/d'| sed 's/[ ]*r//'|sed 's/^/t{"{#DISKNUMLET}":"/'|sed '$!s/.$/"},/'|sed '${s/$/"}/}')
    
    # Вариант с портом
    #DISKNUM=$(zabbix_get -s $1 -p $3 -k system.run["WMIC.exe /NAMESPACE:\rootCIMV2 PATH win32_PerfFormattedData_PerfDisk_PhysicalDisk GET Name"]|sed -e '/Name/d'|sed -e '/^$/d'| sed 's/[ ]*r//'|sed 's/^/t{"{#DISKNUMLET}":"/'|sed '$!s/.$/"},/'|sed '${s/$/"}/}')
    
    #echo "${DISKNUM}"
    
    # Проверка что ответ не пустой или не ошибка, если пусто то отправляем _Total
    if [ -z "${DISKNUM}" ]; then DISKNUM={"{#DISKNUMLET}":"_Total"}
    elif [[ "${DISKNUM}" =~ ZBX_NOTSUPPORTED|Timeout|ERROR|WMIC ]]; then DISKNUM={"{#DISKNUMLET}":"_Total"}
    fi
    
    #case $DISKNUM in
    #        *ZBX_NOTSUPPORTED*|*Timeout*)
    #         DISKNUM={"{#DISKNUMLET}":"_Total"}
    #         ;;
    #esac
    
    # Формируе Вывод
    JSONPHY="[n"$DISKNUM"n]"
    echo -e "${JSONPHY}"
    fi
    
    
    if [[ $2 = "discovery.logical" ]]
    then
    
    # Список Физический/Логический диск|Удалить шапку|Удаление номеров дисков|Удаление пробелов и каретки r|Диски по строкам|Удаление пустых строк|Подстановка макроса|зыкрытие }, кроме последней строки| закрытие последней строки}
    FSNAME=$(zabbix_get -s $1 -k system.run["WMIC.exe /NAMESPACE:\rootCIMV2 PATH win32_PerfFormattedData_PerfDisk_PhysicalDisk GET Name"]|sed -e '/Name/d'|sed 's/^[0-9] *//'|tr -d ' r'|sed 's/:/:n/g'|sed -e '/^$/d'| sed 's/^/t{"{#FSNAME}":"/'|sed '$!s/$/"},/'|sed '${s/$/"}/}')
    
    
    # Вариант с портом
    #FSNAME=$(zabbix_get -s $1 -p $3 -k system.run["WMIC.exe /NAMESPACE:\rootCIMV2 PATH win32_PerfFormattedData_PerfDisk_PhysicalDisk GET Name"]|sed -e '/Name/d'|sed 's/^[0-9] *//'|tr -d ' r'|sed 's/:/:n/g'|sed -e '/^$/d'| sed 's/^/t{"{#FSNAME}":"/'|sed '$!s/$/"},/'|sed '${s/$/"}/}')
    
    # Проверка что ответ не пустой или не ошибка, если пусто то отправляем _Total
    if [ -z "${FSNAME}" ]; then FSNAME={"{#FSNAME}":"_Total"}
    elif [[ "${FSNAME}" =~ ZBX_NOTSUPPORTED|Timeout|ERROR|WMIC ]]; then FSNAME={"{#FSNAME}":"_Total"}
    fi
    
    # Формируе Вывод
    JSONLOG="[n"$FSNAME"n]"
    echo -e "${JSONLOG}"
    fi
    

    Список обнаружения Физических дисков

    Template OS Windows rus Правило Обнаружение Список обнаружения Физических дисков
    Template OS Windows rus Правило Обнаружение Список обнаружения Физических дисков

    Прототипы элементов данных

    Template OS Windows rus Правило Обнаружение Список обнаружения Физических дисков Прототипы элементов данных
    Template OS Windows rus Правило Обнаружение Список обнаружения Физических дисков Прототипы элементов данных

    Текущая длина очереди Физического диска {#DISKNUMLET} perf_counter_en[234({#DISKNUMLET})198] 1m 90d 90d Zabbix агент (активный) Производительность, Файловая система Да

    Общей загруженность Физического диска в % {#DISKNUMLET} perf_counter_en[234({#DISKNUMLET})200] 1m 90d 90d Zabbix агент (активный) Производительность, Файловая система Да

    Общей загруженность чтением Физического диска в % {#DISKNUMLET} perf_counter_en[234({#DISKNUMLET})202] 1m 90d 90d Zabbix агент (активный) Производительность, Файловая система Да

    Общей загруженность записью Физического диска в % {#DISKNUMLET} perf_counter_en[234({#DISKNUMLET})204] 1m 90d 90d Zabbix агент (активный) Производительность, Файловая система Да

    Среднее время в сек, выполнения Физическим диском одной операции чтения или записи. {#DISKNUMLET} perf_counter_en[234({#DISKNUMLET})206] 1m 90d 90d Zabbix агент (активный) Производительность, Файловая система Да

    Физический дискСреднее время Чтения с диска (с) % {#DISKNUMLET} perf_counter_en[234({#DISKNUMLET})208] 1m 90d 90d Zabbix агент (активный) Производительность, Файловая система Да

    Физический дискСреднее время Записи на диск (с) {#DISKNUMLET} perf_counter_en[234({#DISKNUMLET})210] 1m 90d 90d Zabbix агент (активный) Производительность, Файловая система Да

    Общее кол-во операций вводавывода, обработанных Физическим диском за 1 сек {#DISKNUMLET} perf_counter_en[234({#DISKNUMLET})212] 1m 90d 90d Zabbix агент (активный) Производительность, Файловая система Да

    Количество обработанных запросов(обращений) на чтение Физическим диском за 1 сек {#DISKNUMLET} perf_counter_en[234({#DISKNUMLET})214] 1m 90d 90d Zabbix агент (активный) Производительность, Файловая система Да

    Количество обработанных запросов(обращений) на запись Физическим диском за 1 сек {#DISKNUMLET} perf_counter_en[234({#DISKNUMLET})216] 1m 90d 90d Zabbix агент (активный) Производительность, Файловая система Да

    Физический диск Скорость обмена (байт/с){#DISKNUMLET} perf_counter_en[234({#DISKNUMLET})218] 1m 90d 90d Zabbix агент (активный) Производительность, Файловая система Да

    Физический диск Скорость Чтения (байт/с) {#DISKNUMLET} perf_counter_en[234({#DISKNUMLET})220] 1m 90d 90d Zabbix агент (активный) Производительность, Файловая система Да

    Физический диск Скорость Записи (байт/с) {#DISKNUMLET} perf_counter_en[234({#DISKNUMLET})222] 1m 90d 90d Zabbix агент (активный) Производительность, Файловая система Да

    Среднее кол-во байт, одной операции ЧтенияЗаписи. Физического диска {#DISKNUMLET} perf_counter_en[234({#DISKNUMLET})224] 1m 90d 90d Zabbix агент (активный) Производительность, Файловая система Да

    Кол-во байт при одной операции Чтения Физического диска {#DISKNUMLET} perf_counter_en[234({#DISKNUMLET})226] 1m 90d 90d Zabbix агент (активный) Производительность, Файловая система Да

    Кол-тво байт, передаваемое при одной операции Записи. Физического диска {#DISKNUMLET} perf_counter_en[234({#DISKNUMLET})228] 1m 90d 90d Zabbix агент (активный) Производительность, Файловая система Да

    Физический диск Кол-во запросов(средняя длина), стоящих в очереди к диску {#DISKNUMLET} perf_counter_en[234({#DISKNUMLET})1400] 1m 90d 90d Zabbix агент (активный) Производительность, Файловая система Да

    Физический диск Кол-во запросов Чтения(средняя длина), стоящих в очереди к диску {#DISKNUMLET} perf_counter_en[234({#DISKNUMLET})1402] 1m 90d 90d Zabbix агент (активный) Производительность, Файловая система Да

    Физический диск Кол-во запросов Записи(средняя длина), стоящих в очереди к диску {#DISKNUMLET} perf_counter_en[234({#DISKNUMLET})1404] 1m 90d 90d Zabbix агент (активный) Производительность, Файловая система Да

    Физический диск простаивает, в % {#DISKNUMLET} perf_counter_en[234({#DISKNUMLET})1482] 1m 90d 90d Zabbix агент (активный) Производительность, Файловая система Да

    Физический диск расщеплений операций ввода-вывода за секунду {#DISKNUMLET} perf_counter_en[234({#DISKNUMLET})1484] 1m 90d 90d Zabbix агент (активный) Производительность, Файловая система Да

    Прототипы триггеров

    Template OS Windows rus Правило Обнаружение Список обнаружения Физических дисков Прототипы Триггеров
    Template OS Windows rus Правило Обнаружение Список обнаружения Физических дисков Прототипы Триггеров

    Внимание/Предупреждение Утилизация физического диска {#DISKNUMLET} {Template OS Windows:perf_counter_en[234({#DISKNUMLET})1482].last()}<20 Нет

    Внимание/Предупреждение Физический дискСреднее время чтения с диска у {#DISKNUMLET} {Template OS Windows:perf_counter_en[234({#DISKNUMLET})208].last()}>12 Да

    Внимание/Предупреждение Физический диск Кол-во запросов, стоящих в очереди к диску {#DISKNUMLET} {Template OS Windows:perf_counter_en[234({#DISKNUMLET})1400].min(5)}>8 Да

    Прототипы графиков

    Template OS Windows rus Правило Обнаружение Список обнаружения Физических дисков Прототипы Графиков
    Template OS Windows rus Правило Обнаружение Список обнаружения Физических дисков Прототипы Графиков

    Средняя Длина Очереди(Запросов) Физического диска {#DISKNUMLET} 900 200 Нормальный
    Среднее кол-во байт, одной операции Физического диска {#DISKNUMLET} 900 200 Нормальный
    Среднее время сек обращения к Физическим дискам {#DISKNUMLET} 900 200 Нормальный
    Скорость обмена (байт/с) Физического диска {#DISKNUMLET} 900 200 Нормальный
    Кол-во обращений в секунду Физического диска {#DISKNUMLET} 900 200 Нормальный
    Активное Время % Физического диска {#DISKNUMLET} 900 200 Нормальный

    Список обнаружения Логических дисков

    Template OS Windows rus Правило Обнаружение Список обнаружения Логических дисков
    Template OS Windows rus Правило Обнаружение Список обнаружения Логических дисков

    Прототипы элементов данных

    Template OS Windows rus Правило Обнаружение Список обнаружения Логических дисков Прототипы Элементов данных
    Template OS Windows rus Правило Обнаружение Список обнаружения Логических дисков Прототипы Элементов данных

    Текущая длина очереди Логического диска {#FSNAME} perf_counter_en[236({#FSNAME})198] 1m 90d 90d Zabbix агент (активный) Производительность, Файловая система Да

    Общей загруженность Логического диска в % {#FSNAME} perf_counter_en[236({#FSNAME})200] 1m 90d 90d Zabbix агент (активный) Производительность, Файловая система Да

    Общей загруженность чтением Логического диска в % {#FSNAME} perf_counter_en[236({#FSNAME})202] 1m 90d 90d Zabbix агент (активный) Производительность, Файловая система Да

    Общей загруженность записью Логического диска в % {#FSNAME} perf_counter_en[236({#FSNAME})204] 1m 90d 90d Zabbix агент (активный) Производительность, Файловая система Да

    Среднее время в сек, выполнения Логическим диском одной операции чтения или записи. {#FSNAME} perf_counter_en[236({#FSNAME})206] 1m 90d 90d Zabbix агент (активный) Производительность, Файловая система Да

    Логический дискСреднее время Чтения с диска (с) % {#FSNAME} perf_counter_en[236({#FSNAME})208] 1m 90d 90d Zabbix агент (активный) Производительность, Файловая система Да

    Логический дискСреднее время Записи на диск (с) {#FSNAME} perf_counter_en[236({#FSNAME})210] 1m 90d 90d Zabbix агент (активный) Производительность, Файловая система Да

    Общее кол-во операций вводавывода, обработанных Логическим диском за 1 сек {#FSNAME} perf_counter_en[236({#FSNAME})212] 1m 90d 90d Zabbix агент (активный) Производительность, Файловая система Да

    Количество обработанных запросов(обращений) на чтение Логическим диском за 1 сек {#FSNAME} perf_counter_en[236({#FSNAME})214] 1m 90d 90d Zabbix агент (активный) Производительность, Файловая система Да

    Количество обработанных запросов(обращений) на запись Логическим диском за 1 сек {#FSNAME} perf_counter_en[236({#FSNAME})216] 1m 90d 90d Zabbix агент (активный) Производительность, Файловая система Да

    Логический диск Скорость обмена (байт/с) {#FSNAME} perf_counter_en[236({#FSNAME})218] 1m 90d 90d Zabbix агент (активный) Производительность, Файловая система Да

    Логический диск Скорость Чтения (байт/с) {#FSNAME} perf_counter_en[236({#FSNAME})220] 1m 90d 90d Zabbix агент (активный) Производительность, Файловая система Да

    Логический диск Скорость Записи (байт/с) {#FSNAME} perf_counter_en[236({#FSNAME})222] 1m 90d 90d Zabbix агент (активный) Производительность, Файловая система Да

    Среднее кол-во байт, одной операции ЧтенияЗаписи. Логического диска {#FSNAME} perf_counter_en[236({#FSNAME})224] 1m 90d 90d Zabbix агент (активный) Производительность, Файловая система Да

    Кол-во байт при одной операции Чтения Логического диска {#FSNAME} perf_counter_en[236({#FSNAME})226] 1m 90d 90d Zabbix агент (активный) Производительность, Файловая система Да

    Кол-во байт, передаваемое при одной операции Записи Логического диска {#FSNAME} perf_counter_en[236({#FSNAME})228] 1m 90d 90d Zabbix агент (активный) Производительность, Файловая система Да

    Логический диск Кол-во запросов(средняя длина), стоящих в очереди к диску {#FSNAME} perf_counter_en[236({#FSNAME})1400] 1m 90d 90d Zabbix агент (активный) Производительность, Файловая система Да

    Логический диск Кол-во запросов Чтения(средняя длина), стоящих в очереди к диску {#FSNAME} perf_counter_en[236({#FSNAME})1402] 1m 90d 90d Zabbix агент (активный) Производительность, Файловая система Да

    Логический диск Кол-во запросов Записи(средняя длина), стоящих в очереди к диску {#FSNAME} perf_counter_en[236({#FSNAME})1404] 1m 90d 90d Zabbix агент (активный) Производительность, Файловая система Да

    Логический диск простаивает, в % {#FSNAME} perf_counter_en[236({#FSNAME})1482] 1m 90d 90d Zabbix агент (активный) Производительность, Файловая система Да

    Логический диск расщеплений операций ввода-вывода за секунду {#FSNAME} perf_counter_en[236({#FSNAME})1484] 1m 90d 90d Zabbix агент (активный) Производительность, Файловая система Да

    Прототипы триггеров

    Template OS Windows rus Правило Обнаружение Список обнаружения Логических дисков Прототипы Триггеров
    Template OS Windows rus Правило Обнаружение Список обнаружения Логических дисков Прототипы Триггеров

    Внимание/Предупреждение Логический дискСреднее время записи на диск (с) {#FSNAME} {Template OS Windows:perf_counter_en[236({#FSNAME})210].last()}>0.06 Да

    Внимание/Предупреждение Логический дискСреднее время чтения с диска {#FSNAME} {Template OS Windows:perf_counter_en[236({#FSNAME})208].last()}>0.6 Да

    Внимание/Предупреждение Логический диск Кол-во запросов, стоящих в очереди к диску {#FSNAME} {Template OS Windows:perf_counter_en[236({#FSNAME})1400].min(5)}>8 Да

    Прототипы графиков

    Template OS Windows rus Правило Обнаружение Список обнаружения Логических дисков Прототипы Графиков
    Template OS Windows rus Правило Обнаружение Список обнаружения Логических дисков Прототипы Графиков

    Средняя Длина Очереди(Запросов) Логического диска {#FSNAME} 900 200 Нормальный
    Среднее кол-во байт, одной операции Логического диска {#FSNAME} 900 200 Нормальный
    Среднее время сек обращения к Логическим дискам {#FSNAME} 900 200 Нормальный
    Скорость обмена (байт/с) Логического диска {#FSNAME} 900 200 Нормальный
    Кол-во обращений в секунду Логического диска {#FSNAME} 900 200 Нормальный
    Активное Время % Логического диска {#FSNAME} 900 200 Нормальный

    Данные настройки шаблона связаны с настройками шаблона графаны
    Внизу поста

    Проверка текущего времени узла сети
    Проверка расхождения времени влияет на активные проверки и на элементы сравнения по времени.
    Системное время.
    Ключ system.localtime[<тип>]
    utc — (по умолчанию) время с начала Эпохи (00:00:00 UTC, Январь 1, 1970), измеренное в секундах.
    local — время в формате ‘гггг-мм-дд,чч:мм:сс.ннн,+чч:мм’

    Проверка в терминале заббикс сервера
    zabbix_get -s 192.168.175.9 -p 10050 -k system.localtime Ответ 1645882547
    zabbix_get -s 192.168.175.9 -p 10050 -k system.localtime[local] Ответ 2022-02-26,16:37:05.397,+03:00

    Функция
    fuzzytime секунды — Проверка, на сколько отличается штамп времени значения элемента данных от времени Zabbix сервера.
    Возвращает:
    1 — если разница между штампом времени значения элемента данных и штампом времени Zabbix сервера меньше или равна сек секунд
    0 — в противном случае.
    Пример: fuzzytime(60)=0 > обнаружение проблемы, если разница во времени больше 60 секунд

    Создаем элементы данных:

    Имя: Местное время хоста
    Тип: Zabbix агент
    Ключ: system.localtime
    Тип информации: Числовой (целое положительное)
    Единица измерения: unixtime
    Группа: Операционная система
    Интервал обновления: 1m
    Описание:
    Системное время.
    utc — (по умолчанию) время с начала Эпохи (00:00:00 UTC, Январь 1, 1970), измеренное в секундах.
    local — время в формате ‘гггг-мм-дд,чч:мм:сс.ннн,+чч:мм’

    В данном элементе данных может получаться большая погрешность, если интервал обновления будет большой (несколько минут),
    а проверяемая разница небольшая (десятки секунд) в триггере

    Еще создадим вычисляемый элемент данных с функцией fuzzytime вычисляемое значение сразу в элементе.

    Имя: Местное время хоста 2
    Тип: Вычисляемое
    Ключ: system.localtime.fuzzytime
    Формула: fuzzytime(system.localtime,60)
    Тип информации: Числовой (целое положительное)
    Единица измерения: unixtime
    Группа: Операционная система
    Интервал обновления: 1m
    Описание:
    Системное время.
    utc — (по умолчанию) время с начала Эпохи (00:00:00 UTC, Январь 1, 1970), измеренное в секундах.
    local — время в формате ‘гггг-мм-дд,чч:мм:сс.ннн,+чч:мм’

    В данном случае функция fuzzytime сравнивает время
    на сервере zabbix и локальным временем наблюдаемого узла.
    Если разница больше 60 секунд,
    функция возвратит 0, если меньше, то 1

    Текущее время узла Элемент данных zabbix windows
    Текущее время узла Элемент данных zabbix windows

    ТРИГГЕРЫ

    Имя: Время Windows {HOST.HOST} отличается от времени Zabbix Server
    Важность: Информационная
    Выражение: {Template OS Windows:system.localtime.fuzzytime(60)}=0
    Разрешить закрывать вручную: V
    Описание:
    fuzzytime (сек)
    1 — если разница между штампом времени значения элемента данных и штампом времени Zabbix сервера меньше или равна сек секунд
    0 — в противном случае
    Последнее значение:
    {ITEM.VALUE}
    {ITEM.LASTVALUE}

    Имя: Время Windows {HOST.HOST} отличается от времени Zabbix Server
    Важность: Информационная
    Выражение: {Template OS Windows:system.localtime.fuzzytime.sum(#3)}=0
    Разрешить закрывать вручную: V
    Описание:
    Если 3 последние проверки были с ошибкой, то их сумма будет равно 0.
    Триггер сработает.
    Как только время будет синхронизировано, триггер выйдет из проблемы
    Последнее значение:
    {ITEM.VALUE}
    {ITEM.LASTVALUE}

    Если 3 последних 0 т.е. 0+0+0 = 0 значит триггер срабатывает у нас есть расхождение более чем на 1 минуту

    Проверка времени на узлах триггеры
    Проверка времени на узлах триггеры

    Действие на синхронизацию времени при срабатывании триггера

    Действие на синхронизацию времени.jpg
    Действие на синхронизацию времени.jpg

    Команда net time \192.168.ххх.ххх /set /y

    Или стандартные если на них есть доступ
    time.windows.com
    time.nist.gov
    time-nw.nist.gov
    time-a.nist.gov
    time-b.nist.gov
    time-b-wwv.nist.gov
    time-e-wwv.nist.gov
    time-e-g.nist.gov
    time-a-g.nist.gov
    utcnist.colorado.edu
    ntp-d.nist.gov
    ntp-b.nist.gov

    Как настроить службу на Windows Пост ВК от 2012г Синхронизация времени в локальной сети
    Добавлено Синхронизация даты и сделано 3 попытки через 5 минут

    Синхронизация даты и времени Windows
    Синхронизация даты и времени Windows

    date /T {$DATEDD.MM.YYYY}
    time /t {TIME}
    date {$DATEDD.MM.YYYY}
    time {TIME}
    net time \192.168.***.*** /set /y
    net time \192.168.***.*** /set /y

    Как сделать текущую дату в глобальный макрос разбирали тут В середине поста ТЕКУЩАЯ ДАТА в Элементе данных , макрос в zabbix

    Как убрать лишние сетевые интерфейсы

    Например у нас есть 2 интерфейса одного узла
    Realtek PCIe GBE Family Controller и
    TAP-Windows Adapter V9 for OpenVPN Connect

    Сетевые интерфейсы пример.jpg
    Сетевые интерфейсы пример.jpg

    Такой список интерфейсов получаем командой net.if.discovery
    {«{#IFNAME}»:»RAS Async Adapter»},
    {«{#IFNAME}»:»Software Loopback Interface 1″},

    Подключение по локальной сети:
    {«{#IFNAME}»:»Realtek PCIe GBE Family Controller»},
    {«{#IFNAME}»:»Realtek PCIe GBE Family Controller-QoS Packet Scheduler-0000″},
    {«{#IFNAME}»:»Realtek PCIe GBE Family Controller-WFP LightWeight Filter-0000″},

    Подключение по локальной сети: «От ПО OpenVPN»
    {«{#IFNAME}»:»TAP-Windows Adapter V9 for OpenVPN Connect»},
    {«{#IFNAME}»:»TAP-Windows Adapter V9 for OpenVPN Connect-QoS Packet Scheduler-0000″},
    {«{#IFNAME}»:»TAP-Windows Adapter V9 for OpenVPN Connect-WFP LightWeight Filter-0000″},

    Туннельный адаптер Teredo Tunneling Pseudo-Interface:
    {«{#IFNAME}»:»Teredo Tunneling Pseudo-Interface»},

    Туннельный адаптер isatap:
    {«{#IFNAME}»:»Адаптер Microsoft ISATAP»},
    {«{#IFNAME}»:»Адаптер Microsoft ISATAP #2″},
    {«{#IFNAME}»:»Адаптер Microsoft ISATAP #3″},

    Программная реализация сетевых протоколов:
    {«{#IFNAME}»:»WAN Miniport (IP)»},
    {«{#IFNAME}»:»WAN Miniport (IP)-QoS Packet Scheduler-0000″},
    {«{#IFNAME}»:»WAN Miniport (IPv6)»},
    {«{#IFNAME}»:»WAN Miniport (IPv6)-QoS Packet Scheduler-0000″},
    {«{#IFNAME}»:»WAN Miniport (L2TP)»},
    {«{#IFNAME}»:»WAN Miniport (PPPOE)»},
    {«{#IFNAME}»:»WAN Miniport (PPTP)»},
    {«{#IFNAME}»:»WAN Miniport (SSTP)»},
    {«{#IFNAME}»:»WAN Miniport (IKEv2)»},
    {«{#IFNAME}»:»WAN Miniport (Network Monitor)»},
    {«{#IFNAME}»:»WAN Miniport (Network Monitor)-QoS Packet Scheduler-0000″},

    Так же нашлись
    Устройства предустановленные в системе,
    устройства которые были когда-то подключены,но небыли удалены драйвера после отключения устройства,
    так же созданные подключения (VPN PPPOE и тд) или ПО которое создает сетевой интерфейс

    {«{#IFNAME}»:»Устройства Bluetooth (личной сети)»},
    {«{#IFNAME}»:»Устройство Bluetooth (протокол RFCOMM TDI)»},

    {«{#IFNAME}»:»Remote NDIS based Internet Sharing Device»},
    {«{#IFNAME}»:»RemoteNDIS based Internet Sharing Device #2″},

    {«{#IFNAME}»:»USB-адаптер беспроводных сетей 802.11 USB Wireless LAN»},
    {«{#IFNAME}»:»802.11n USB Wireless LAN Card»}

    Просмотреть командой через cmd
    ipconfig /all
    netsh interface show interface

    Ключ заббикса net.if.list дает следующий ответ
    zabbix_get -s 192.168.xxx.xxx -k net.if.list
    Other unknown — Устройство Bluetooth (протокол RFCOMM TDI)
    Other unknown — Remote NDIS based Internet Sharing Device #2
    Ethernet enabled — WAN Miniport (IPv6)
    Ethernet enabled — WAN Miniport (Network Monitor)
    Ethernet enabled — Realtek PCIe GBE Family Controller-QoS Packet Scheduler-0000
    Ethernet enabled — Realtek PCIe GBE Family Controller-WFP LightWeight Filter-0000
    Ethernet enabled — WAN Miniport (IP)
    Ethernet enabled — WAN Miniport (Network Monitor)-QoS Packet Scheduler-0000
    Ethernet enabled 192.168.xxx.xxx Realtek PCIe GBE Family Controller
    Ethernet enabled — WAN Miniport (IP)-QoS Packet Scheduler-0000
    Ethernet enabled — WAN Miniport (IPv6)-QoS Packet Scheduler-0000
    Ethernet unknown — Устройства Bluetooth (личной сети)
    Ethernet unknown — Remote NDIS based Internet Sharing Device
    PPP enabled — WAN Miniport (PPPOE)
    PPP enabled — RAS Async Adapter
    Software Loopback enabled 127.0.0.1 Software Loopback Interface 1
    unknown enabled — TAP-Windows Adapter V9 for OpenVPN Connect
    unknown enabled — TAP-Windows Adapter V9 for OpenVPN Connect-QoS Packet Scheduler-0000
    unknown enabled — TAP-Windows Adapter V9 for OpenVPN Connect-WFP LightWeight Filter-0000
    IEEE 802.11 Wireless unknown — USB-адаптер беспроводных сетей 802.11 USB Wireless LAN
    IEEE 802.11 Wireless unknown — 802.11n USB Wireless LAN Card
    Tunnel type encapsulation enabled — WAN Miniport (SSTP)
    Tunnel type encapsulation enabled — WAN Miniport (IKEv2)
    Tunnel type encapsulation enabled — WAN Miniport (L2TP)
    Tunnel type encapsulation enabled — WAN Miniport (PPTP)
    Tunnel type encapsulation enabled — Адаптер Microsoft ISATAP
    Tunnel type encapsulation enabled — Teredo Tunneling Pseudo-Interface
    Tunnel type encapsulation enabled — Адаптер Microsoft ISATAP #2
    Tunnel type encapsulation enabled — Адаптер Microsoft ISATAP #3

    В правиле обнаружения вкладка Фильтры
    {#IFNAME} совпадает @Network interfaces for discovery

    Фильтр для Обнаружение сетевого интерфейса
    Фильтр для Обнаружение сетевого интерфейса

    Далее идем Администрирование -> Регулярные выражения -> Network interfaces for discovery

    Регулярное выражение Network interfaces for discovery
    Регулярное выражение Network interfaces for discovery

    Далее меняем/добавляем регулярки, для того чтоб убрать лишние сетевые интерфейсы

    Глобальные регулярные выражения
    Глобальные регулярные выражения

    Используется как для Windows так и для Linux! Так же может применятся в других шаблонах таких как SNMP

    Стандартно
    ^Software Loopback Interface [Результат ЛОЖЬ]
    ^(In)?[Ll]oop[Bb]ack[0-9._]*$ [Результат ЛОЖЬ]
    ^NULL[0-9.]*$ [Результат ЛОЖЬ]
    ^[Ll]o[0-9.]*$ [Результат ЛОЖЬ]
    ^[Ss]ystem$ [Результат ЛОЖЬ]
    ^Nu[0-9.]*$ [Результат ЛОЖЬ]

    Некоторый список для Windows что можно скрыть, стоит учесть если вы начнете пользоватся данным адаптером, а он у вас скрыт для обнаружения и данные для этого интерфейся вы получать не будете!!!
    ^WAN Miniport [Результат ЛОЖЬ]
    ^Microsoft Loopback [Результат ЛОЖЬ]
    ^RAS Async Adapter [Результат ЛОЖЬ]
    ^MS TCP Loopback interface [Результат ЛОЖЬ]
    ^WAN Miniport (Network Monitor)-QoS [Результат ЛОЖЬ]
    ^WAN Miniport (Network Monitor)-Symantec [Результат ЛОЖЬ]
    ^lo$ [Результат ЛОЖЬ]
    ^Software Loopback Interface [Результат ЛОЖЬ]
    ^Teredo Tunneling [Результат ЛОЖЬ]
    ^Microsoft ISATAP [Результат ЛОЖЬ]
    ^vmxnet3 Ethernet Adapter-WFP [Результат ЛОЖЬ]
    LightWeight Filter [Результат ЛОЖЬ]
    QoS Packet Scheduler [Результат ЛОЖЬ]
    Symantec Endpoint Protection [Результат ЛОЖЬ]
    Microsoft Kernel Debug Network Adapter [Результат ЛОЖЬ]

    RAS асинхронный адаптер [Результат ЛОЖЬ]
    Адаптер Microsoft ISATAP [Результат ЛОЖЬ]
    WFP LightWeight Filter [Результат ЛОЖЬ]
    RAS Async Adapter [Результат ЛОЖЬ]
    network traffic on WAN Miniport [Результат ЛОЖЬ]
    Сетевой адаптер с отладкой ядра [Результат ЛОЖЬ]
    Туннельный адаптер Microsoft Teredo [Результат ЛОЖЬ]
    Мини-порт глобальной сети [Результат ЛОЖЬ]
    Kaspersky Lab NDIS [Результат ЛОЖЬ]
    Microsoft Kernel Debug Network Adapter [Результат ЛОЖЬ]
    WFP 802.3 MAC Layer LightWeight Filter [Результат ЛОЖЬ]
    WFP Native MAC Layer LightWeight Filter [Результат ЛОЖЬ]
    QoS Packet Scheduler [Результат ЛОЖЬ]
    ^Software Loopback Interface [Результат ЛОЖЬ]
    ^lo$ [Результат ЛОЖЬ]

    можно создать регулярное выражение, которое исключает несколько подстрок, так:
    ^((?!()|()|()).*)$
    Сами подстроки пихать в пустые скобки.

    Еще варианты переделать ключ с
    net.if.discovery на wmi.getll
    wmi.getll — работает с версии 4.4 wmi.getall[<пространство_имён>,<запрос>]
    Обнаружение с использованием WMI запросов
    Исходник агента
    {«wmi.get», CF_HAVEPARAMS, WMI_GET, «root\cimv2,select Caption from Win32_OperatingSystem»},
    {«wmi.getall», CF_HAVEPARAMS, WMI_GETALL, «root\cimv2,select * from Win32_OperatingSystem»},

    Через скрипт powershell
    сеть через
    Get-WmiObject Win32_NetworkInterface
    Get-WmiObject Win32_PerfFormattedData_Tcpip_NetworkInterface обнаруживается
    Get-WmiObject Win32_PerfFormattedData_Tcpip_NetworkInterface | select name |where-object {$_.name -notlike ‘*isatap*’} | Where-Object {$_.name -notlike ‘*Teredo*’}

    Еще один запрос обнаружения
    LLD. в связи с тем что net.if.discovery уже был занят.
    я создал Alias=net.if.discovery.error:net.if.discovery
    Alias=net.if.discovery_v:net.if.discovery

    На новых версиях 5 Есть Модули

    Черз скрипт

    net.if.discovery поменять на net.if.sh Внешняя проверка
    ключ net.if.sh {HOST.CONN} {HOST.PORT} discovery
    Скопировать его в /usr/local/share/zabbix/externalscripts

    #!/bin/bash
    #2021/07/06 v1.0
    # Автор Мамзиков Артём Андреевич Описание по скрипту
    # Получение списка Интерфейсов Windows которые в статусе подключены или находятся в папке Сетевые подключения

    #./net.if.sh 192.168.221.89 10050 discovery , ключ net.if.sh {HOST.CONN} {HOST.PORT} discovery
    # {HOST.HOST} -Имя узла сети; {HOST.CONN} -IP адрес или DNS имя узла сети; {HOST.PORT} -Порт узла сети (агента)

    if [[ $3 = «discovery» ]]
    then

    # Запрос Сетевых интерфейсов
    get=`zabbix_get -s $1 -p $2 -k system.run[«netsh interface show interface»]`

    #Убрать первые 3 строки|Если коректно не отображается русский перекодируем из cp866 в utf8 или cp1251 в utf8|выбираем включенный|добавление табуляции от 3х пробелов|выводим последний столбец название адаптера|удалить пустую строку|удалить перенос каретки
    kodr=$(echo «${get}»|tail -n +4|iconv -f cp866 -t utf8|sed -n ‘/Connected |подключен |enabled |включен /Ip’|sed -E ‘s/ ([^ ])/t1/g; s/^1/1t/;’|awk -F\t ‘{print $4}’|sed -e ‘/^$/d’|tr -d ‘r’)
    kodir=$(echo «${get}»|tail -n +4|iconv -f cp1251 -t utf8|grep -i -E -w «Connected|Подключен|enabled|включен»|sed -E ‘s/ ([^ ])/t1/g; s/^1/1t/;’|awk -F\t ‘{print $4}’|sed -e ‘/^$/d’|tr -d ‘r’)
    #echo «${kodr}»
    #echo «${kodir}»

    # Текущие настройки протокола TCP/IP
    info=`zabbix_get -s $1 -p $2 -k system.run[«ipconfig /all»]`

    # Получаем описание|меняем кодировку|находим строку и выводим еще 4 ниже|выбираем 1 строку|Обрезаем все лишнее
    NAME=$(echo «${info}»|iconv -f cp866 -t utf8|grep -i -A 4 -E -w «${kodr}»:|grep -i -E -w «Описание.|Description.»|sed ‘s|.*. : ||’)
    NAMEP=$(echo «${info}»|iconv -f cp1251 -t utf8|grep -i -A 4 -E -w «${kodr}»:|grep -i -E -w «Описание.|Description.»|sed ‘s|.*. : ||’)
    #echo «${NAME}»
    #echo «${NAMEP}»

    # Список Интерфейсов| подставить макрос| закрытие скобки| удаление табуляции и переноса строк| удаление последней запятой| Сделаем читаемый вид
    obr=`echo «${NAME}»| sed ‘s/^/t{«{#IFNAME}»:»/’| sed ‘s/.$/»},/’| tr -d ‘tn’| sed ‘s/,+$//’| sed ‘s/.*»},/»},n/g’`
    obrp=`echo «${NAMEP}»| sed ‘s/^/t{«{#IFNAME}»:»/’| sed ‘s/.$/»},/’| tr -d ‘tn’| sed ‘s/,+$//’| sed ‘s/.*»},/»},n/g’`

    # Проверка правильного декодирования, по параметру что чтрока не пустая
    # Если данные есть выводим их CP866
    if [ -n «${kodr}» ]; then NAMELAN=»${obr}»
    # Если данные есть выводим их CP1251
    elif [ -n «${kodir}» ]; then NAMELAN=»${obrp}»
    fi
    # Формируе Вывод
    JSON=»{«data»:[n»»${NAMELAN}»»n]}»
    fi
    echo -e «${JSON}»

    Для триггера
    Общая скорость 1000 или 100 мбит =100%
    нам нужно получить 95% занято или 5% свободно, будем приравнивать к 0
    текущую скорость нам необходимо умножить на х% , что бы при показателе 950 или 95 умножив на X получится сумма равная или большая от общей скорости (1000 и 100)
    Получаем 1000-(950*Х)<=0
    Получим Х
    1000/1000=1 (100%)
    1000/950=1,052 (95%)
    1000/750=1.333 (75%)
    1000/500=2 (50%)
    1000/300=3,333 (30%)

    Получаем
    1000-(950*1.053)<=0
    100-(95*1.053)<=0
    Выходит 1 триггер под оба варианта.

    Также нужно сделать чтоб триггер не срабатывал на отключеный порт со скорость 0
    {Шаблон:Элемент данных.last(0)}<>0 and
    {Шаблон:Элемент данных.last()}-({Шаблон:Элемент данных.min(3m)}*1.053)<=0

    Содержание

    1. Мониторинг smart hdd zabbix windows
    2. Zabbix: LLD-мониторинг дисков без UserParameter и скриптов на агентах
    3. Настройка агента
    4. Smartmontools
    5. Скрипт
    6. Шаблон
    7. S.M.A.R.T + Zabbix | Windows
    8. Возможности решения
    9. Подготовка Zabbix-Server
    10. Подготовка Zabbix-Agent Windows
    11. Результат
    12. ТраблШутинг
    13. Zabbix мониторим жесткие диски Windows при помощи S.M.A.R.T
    14. Zabbix + S.M.A.R.T.
    15. S.M.A.R.T.
    16. Available solutions
    17. SMART by Zabbix agent 2
    18. Overview
    19. Setup
    20. Zabbix configuration
    21. Macros used
    22. Template links
    23. Discovery rules
    24. Items collected
    25. Triggers
    26. Feedback
    27. References
    28. Template Module SMART by Zabbix agent 2
    29. Overview
    30. Setup
    31. Zabbix configuration
    32. Macros used
    33. Template links
    34. Discovery rules
    35. Items collected
    36. Triggers
    37. Feedback
    38. References
    39. SMART by Zabbix agent 2
    40. Overview
    41. Setup
    42. Zabbix configuration
    43. Macros used
    44. Template links
    45. Discovery rules
    46. Items collected
    47. Triggers
    48. Feedback
    49. References
    50. Template Module SMART by Zabbix agent 2
    51. Overview
    52. Setup
    53. Zabbix configuration
    54. Macros used
    55. Template links
    56. Discovery rules
    57. Items collected
    58. Triggers
    59. Feedback

    Мониторинг smart hdd zabbix windows

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

    Приступим. В первую очередь нам нужно подготовить конфигурацию. Для этого в файле zabbix_agentd.win.conf достаточно поместить содержимое:

    Для мониторинга «жизненно важных» значений SMART HDD, достаточно использовать только строки с RAW_VALUE и VALUE. Остальные значения SMART может быть пригодятся, их можно оставить.

    Или если на команду

    диски определяются как

    csmi

    то в конфигу Zabbix агента нужно добавить строку

    Ключ в элементах данных будет выглядеть, например, так:

    Об остальных параметрах Zabbix-Агента рассказывать нет смысла, всё должно быть предельно понятно.

    Пришло время распространить Zabbix-агент и smartmontools на рабочие станции. Весь этот пакет файлов я запихал в один архив. Кому нравится устанавливать отдельно, милости просим сюда и сюда. Директорию zabbix32 из архива мне показалось правильным запихать в директорию Windows, что бы особо продвинутые пользователи её не удалили. Хотя, с нашим скриптом который будет распространять директорию и запускать службу нам и это не страшно.

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

    Этот скрипт, при запуске на рабочей стануции, проверяет запущена ли служба с именем Zabbix Agent. Если да, то «что-то» незаметно сообщает. Если нет, то запускает копирование директории zabbix32 из директории с GPO в папку Windows на рабочей станции, устанавливает и запускает службу. Уникальный код политики не забываем поменять в пути скрипта.

    Если служба установлена, порт TCP 10050 открыт, можно проверить работоспособность схемы. На Zabbix сервере должен быть установлен пакет zabbix-get:

    и проверяем работоспособность, например:

    Если в ответ получили значение, то всё отлично. Можно приступать к созданию графиков. Их можно создать по аналогии с зарисовкой по настройке мониторинга SMART, но для компов на Linux.

    Источник

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

    Источник

    S.M.A.R.T + Zabbix | Windows

    Наткнулся на статью сис.админа Zerox на счёт мониторинга S.M.A.R.T. диска средствами Zabbix. Но что-то у меня никак не получалось по его записи. Поэтому я опишу свой опыт настройки это необходимой вещи.

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

    Будем разворачивать решение с Github. По сути, эта запись просто перевод с небольшими пояснениями. 🙂

    Все необходимые компоненты я сложил в архив, который можно скачать с Я.Диска (если ссылка сломалась пишите к комменты, стучите на почту, смотрите на github).

    Возможности решения

    Данное решает такие задачи:

    Подготовка Zabbix-Server

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

    Подготовка Zabbix-Agent Windows

    Установка smartmontools

    Ничего необычного, просто устанавливаем smartmontools, как обычную программу. Единственный момент, не рекомендую менять путь, иначе его надо будет менять в конфиге агента и в скрипте.

    Конфигурирование агента

    Создаем папку scripts и помещаем туда наш скрипт smartctl-disks-discovery.ps1

    Открываем zabbix_agentd.conf и правим

    И добавляем пользовательскую проверку

    Осталось перезапустить агента и привязать наш хост к шаблону.

    Примерно через час прилетят данные. (Для отладки можно поменять время обнаружения, я обычно ставлю 10 минут, меняем 1h на 10m. Главное, не забыть обратно вернуть).

    2022 05 17 11 00 31

    Результат

    Таким образом мы настроили мониторинг SSD и HDD дисков. Данное решение отлично показывает себя в проде. По критически важным дискам можно строить вот такие информативные графики. Мне нравится 🙂

    2022 05 17 11 05 10

    ТраблШутинг

    У меня такая проблема возникала, когда забыл ставить smartmontools

    Источник

    Zabbix мониторим жесткие диски Windows при помощи S.M.A.R.T

    В данной статье будем прикручивать к Zabbix мониторинг жестких дисков Windows, для мониторинга жестких дисков Linux (Ubuntu) смотрите в этой статье.

    Начнем с установки Smartmontools в Windows, скачиваем smartmontools от сюда выбираем последнюю версию (на момент написания статьи была использована версия smartmontools-5.41-1.win32-setup.exe) и устанавливаем (ничего не меняя, Далее..).

    Добавляем строки в C:Program FilesZabbix Agentzabbix-agentd.conf:

    Перезапускаем службу zabbix агента в Windows:

    Пробуем получить с Zabbix-agent информацию о температуре жесткого диска. Это делается там, где установлен Zabbix сервер.

    Остается сделать шаблон на web морде Zabbix сервера, смотрите в этой статье.

    При проверке температуры Windows в ключе запроса нужно указывать sda

    А можете подсказать немного по коду?

    У меня при команде на виндовой машине

    smartctl 6.1 2013-03-16 r3800 [i686-w64-mingw32-2008-sp2] (sf-6.1-1)
    Copyright (C) 2002-13, Bruce Allen, Christian Franke, http://www.smartmontools.org

    === START OF READ SMART DATA SECTION ===
    SMART Health Status: OK

    А если на сервере с zabbix’ом выполнить команду

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

    необходимо добавь в конфиг агента (zabbix_agentd.conf) параметр UnsafeUserParameters=1
    иначе в командах недопустимы символы: ‘ ” ` *? [ ]

    Дружище можно вопрос:
    В отзывах о жёстком диске WD RE WD2000FYYZ говорится о каком-то TLER, который надо отключать если диск не в Рэйде, вот ссылка: http://www.ulmart.ru/goods/373048

    Не подскажете о чём идёт речь, и как это задействовать?

    Источник

    Zabbix + S.M.A.R.T.

    smartctl

    S.M.A.R.T.

    S.M.A.R.T. (Self-Monitoring, Analysis and Reporting Technology; often written as SMART) is a monitoring system included in computer hard disk drives (HDDs), solid-state drives (SSDs), and eMMC drives

    Available solutions

    Also available for: 5.0

    SMART by Zabbix agent 2

    Overview

    For Zabbix version: 5.4 and higher
    The template for monitoring S.M.A.R.T. attributes of physical disk that works without any external scripts.
    It collects metrics by Zabbix agent 2 version 5.0 and later with Smartmontools version 7.1 and later.
    Disk discovery LLD rule finds all HDD, SSD, NVMe disks with S.M.A.R.T. enabled. Attribute discovery LLD rule finds all Vendor Specific Attributes
    for each disk. If you want to skip some attributes, please set regular expressions with disk names in <$SMART.DISK.NAME.MATCHES>
    and with attribute IDs in <$SMART.ATTRIBUTE.ID.MATCHES>macros on the host level.

    This template was tested on:

    Setup

    Install the Zabbix agent 2 and Smartmontools 7.1.

    Zabbix configuration

    No specific Zabbix configuration is required.

    Macros used

    This macro is used in overrides of attribute discovery for filtering IDs. It can be overridden on the host or linked template level.

    This macro is used in overrides of attribute discovery for filtering IDs. It can be overridden on the host or linked template level.

    This macro is used for trigger expression. It can be overridden on the host or linked template level.

    This macro is used for trigger expression. It can be overridden on the host or linked template level.

    Template links

    There are no template links in this template.

    Discovery rules

    Discovery SMART disks.

    ZABBIX_PASSIVE smart.disk.discovery

    Overrides:

    Discovery SMART Vendor Specific Attributes of disks.

    ZABBIX_PASSIVE smart.attribute.discovery

    Overrides:

    Items collected

    Group Name Description Type Key and additional info
    Zabbix_raw_items SMART: Get attributes DEPENDENT smart.disk.model[<#NAME>]

    Preprocessing:

    DEPENDENT smart.disk.sn[<#NAME>]

    Preprocessing:

    The disk is passed the SMART self-test or not.

    DEPENDENT smart.disk.test[<#NAME>]

    Preprocessing:

    Current drive temperature.

    DEPENDENT smart.disk.temperature[<#NAME>]

    Preprocessing:

    Count of hours in power-on state. The raw value of this attribute shows total count of hours (or minutes, or seconds, depending on manufacturer) in power-on state. «By default, the total expected lifetime of a hard disk in perfect condition is defined as 5 years (running every day and night on all days). This is equal to 1825 days in 24/7 mode or 43800 hours.» On some pre-2005 drives, this raw value may advance erratically and/or «wrap around» (reset to zero periodically). https://en.wikipedia.org/wiki/S.M.A.R.T.#Known_ATA_S.M.A.R.T._attributes

    DEPENDENT smart.disk.hours[<#NAME>]

    Preprocessing:

    Contains a vendor specific estimate of the percentage of NVM subsystem life used based on the actual usage and the manufacturer’s prediction of NVM life. A value of 100 indicates that the estimated endurance of the NVM in the NVM subsystem has been consumed, but may not indicate an NVM subsystem failure. The value is allowed to exceed 100. Percentages greater than 254 shall be represented as 255. This value shall be updated once per power-on hour (when the controller is not in a sleep state).

    DEPENDENT smart.disk.percentage_used[<#NAME>]

    Preprocessing:

    This field indicates critical warnings for the state of the controller.

    DEPENDENT smart.disk.critical_warning[<#NAME>]

    Preprocessing:

    Contains the number of occurrences where the controller detected an unrecovered data integrity error. Errors such as uncorrectable ECC, CRC checksum failure, or LBA tag mismatch are included in this field.

    DEPENDENT smart.disk.media_errors[<#NAME>]

    Preprocessing:

    DEPENDENT smart.disk.error[<#NAME>,<#ID>]

    Preprocessing:

    DEPENDENT smart.disk.attr.raw[<#NAME>,<#ID>]

    Preprocessing:

    Triggers

    Device serial number has changed. Ack to close.

    Depends on:

    — SMART [<#NAME>]: Average disk temperature is critical (over <$SMART.TEMPERATURE.MAX.CRIT>°C for 5m)

    The value should be greater than THRESH.

    Name Description Expression Severity Dependencies and additional info
    SMART [<#NAME>]: Disk has been replaced (new serial number received) last(/SMART by Zabbix agent 2/smart.disk.sn[<#NAME>],#1)<>last(/SMART by Zabbix agent 2/smart.disk.sn[<#NAME>],#2) and length(last(/SMART by Zabbix agent 2/smart.disk.sn[<#NAME>]))>0 INFO last(/SMART by Zabbix agent 2/smart.disk.test[<#NAME>])=»false» HIGH
    SMART [<#NAME>]: Average disk temperature is too high (over <$SMART.TEMPERATURE.MAX.WARN>°C for 5m) avg(/SMART by Zabbix agent 2/smart.disk.temperature[<#NAME>],5m)> AVERAGE
    SMART [<#NAME>]: NVMe disk percentage using is over 90% of estimated endurance last(/SMART by Zabbix agent 2/smart.disk.percentage_used[<#NAME>])>90 AVERAGE
    SMART [<#NAME>]: Attribute <#ID> <#ATTRNAME>is failed last(/SMART by Zabbix agent 2/smart.disk.error[<#NAME>,<#ID>]) WARNING

    Feedback

    Please report any issues with the template at https://support.zabbix.com

    You can also provide a feedback, discuss the template or ask for help with it at ZABBIX forums.

    References

    Also available for: 5.4

    Template Module SMART by Zabbix agent 2

    Overview

    For Zabbix version: 5.0 and higher
    The template for monitoring S.M.A.R.T. attributes of physical disk that works without any external scripts.
    It collects metrics by Zabbix agent 2 version 5.0 and later with Smartmontools version 7.1 and later.
    Disk discovery LLD rule finds all HDD, SSD, NVMe disks with S.M.A.R.T. enabled. Attribute discovery LLD rule finds all Vendor Specific Attributes
    for each disk. If you want to skip some attributes, please set regular expressions with disk names in <$SMART.DISK.NAME.MATCHES>
    and with attribute IDs in <$SMART.ATTRIBUTE.ID.MATCHES>macros on the host level.

    This template was tested on:

    Setup

    Install the Zabbix agent 2 and Smartmontools 7.1.

    Zabbix configuration

    No specific Zabbix configuration is required.

    Macros used

    This macro is used in overrides of attribute discovery for filtering IDs. It can be overridden on the host or linked template level.

    This macro is used in overrides of attribute discovery for filtering IDs. It can be overridden on the host or linked template level.

    This macro is used for trigger expression. It can be overridden on the host or linked template level.

    This macro is used for trigger expression. It can be overridden on the host or linked template level.

    Template links

    There are no template links in this template.

    Discovery rules

    Discovery SMART disks.

    ZABBIX_PASSIVE smart.disk.discovery

    Overrides:

    Discovery SMART Vendor Specific Attributes of disks.

    ZABBIX_PASSIVE smart.attribute.discovery

    Overrides:

    Items collected

    Group Name Description Type Key and additional info
    Zabbix_raw_items SMART: Get attributes DEPENDENT smart.disk.model[<#NAME>]

    Preprocessing:

    DEPENDENT smart.disk.sn[<#NAME>]

    Preprocessing:

    The disk is passed the SMART self-test or not.

    DEPENDENT smart.disk.test[<#NAME>]

    Preprocessing:

    Current drive temperature.

    DEPENDENT smart.disk.temperature[<#NAME>]

    Preprocessing:

    Count of hours in power-on state. The raw value of this attribute shows total count of hours (or minutes, or seconds, depending on manufacturer) in power-on state. «By default, the total expected lifetime of a hard disk in perfect condition is defined as 5 years (running every day and night on all days). This is equal to 1825 days in 24/7 mode or 43800 hours.» On some pre-2005 drives, this raw value may advance erratically and/or «wrap around» (reset to zero periodically). https://en.wikipedia.org/wiki/S.M.A.R.T.#Known_ATA_S.M.A.R.T._attributes

    DEPENDENT smart.disk.hours[<#NAME>]

    Preprocessing:

    Contains a vendor specific estimate of the percentage of NVM subsystem life used based on the actual usage and the manufacturer’s prediction of NVM life. A value of 100 indicates that the estimated endurance of the NVM in the NVM subsystem has been consumed, but may not indicate an NVM subsystem failure. The value is allowed to exceed 100. Percentages greater than 254 shall be represented as 255. This value shall be updated once per power-on hour (when the controller is not in a sleep state).

    DEPENDENT smart.disk.percentage_used[<#NAME>]

    Preprocessing:

    This field indicates critical warnings for the state of the controller.

    DEPENDENT smart.disk.critical_warning[<#NAME>]

    Preprocessing:

    Contains the number of occurrences where the controller detected an unrecovered data integrity error. Errors such as uncorrectable ECC, CRC checksum failure, or LBA tag mismatch are included in this field.

    DEPENDENT smart.disk.media_errors[<#NAME>]

    Preprocessing:

    DEPENDENT smart.disk.error[<#NAME>,<#ID>]

    Preprocessing:

    DEPENDENT smart.disk.attr.raw[<#NAME>,<#ID>]

    Preprocessing:

    Triggers

    Device serial number has changed. Ack to close.

    Depends on:

    — SMART [<#NAME>]: Average disk temperature is critical (over <$SMART.TEMPERATURE.MAX.CRIT>°C for 5m)

    The value should be greater than THRESH.

    Feedback

    Please report any issues with the template at https://support.zabbix.com

    You can also provide a feedback, discuss the template or ask for help with it at ZABBIX forums.

    References

    Also available for: 5.0

    SMART by Zabbix agent 2

    Overview

    For Zabbix version: 5.4 and higher
    The template for monitoring S.M.A.R.T. attributes of physical disk that works without any external scripts.
    It collects metrics by Zabbix agent 2 version 5.0 and later with Smartmontools version 7.1 and later.
    Disk discovery LLD rule finds all HDD, SSD, NVMe disks with S.M.A.R.T. enabled. Attribute discovery LLD rule finds all Vendor Specific Attributes
    for each disk. If you want to skip some attributes, please set regular expressions with disk names in <$SMART.DISK.NAME.MATCHES>
    and with attribute IDs in <$SMART.ATTRIBUTE.ID.MATCHES>macros on the host level.

    This template was tested on:

    Setup

    Install the Zabbix agent 2 and Smartmontools 7.1.

    Zabbix configuration

    No specific Zabbix configuration is required.

    Macros used

    This macro is used in overrides of attribute discovery for filtering IDs. It can be overridden on the host or linked template level.

    This macro is used in overrides of attribute discovery for filtering IDs. It can be overridden on the host or linked template level.

    This macro is used for trigger expression. It can be overridden on the host or linked template level.

    This macro is used for trigger expression. It can be overridden on the host or linked template level.

    Template links

    There are no template links in this template.

    Discovery rules

    Discovery SMART disks.

    Name Description Expression Severity Dependencies and additional info
    SMART [<#NAME>]: Disk has been replaced (new serial number received) ].last()>=»false» HIGH
    SMART [<#NAME>]: Average disk temperature is too high (over <$SMART.TEMPERATURE.MAX.WARN>°C for 5m) ].avg(5m)>> AVERAGE
    SMART [<#NAME>]: NVMe disk percentage using is over 90% of estimated endurance ZABBIX_PASSIVE smart.disk.discovery

    Overrides:

    Discovery SMART Vendor Specific Attributes of disks.

    ZABBIX_PASSIVE smart.attribute.discovery

    Overrides:

    Items collected

    Group Name Description Type Key and additional info
    Zabbix_raw_items SMART: Get attributes DEPENDENT smart.disk.model[<#NAME>]

    Preprocessing:

    DEPENDENT smart.disk.sn[<#NAME>]

    Preprocessing:

    The disk is passed the SMART self-test or not.

    DEPENDENT smart.disk.test[<#NAME>]

    Preprocessing:

    Current drive temperature.

    DEPENDENT smart.disk.temperature[<#NAME>]

    Preprocessing:

    Count of hours in power-on state. The raw value of this attribute shows total count of hours (or minutes, or seconds, depending on manufacturer) in power-on state. «By default, the total expected lifetime of a hard disk in perfect condition is defined as 5 years (running every day and night on all days). This is equal to 1825 days in 24/7 mode or 43800 hours.» On some pre-2005 drives, this raw value may advance erratically and/or «wrap around» (reset to zero periodically). https://en.wikipedia.org/wiki/S.M.A.R.T.#Known_ATA_S.M.A.R.T._attributes

    DEPENDENT smart.disk.hours[<#NAME>]

    Preprocessing:

    Contains a vendor specific estimate of the percentage of NVM subsystem life used based on the actual usage and the manufacturer’s prediction of NVM life. A value of 100 indicates that the estimated endurance of the NVM in the NVM subsystem has been consumed, but may not indicate an NVM subsystem failure. The value is allowed to exceed 100. Percentages greater than 254 shall be represented as 255. This value shall be updated once per power-on hour (when the controller is not in a sleep state).

    DEPENDENT smart.disk.percentage_used[<#NAME>]

    Preprocessing:

    This field indicates critical warnings for the state of the controller.

    DEPENDENT smart.disk.critical_warning[<#NAME>]

    Preprocessing:

    Contains the number of occurrences where the controller detected an unrecovered data integrity error. Errors such as uncorrectable ECC, CRC checksum failure, or LBA tag mismatch are included in this field.

    DEPENDENT smart.disk.media_errors[<#NAME>]

    Preprocessing:

    DEPENDENT smart.disk.error[<#NAME>,<#ID>]

    Preprocessing:

    DEPENDENT smart.disk.attr.raw[<#NAME>,<#ID>]

    Preprocessing:

    Triggers

    Device serial number has changed. Ack to close.

    Depends on:

    — SMART [<#NAME>]: Average disk temperature is critical (over <$SMART.TEMPERATURE.MAX.CRIT>°C for 5m)

    The value should be greater than THRESH.

    Name Description Expression Severity Dependencies and additional info
    SMART [<#NAME>]: Disk has been replaced (new serial number received) last(/SMART by Zabbix agent 2/smart.disk.sn[<#NAME>],#1)<>last(/SMART by Zabbix agent 2/smart.disk.sn[<#NAME>],#2) and length(last(/SMART by Zabbix agent 2/smart.disk.sn[<#NAME>]))>0 INFO last(/SMART by Zabbix agent 2/smart.disk.test[<#NAME>])=»false» HIGH
    SMART [<#NAME>]: Average disk temperature is too high (over <$SMART.TEMPERATURE.MAX.WARN>°C for 5m) avg(/SMART by Zabbix agent 2/smart.disk.temperature[<#NAME>],5m)> AVERAGE
    SMART [<#NAME>]: NVMe disk percentage using is over 90% of estimated endurance last(/SMART by Zabbix agent 2/smart.disk.percentage_used[<#NAME>])>90 AVERAGE
    SMART [<#NAME>]: Attribute <#ID> <#ATTRNAME>is failed last(/SMART by Zabbix agent 2/smart.disk.error[<#NAME>,<#ID>]) WARNING

    Feedback

    Please report any issues with the template at https://support.zabbix.com

    You can also provide a feedback, discuss the template or ask for help with it at ZABBIX forums.

    References

    Also available for: 5.4

    Template Module SMART by Zabbix agent 2

    Overview

    For Zabbix version: 5.0 and higher
    The template for monitoring S.M.A.R.T. attributes of physical disk that works without any external scripts.
    It collects metrics by Zabbix agent 2 version 5.0 and later with Smartmontools version 7.1 and later.
    Disk discovery LLD rule finds all HDD, SSD, NVMe disks with S.M.A.R.T. enabled. Attribute discovery LLD rule finds all Vendor Specific Attributes
    for each disk. If you want to skip some attributes, please set regular expressions with disk names in <$SMART.DISK.NAME.MATCHES>
    and with attribute IDs in <$SMART.ATTRIBUTE.ID.MATCHES>macros on the host level.

    This template was tested on:

    Setup

    Install the Zabbix agent 2 and Smartmontools 7.1.

    Zabbix configuration

    No specific Zabbix configuration is required.

    Macros used

    This macro is used in overrides of attribute discovery for filtering IDs. It can be overridden on the host or linked template level.

    This macro is used in overrides of attribute discovery for filtering IDs. It can be overridden on the host or linked template level.

    This macro is used for trigger expression. It can be overridden on the host or linked template level.

    This macro is used for trigger expression. It can be overridden on the host or linked template level.

    Template links

    There are no template links in this template.

    Discovery rules

    Discovery SMART disks.

    ZABBIX_PASSIVE smart.disk.discovery

    Overrides:

    Discovery SMART Vendor Specific Attributes of disks.

    ZABBIX_PASSIVE smart.attribute.discovery

    Overrides:

    Items collected

    Group Name Description Type Key and additional info
    Zabbix_raw_items SMART: Get attributes DEPENDENT smart.disk.model[<#NAME>]

    Preprocessing:

    DEPENDENT smart.disk.sn[<#NAME>]

    Preprocessing:

    The disk is passed the SMART self-test or not.

    DEPENDENT smart.disk.test[<#NAME>]

    Preprocessing:

    Current drive temperature.

    DEPENDENT smart.disk.temperature[<#NAME>]

    Preprocessing:

    Count of hours in power-on state. The raw value of this attribute shows total count of hours (or minutes, or seconds, depending on manufacturer) in power-on state. «By default, the total expected lifetime of a hard disk in perfect condition is defined as 5 years (running every day and night on all days). This is equal to 1825 days in 24/7 mode or 43800 hours.» On some pre-2005 drives, this raw value may advance erratically and/or «wrap around» (reset to zero periodically). https://en.wikipedia.org/wiki/S.M.A.R.T.#Known_ATA_S.M.A.R.T._attributes

    DEPENDENT smart.disk.hours[<#NAME>]

    Preprocessing:

    Contains a vendor specific estimate of the percentage of NVM subsystem life used based on the actual usage and the manufacturer’s prediction of NVM life. A value of 100 indicates that the estimated endurance of the NVM in the NVM subsystem has been consumed, but may not indicate an NVM subsystem failure. The value is allowed to exceed 100. Percentages greater than 254 shall be represented as 255. This value shall be updated once per power-on hour (when the controller is not in a sleep state).

    DEPENDENT smart.disk.percentage_used[<#NAME>]

    Preprocessing:

    This field indicates critical warnings for the state of the controller.

    DEPENDENT smart.disk.critical_warning[<#NAME>]

    Preprocessing:

    Contains the number of occurrences where the controller detected an unrecovered data integrity error. Errors such as uncorrectable ECC, CRC checksum failure, or LBA tag mismatch are included in this field.

    DEPENDENT smart.disk.media_errors[<#NAME>]

    Preprocessing:

    DEPENDENT smart.disk.error[<#NAME>,<#ID>]

    Preprocessing:

    DEPENDENT smart.disk.attr.raw[<#NAME>,<#ID>]

    Preprocessing:

    Triggers

    Device serial number has changed. Ack to close.

    Depends on:

    — SMART [<#NAME>]: Average disk temperature is critical (over <$SMART.TEMPERATURE.MAX.CRIT>°C for 5m)

    The value should be greater than THRESH.

    Feedback

    Please report any issues with the template at https://support.zabbix.com

    You can also provide a feedback, discuss the template or ask for help with it at ZABBIX forums.

    Источник

    Adblock
    detector

    Name Description Expression Severity Dependencies and additional info
    SMART [<#NAME>]: Disk has been replaced (new serial number received) ].last()>=»false» HIGH
    SMART [<#NAME>]: Average disk temperature is too high (over <$SMART.TEMPERATURE.MAX.WARN>°C for 5m) ].avg(5m)>> AVERAGE
    SMART [<#NAME>]: NVMe disk percentage using is over 90% of estimated endurance

    Мониторинг Microsoft Windows на базе Zabbix

    03.09.2019 Update

    Сегодня мы расскажем о том, как мы ведем мониторинг Windows систем (в скором времени планируем такой же обзор про Linux и как обычно с доступным шаблоном).

    Наш путь начался, как часто бывает, со штатного шаблона Zabbix «Template OS Windows Active» для мониторинга Windows-клиентов (рабочие станции и сервера), но ровно через неделю активного использования поняли, в нем много чего не хватает.

    Так мы и начали его кардинальную переделку, часть оставили и добавили много чего нового.

    Общая концепция

    1. Отдельные настройки шаблона в файле os_windows_active.conf

    2. Отдельный скрипт PowerShell — os_windows_active.ps1 для работы шаблона, при этом скрипт должен быть универсальным и работать на большинстве операционных систем с минимумом внешних зависимостей.

    3. Шаблон должен быть не зависимым от языка операционной системы, поэтому лучше всего снимать данные со счётчиков используя либо WMI, либо скрипт + zabbix trapper.

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

    Основные возможности

    • логических дисков;
    • физических дисков;
    • сетевых адаптеров;
    • системных сервисов.

    Triggers

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

    Physical Memory
    Physical disk
    Logical disk
    Network
    • Смена MAC-адреса сетевого адаптера (для виртуальных машин очень актуально, если не поставили статический MAC-адрес);
    • Отключение Link-а сетевого адаптера;
    • Отброшенные пакеты на сетевом адаптере.
    Operation system

    Инвентаризация

    Так как клиенты имеют разные компьютеры, нам требуется получать краткую инвентаризацию по ним, поэтому мы добавили в шаблон сбор данных о компьютере, и этими данными заполняем стандартные поля Zabbix Inventory:

    • OS
    • tag
    • Chassis
    • Desktop
    • Model
    • HW architecture
    • Vendor
    • Host networks

    Графики

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

    Где скачать

    Данный шаблон и скрипт вы можете бесплатно скачать с GitHub, а также в Zabbix Share.

    Наши шаблоны мы продолжим выкладываем в открытый доступ в наш репозитарий Zabbix.

    Системное администрирование серверов и DevOps

    Источник

    Zabbix 2.2: Мониторинг температуры процессора Windows машины

    При первом знакомстве с zabbix, меня переполняли эмоции и фантазии о мониторинге всего на свете. Первой была идея предотвращения физических неисправностей путем отслеживания основных показателей железа, например температуру или напряжение, поскольку мне видится весьма логичным и экономически выгодным, поменять термопасту или начать подбирать замену уставшей технике до того как пользователь сообщит о её преждевременной кончине или страшных тормозах.
    Система мониторинга Zabbix действительно очень мощная и гибкая, но, к сожалению, далеко не все аспекты для отслеживания доступны из стандартных коробочных шаблонов. Таким образом, моя фантазия с треском разбилась об стену отсутствия штатных инструментов мониторинга температур в Windows.

    Процесс поиска в интернете поставил меня перед фактом, что вытащить температуры железа без сторонних средств нельзя. При поиске этих самых средств, я столкнулся с популярной утилитой SpeedFan, которая умеет собирать данные о температуре устройств, скорости вентиляторов, напряжений. Но получить от неё готовые к обработке данные без установки еще одной утилиты нет возможности. Плюс ко всему они не open source и требует активации компонента SNMP протокола. Вывод: попробовать на windows сервере без IMPI можно, но как вариант массового распространения в сети – не годен. Дальнейший поиск навел на программы hwmonitor и aida64 — монстры, крупногабаритные и платные.

    OpenHardwareMonitor

    Уже почти отчаявшись, зацепился за короткое сообщение на англоязычном форуме zabbix. Рекомендовали небольшую open source утилиту OpenHardwareMonitor — она имеет графический интерфейс и умеет считывать температуру устройств с датчиков. И самое главное её автор, по просьбе трудящихся написал консольную версию(последняя версия 28.10.2012), выводящую информацию в готовой для обработки форме.

    Консольная версия состоит из двух файлов, exe исполняемого файла и dll библиотеки.

    • OpenHardwareMonitorReport.exe
    • OpenHardwareMonitorLib.dll

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

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

    Для начала на сервер для узла сети добавим новый элемент данных:

    Назовем его: CPU Temperature. (Температура процессора)

    Тип: Zabbix агент
    Ключ: Temperature.CPU[0]. (Название не принципиально, главное чтобы с конфигом агента совпадал).
    Интерфейс узла сети: ipdns. (Узел, который будем мониторить).
    Тип информации: Числовой (целое положительное)
    Тип данных: Десятичный

    Интервал обновлений (в сек): 3600. (На скриншоте стоит 10 сек, для временной проверки).

    На сервере закончили, переходим к конфигурации клиента.

    Настройка клиента

    Нестандартные данные мы будем отправлять через Zabbix agent в конфиге(zabbix_agentd.conf) которого предусмотрены так называемые пользовательские параметры – UserParameters вида:

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

    В конец конфиг файла агента добавляем:

    CPUTemperature.bat — написанный мной batch файл который вытаскивает из OpenHardwareMonitor, среднюю температуру по процессору. В программе эта строка называется CPU Package.

    В C:OpenHardwareMonitor лежат 3 файла:

    • OpenHardwareMonitorReport.exe
    • OpenHardwareMonitorLib.dll
    • CPUTemperature.bat

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

    Обновлено: Новый код от уважаемого cawaleb

    Для процессоров intel так же справедлив вариант с find вместо findstr и регулярным выражением:

    Скрипт возвращает значение в виде десятичного числа.

    После этого изменения конфиг файла и размещения всех файлов и скриптов, перезагружаем службу zabbix agent.

    Начинаем получать значения на сервер:

    Заключение

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

    Источник

    Zabbix: LLD-мониторинг железа под Windows на PowerShell

    Пришло время и мне собрать свой велосипед для мониторинга физического состояния Windows-железок. Готового решения или хоть более или менее работающего найти не удавалось с момента моего знакомства с Zabbix, а это более 3 лет. А тем более, чтобы оно было… элегантно что ли. Лично мне даже в таких вещах хочется видеть стройность и максимальную функциональность. Именно поэтому далее рассматривается только LLD и PowerShell. Ну и конечно же только бесплатное ПО.

    Итак, мониторинг чего будет производиться:

    • S.M.A.R.T. дисков (информация, общее состояние и отдельные показатели)
    • Температуры, напряжение, обороты кулеров (на ваш выбор)

    А выглядеть это все будет примерно так:

    Суммарно понадобятся:

    Шаблон

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

    Шаблон создан в Zabbix версии 3.2, возможно, будет работать и в более ранних версиях. Ключи стандартны и имеют вид ZScript[имя_скрипта, параметр1. параметрN]. Параметры передаются непосредственно в сам скрипт.

    Надеюсь, шаблон получился максимально простым и понятным.

    Скрипты PS

    Ниже приведены необходимые скрипты. Внутри уже находятся и обнаружение, и запрос отдельных элементов. Работа проверена на Windows от XP SP3 до 2016. Само собой, решение с Execution Policy остается за вами.

    Обнаруживаются только диски с задействованным СМАРТом. Параметры запрашиваются из столбца «RAW_VALUE». Хотите мониторить другой параметр? Просто укажите его номер. По умолчанию скобки и их содержимое отбрасываются. Если нужный вам параметр диск не отдает, то возвращается пустое поле.

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

    Также зарезервировано одно имя датчика — Vbat. Это напряжение аккумулятора БИОС. Его значение вынесено в отдельный элемент для триггера (срабатывает если менее 2,9V).

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

    Теоретически, можно обнаруживать и другие показатели (нагрузки, частоты. ). Используйте для этого соответствующий второй параметр в ключе. К примеру: ZScript[hard,discovery,load].

    Подготовка Zabbix-агента

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

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

    smartmontools

    Для мониторинга состояния дисков используется smartmontools (версия 6.5 на момент написания статьи). При установке ПО по умолчанию ставится утилита smartctl-nc — именно она используется в скрипте для облегчения жизни вашего сервера. Также потребуется прописать пусть к папке bin в переменных средах.

    Путь просто добавляем в конец переменной Path через точку с запятой. По умолчанию — C:Program Filessmartmontoolsbin

    OpenHardwareMonitor

    Для датчиков же используется OHM. Софт бесплатный с открытым кодом. Установка тривиальна, но для полноценной работы необходимо запускать программу в качестве службы. Для подобных вещей есть NSSM, я бы все же советовал качать последнюю сборку. А здесь можно посмотреть синтаксис.
    Обещанный выбор датчиков обеспечивается за счет того, что названия датчиков можно изменять! Изменяете имена на удобочитаемые (они будут использованы в именах элементов), а ненужные датчики комментируете #.

    Не забывайте перезапустить программу/службу для применения переименования.

    Источник

    Мониторим всё: расширение агентов Windows и Linux при помощи скриптов

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

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

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

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

    Нам оставили несколько стандартных интерфейсов для того, чтобы расширить возможности Заббикса по мониторингу серверов настолько, насколько позволит нам наша фантазия и наличие свободного времени на написание скриптов. Интерфейсы эти UserParameter и zabbix_sender. О первом и пойдет речь, а в качестве примеров будет показано как можно собирать состояние S.M.A.R.T жестких дисков и контролировать, когда кто-то удаляет или устанавливает новые программы на своей Windows-машине.

    Немного матчасти

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

    • Добавить в конце конфигурационного файла zabbix_agentd.conf строчку вида

    где:

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

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

    Итак, ключ здесь system.test, а выполняем команду who | wc -l, которая возвращает нам количество открытых сессий в системе. Добавляем (или раскомментируем данную строчку если уже есть), идем дальше.

    • В Веб-консоли Zabbix создать новый элемент данных с ключом, который мы использовали, если брать пример выше, то это system.test.

    Для этого нажимаем «Создать элемент данных»

    и затем выставляем ключ такой же, как указали в конфиг-файле, а тип Zabbix агент:

    • Перезагрузить Zabbix агента, чтобы изменения в конфиг-файле вступили в силу

    Наблюдаем результат в последних данных:

    Мониторинг SMART через UserParameter

    Пример выше имеет мало практического применения, учитывая, что уже итак существует стандартный ключ system.users.num, который делает ровно тоже самое.

    Так что теперь рассмотрим пример, который уже больше будет походить на реалистичный.

    Если нам интересно мониторить момент, когда пора планово менять жесткие диски, то есть два варианта:

    1. Если диски за аппаратным RAID-контроллером, то, как правило, сами диски операционная система «не видит». Поэтому ищем способы как вытащить информацию о состоянии жестких дисков через утилиты или SNMP-сабагента, которые нам любезно предоставил(или не предоставил) производитель RAID-контроллера. Для каждой отдельной серии контроллеров свой путь до этой информации.
    2. Если речь идет о просто рабочих станциях, серверах с софтовом RAID и т.д., то тогда к дискам есть доступ из операционной системы, и мы вольны использовать различные утилиты для чтения их статуса. В случае Zabbix нам подходит утилита smartctl, из пакета SMARTMONTOOLS.

    В Debian установка SMARTMONTOOLS сводится к:

    и утилита готова к использованию.

    Для каждого диска, который есть в системе сначала проверим, что SMART включен:

    если вдруг SMART поддерживается диском, но выключен, то активируем его:

    Теперь мы можем проверять статус SMART командой:

    Именно эту команду мы и запишем в наш zabbix_agentd.conf:

    где uHDD.health — ключ.

    Мониторинг SMART через Flexible UserParameter

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

    В веб-интерфейсе Zabbix в ключе мы будем подставлять параметры в квадратные скобки вместо *. Например, для одного элемента данных мы напишем sda, а для другого sdb. В команде этот параметр найдет отражение там, где стоит переменная $1.

    Создадим для второго диска элемент данных:

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

    Мониторинг SMART через Flexible UserParameter c Low-level Discovery

    Все получилось. Но тут возникает резонный вопрос, как быть если дисков не два, а двадцать два. И тут нам пригодится замечательная возможность низкоуровнего обнаружения (LLD), про которую мы уже говорили.

    Низкоуровневое обнаружение позволяет системе мониторинга обнаруживать какое количество однотипных элементов присутствует на узле сети и динамически по шаблону создавать необходимые элементы данных, триггеры и графики для этих элементов. «Из коробки» системе доступна возможность находить файловые системы, сетевые интерфейсы и SNMP OID’ы. Однако, и здесь разработчики оставили возможность дополнить стандартные возможности, нужно просто передать в систему информацию о том, какие элементы обнаружены в формате JSON. Этим и воспользуемся.

    Создадим маленький скрипт на perl, smartctl-disks-discovery.pl. Он будет находить все диски в системе и выводить эту информацию в JSON, передавая также информацию, включен ли у диска SMART или нет, а также попытается сам включить SMART, если он выключен:

    При запуске скрипт выдает:

    Теперь, для того чтобы скрипт автоматически запускался Zabbix’ом, просто добавим еще один UserParameter в zabbix_agentd.conf:

    Покончив с настройкой конфига, переходим в веб-интерфейс, где создаем новое правило обнаружения для smartctl:

    Обратите внимание на ключ и на фильтр, (<#SMART_ENABLED>=1) благодаря последнему будут добавляться только те обнаруженные диски, которые поддерживают SMART. Теперь мы можем переписать два наших элемента данных для дисков sda и sdb в один прототип элементов данных, просто заменив имя диска на макрос <#DISKNAME>:

    Последнее, перед тем, как Zabbix сможет запускать команды, которые мы прописали в zabbix_agentd.conf из-под root и мониторить SMART, нужно добавить разрешения для его пользователя запускать эту команду без ввода пароля, для этого добавим в /etc/sudoers строчку:

    Готовый шаблон для мониторинга SMART с остальными элементами данных, триггерами прикладываю, так же как и настроенный под него конфиг.

    Контроль за установкой новых программ на Windows

    Zabbix агент, установленный на Windows, точно также может быть расширен через UserParameter, только команды будут уже другие. Хотя, например, smartctl — кроссплатформенная утилита, и точно также можно ее использовать для контроля за жесткими дисками в Windows.

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

    Для его интеграции с Zabbix добавим UserParameter в конфиг-файл:

    Добавим элемент данных в шаблон для Windows:

    Добавим триггер:

    и действие, которое будет отправлять e-mail уведомление:

    Весь процесс мониторинга выглядит так: каждый час запускается скрипт Zabbix агентом, который сравнивает два списка программ: текущий и предыдущий. Затем скрипт выписывает все изменения в отдельный файл. Если же изменений нет, то в файл пишется 0x0

    Содержимое файла уходит на Zabbix сервер, где поднимается триггер в случае, если значение элемента данных uDiffProgramms отлично от 0x0. Затем отдельное действие отправляет по почте уведомление со списком того, что было установлено или удалено на данном компьютере:

    В итоге

    UserParameter — отличная и простая возможность расширить функционал системы самостоятельно. Стоит упомянуть и альтернативы: zabbix_sender, который, например, подойдет для тех случаев, когда нужно отправлять данные в Zabbix не по расписанию, (как это делает UserParameter), а по какому-то событию; и system.run[], который похож на UserParameter, но удобнее тем, что не нужно вносить изменения во все конфиги агентов, достаточно просто добавить этот элемент данных в шаблон. Более того, в следующем крупном релизе Zabbix 2.2 нас ожидает еще один новый способ расширить возможности агента- это подключаемые модули. Ждем с нетерпением!

    Вот так, считайте, что если вы можете узнать что-то о системе скриптом или командой, значит, вы всегда можете передать это в Zabbix.

    Источник

    Наткнулся на статью сис.админа Zerox на счёт мониторинга S.M.A.R.T. диска средствами Zabbix. Но что-то у меня никак не получалось по его записи. Поэтому я опишу свой опыт настройки это необходимой вещи.

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

    Будем разворачивать решение с Github. По сути, эта запись просто перевод с небольшими пояснениями. :)

    Все необходимые компоненты я сложил в архив, который можно скачать с Я.Диска (если ссылка сломалась пишите к комменты, стучите на почту, смотрите на github).

    Возможности решения

    Данное решает такие задачи:

    1. Мониторинг состояние S.M.A.R.T диска (почти всех показателей);
    2. Мониторинг оставшегося ресурса SSD;
    3. Мониторинг температуры;
    4. Мониторинг производителя, партийного номера, серийного номера (Zabbix вас оповестит, если диск был заменен), что позволяет настроить инвентаризацию;
    5. Мониторинг количество неисправных секторов на диске;

    Подготовка Zabbix-Server

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

    Подготовка Zabbix-Agent Windows

    Установка smartmontools

    Ничего необычного, просто устанавливаем smartmontools, как обычную программу. Единственный момент, не рекомендую менять путь, иначе его надо будет менять в конфиге агента и в скрипте.

    Конфигурирование агента

    Создаем папку scripts и помещаем туда наш скрипт smartctl-disks-discovery.ps1

    Открываем zabbix_agentd.conf и правим

    #Увеличиваем TimeOut до 30 секунд. Как показывает практика. Если этого будет мало, то потом увеличим.  

    TimeOut = 20

    И добавляем пользовательскую проверку

    UserParameter=uHDD.get[*], for /F «tokens=* usebackq» %a in (`«»%ProgramFiles%smartmontoolsbinsmartctl.exe» -i -H -A -l error -l background $1″`) do @echo %a

    UserParameter=uHDD.discovery[*],powershell NoProfile ExecutionPolicy Bypass File «%ProgramFiles%Zabbix Agentscriptssmartctl-disks-discovery.ps1»

    UserParameter=uSSD.get[*], for /F «tokens=* usebackq» %a in (`«»%ProgramFiles%smartmontoolsbinsmartctl.exe» -i -H -A -l error -l background $1″`) do @echo %a

    UserParameter=uSSD.discovery[*],powershell NoProfile ExecutionPolicy Bypass File «%ProgramFiles%Zabbix Agentscriptssmartctl-disks-discovery.ps1»

    Осталось перезапустить агента и привязать наш хост к шаблону.

    Примерно через час прилетят данные. (Для отладки можно поменять время обнаружения, я обычно ставлю 10 минут, меняем 1h на 10m. Главное, не забыть обратно вернуть).

    Результат

    Таким образом мы настроили мониторинг SSD и HDD дисков. Данное решение отлично показывает себя в проде. По критически важным дискам можно строить вот такие информативные графики. Мне нравится :)

    ТраблШутинг

    У меня такая проблема возникала, когда забыл ставить smartmontools

    Invalid discovery rule value: cannot parse as a valid JSON object: invalid JSON object value starting character at: ????? ???? ?? ??? ?????? ? ?????? NULL.

    C:Program FilesZabbix Agentscriptssmartctldisksdiscovery.ps1:34 ????:73

    + $disk_name = $smart_scanresul

    Просмотры: 4 005


    1

    2

    Доброго времени суток!

    Развернули Zabbix, и почти сразу столкнулись с довольно весомой проблемой.
    С машин пользователей в логи (и на почту) валится целая куча мусора, которая не является важной или существенной. К примеру: «Problem started at 16:20:06 on 2020.08.04 Problem name: «sppsvc» (Защита программного обеспечения) is not running (startup type automatic delayed)»

    Понятно, что это все можно настроить, вот только как раз с этим проблема и возникла.

    За сбор информации сервисов винды отвечает шаблон Template OS Windows by Zabbix agent. Пытаюсь отсечь неугодные мне службы следующим образом:

    Макрос: {$SERVICE.NAME.MATCHES}
    Значение: ^.*$

    Макрос:{$SERVICE.NAME.NOT_MATCHES}
    Значение: ^RemoteRegistry|MMCSS|gupdate|SysmonLog|clr_optimization_v.+|clr_optimization_v.+|sppsvc|gpsvc|Pml Driver HPZ12|Net Driver HPZ12|MapsBroker|IntelAudioService|Intel(R) TPM Provisioning Service|dbupdate|DoSvc$ (те самые неважные службы)

    Макрос: {$SERVICE.STARTUPNAME.MATCHES}
    Значение:^automatic$

    Макрос: {$SERVICE.STARTUPNAME.NOT_MATCHES}
    Значение: ^manual|disabled$

    Но как раз это и не срабатывает. Мусор как валился, так и валится.

    Подскажите, что сделано не так? В какую сторону еще копать?

    Заранее спасибо.

    Like this post? Please share to your friends:
  • Tema windows 10 скачать бесплатно 2021
  • Telegram desktop windows 10 скачать официальный сайт
  • Telegram desktop windows 10 не запускается
  • Telegram desktop windows 10 x64 скачать
  • Telegram desktop for windows 7 32 bit