Моніторинг файлів Windows з Nagios

У мене є перевірка NAGIOS, яка контролює віртуальну пам'ять на машині Windows, ця перевірка повертає всю використовувану віртуальну пам'ять (фізичний + максимальний розмір файлу сторінки).

Це не те, що я хочу, я намагався шукати деякі перевірки, які тільки контролювати використання файлу pagefile на машині Windows, але я не знайшов нічого цікавого.

Чи відомо вам про будь-яку SNMP-перевірку, якщо монітор сторінки використовується чи не вікнами?

3
Відзначте щось хлопцям, які дали великі відповіді. Відповідь на ваше запитання. Якщо ваш все ще застряг, нагороджуйте очок одному з них за їхню важку роботу і відкрийте нове питання. Кожен тут відповідає за бали ..... і отримує подарунок :) Бережіть
додано Автор Eldloppa, джерело

5 Відповіді

WMI

Доступ до параметрів WMI можна отримати безпосередньо з клієнтом WMI, встановленим на машині Linux:

Compile and install wmi-client package manually or use compiled packages from www.orvant.com it seem to work with newer versions of Ubuntu as well (14.04 64bit).

Ось приклад використання wmic з командного рядка:

wmic -Uuser%pass //192.168.0.2 "SELECT FileSize FROM Win32_PageFile WHERE Path=c:\"

Тепер створіть Nagios Plugin. Приклади використання wmic тут . Тут керівництво, як створити свій власний додаток Nagios , змінити його для роботи з wmic. Ви отримаєте щось подібне:

if [ "$1" = "-w" ] && [ "$2" -gt "0" ] && \
[ "$3" = "-c" ] && [ "$4" -gt "0" ] && [ "$5" = "-h" ] && [ "$6" != "" ] && [ "$7" = "-u" ] && [ "$8" != "" ] && [ "$9" = "-p" ]; then

memPfSize=`wmic -U$8%$10 //$6 "SELECT FileSize FROM Win32_PageFile WHERE Path=c:\" | grep AllocatedBaseSize | awk -F'=' '{print $2}'`

if [ "$memPfSize" -ge "$4" ]; then
  echo "Memory: CRITICAL Pagefile: $memPfSize MB - RES: $memPfSize= MB used!|VIRT=$(($memPfSize*1024*1024));;;; RES=$(($memPfSize=*1024*1024));;;;"
$(exit 2)
elif [ "$memPfSize" -ge "$2" ]; then
  echo "Memory: WARNING Pagefile: $memPfSize MB - RES: $memPfSize= MB used!|VIRT=$(($memPfSize*1024*1024));;;; RES=$(($memPfSize=*1024*1024));;;;"
$(exit 1)
else
  echo "Memory: OK Pagefile: $memPfSize MB - RES: $memPfSize= MB used!|VIRT=$(($memPfSize*1024*1024));;;; RES=$(($memPfSize=*1024*1024));;;;"
$(exit 0)
fi
else
  echo "check_memPfSize v1.0"
  echo "check_memPfSize -w Warning -c Critical -h Host -u Win-User -p Password"
  echo "example of usage:"
  echo "check_memPfSize -w 1024 -c 2048 -h 192.168.0.2 -u Administrator -p adminpassword"
exit
fi

Ви можете отримати доступ до WMI через Python з Linux .

SNMP

Якщо ви віддаєте перевагу SNMP, вам потрібно встановити шлюз WMI-to-SNMP, наприклад Інформатор SNMP - Додатково на вашій машині Windows, щоб мати змогу збирати системну інформацію, включаючи пам'ять і підкачку. По суті, цей інструмент надає SNMP MIB для приладів WMI на системному рівні, які в свою чергу дозволяє запитувати дані WMI будь-якою станцією управління SNMP. Він підтримується на серверах Windows XP/Vista/2000/2003 і 2008 і дозволяє отримати доступ до даних з усіх (понад 2000) лічильників.

NSClient

Використовуйте NSClient ++ у Windows, щоб відстежувати розмір pagefile.sys . Вам потрібно встановити NSClient ++ як послугу. За допомогою цього додатка для машин Windows можна також контролювати всі інші параметри. Наприклад, ви можете контролювати вільну пам'ять. У конфігураційному файлі NSC.ini на машині Windows немає необхідності в адаптації мерів.

Check the size of the pagefile.sys and make sure it stays above 1 gigabyte. Sample Command:

CheckFileSize ShowAll MinWarn=1G  MinCrit=512M File=c:/pagefile.sys

Конфігурація Nagios:

define command {
  command_name <>
  command_line check_nrpe -H $HOSTADDRESS$ -p 5666 -c CheckFileSize -a ShowAll MinWarn=$ARG2$  MinCrit=$ARG1$ File=c:/pagefile.sys
}

З командного рядка (за допомогою NRPE):

check_nrpe -H IP -p 5666 -c CheckFileSize -a ShowAll MinWarn=1G  MinCrit=512M File=c:/pagefile.sys

Або за допомогою плагіна check_paging_file на сторінці хоста з NSClient ++.

5
додано
Так. Тепер вам потрібно скомпілювати вручну .
додано Автор BBK, джерело
"sudo aptitude install wmi-client" передбачає Ubuntu, але packages.ubuntu.com/wmi-client не відображається у списку ...?
додано Автор Keith, джерело

Так, на жаль, я думаю, що ви збираєтеся встановити nsclient ++.

Моя перша думка полягала в тому, щоб просто написати сценарій vbscript або powershell, щоб перевірити розмір файлу сторінки, але мої перші спроби повернули результати null, тому що Windows керує моїм файлом. Мабуть, це звичайна річ.

Проте цей плагін працює. Це також набагато більш вичерпне, ніж швидкий писар, який я спробував. Можливо, це вирішить вашу проблему.

4
додано

Ви не вказуєте, який плагін використовуєте, але немає жодних причин, через які ви не можете використовувати SNMP для перевірки використання "Віртуальної пам'яті". Наприклад, коли ви йдете цим деревом ( 1.3.6.1.2.1.25.2 ) на сервер Windows 2008 із протоколом SNMP, ви побачите вихід, який містить щось подібне:

HOST-RESOURCES-MIB::hrStorageDescr.4 = STRING: Virtual Memory
HOST-RESOURCES-MIB::hrStorageDescr.5 = STRING: Physical Memory

HOST-RESOURCES-MIB::hrStorageSize.4 = INTEGER: 449485
HOST-RESOURCES-MIB::hrStorageSize.5 = INTEGER: 392141

HOST-RESOURCES-MIB::hrStorageUsed.4 = INTEGER: 85263
HOST-RESOURCES-MIB::hrStorageUsed.5 = INTEGER: 104233

Схоже, що плагін, який ви використовуєте, поєднує як фізичну пам'ять , так і значення віртуальну пам'ять в одну перевірку?

Maybe you just need a different SNMP plugin. There's an entire Memory category on Nagios Exchange, including some that explicitly list Windows usage. Shop around.

Якщо ви не можете знайти плагін SNMP, який робить те, що ви хочете, є й інші параметри ...

Оскільки ви стверджуєте, що використання агента Nagios (nsclient ++) неможливе, кращим методом буде використання WMI. Корпорація Майкрософт реалізує лише мінімум підтримки SNMP, але ви можете перевірити буквально все про сервер Windows за допомогою WMI. .

There are lots of WMI checks available on Nagios Exchange (or Monitoring Exchange), like checkwmiplus, check_wmic, or (if you're dealing with many Windows boxes) perhaps nagios-wsc.

І тут деяка інформація про правильно налаштувати WMI для віддаленого доступу.

You might want to give this question a read; it seems that the numbers you get from SNMP might not be accurate in this case.

1
додано
Є плагіни WMI, які дозволяють перевіряти розміри файлів. Просто перевірте розмір файлу сторінки.
додано Автор Keith, джерело
Він не працює, hrStorageSize.4 = hrStorageSize.5 + в даний часрозподілений. Я думаю, що єдиний спосіб зробити це правильно - встановити nsclient ++.
додано Автор Mike, джерело

NSClient ++ 0.4.3 має вбудований check_pagefile, який можна використовувати для моніторингу використання файлів сторінок.

0
додано

Це добре для вас?

Команда:

define command{
    command_name    check_win_memusage
    command_line    $USER1$/check_nrpe -H $HOSTADDRESS$ -p 5666 -c checkMem -a MaxWarn=$ARG1$ MaxCrit=$ARG2$ ShowAll type=$ARG3$
    }

Послуга:

check_win_memusage!90%!95%!paged
0
додано
IT KPI iOS
IT KPI iOS
74 учасників

Чат обсуждения IOS. - Оффтоп, флуд, оскорбления и вбросы здесь не приняты. - За нарушение - предупреждение или mute на неделю. - За спам и рекламу - ban. Все чаты IT KPI: https://t.me/itkpi/602

ios_jobs_ua
ios_jobs_ua
27 учасників

Mobile Dev Jobs UA
Mobile Dev Jobs UA
20 учасників

Публикуем вакансии и запросы на поиск работы по направлению iOS, Android, Xamarin, RN и т.д.