Jak monitorujesz stan dysku lustrzanego w systemie Windows?

12

Mam lustrzany dysk dynamiczny na moim systemie Windows 2003 Server. Jak monitorujesz kondycję woluminu?

Czy istnieje sposób, aby serwer wysłał wiadomość e-mail, gdy wystąpi problem z woluminem? Czy istnieje sposób na uruchomienie przez serwer testów SMART?

EDYCJA: Nic nie mówi WTF jak zalogowanie się na serwerze klienta, uruchomienie DISKPART LIST VOLUME i zobaczenie tego.

Volume ###  Ltr  Label        Fs     Type        Size     Status     Info
----------  ---  -----------  -----  ----------  -------  ---------  --------
Volume 0     X   xDrive       NTFS   Mirror       233 GB  Failed Rd
Volume 1     C                NTFS   Simple        57 GB  Healthy    System
Volume 2     D                       DVD-ROM         0 B  Healthy
Volume 3     F                RAW    Partition    466 GB  Healthy
Volume 4     E   New Volume   NTFS   Partition    932 GB  Healthy
NitroxDM
źródło
Mówimy tutaj o lustrze oprogramowania, prawda? Jeśli tak, świetne pytanie.
Chris_K
@Chris_k Poprawnie. Ostatnim razem, gdy dysk uległ awarii, dowiedziałem się tylko przez przypadek. W systemie korporacyjnym jest to całkowicie niedopuszczalne. Mam system zapasowy. Ale nie o to chodzi w robieniu lustra.
NitroxDM,
Wydaje mi się, że przy takich informacjach jest dobry moment na przetestowanie tego skryptu. Windows na zwycięstwo!
NitroxDM,
Pracuję nad rozwiązaniem przy użyciu obu wymienionych tutaj odpowiedzi.
NitroxDM,

Odpowiedzi:

5

Jakiś czas temu miałem to samo pytanie. Pierwszą rzeczą, o której myślałem, było użycie WMI, ale z jakiegoś dziwnego powodu WMI nie ujawnia stanu zdrowia woluminu RAID przez żadną z normalnych klas Win32_ *.

W końcu natknąłem się na skrypt w tym artykule i wprowadziłem kilka modyfikacji, aby spełnić moje wymagania. Analizuje dane wyjściowe polecenia diskpart.exe „LIST VOLUME”. To może wydawać się trochę brudne i brzydkie, ale teraz jest to najlepsza opcja, jaką widziałem.

Skrypt pojawiający się na połączonej stronie jest gotowy do użycia z Nagios / NSClient ++ . Jeśli znasz trochę VBScript, łatwo to zmodyfikować, aby wysyłać wiadomości e-mail zamiast drukowania informacji o stanie.

Jeśli nie znasz VBScript, chętnie dam ci zmodyfikowaną wersję, która zrobi wszystko, co chcesz.

ThatGraemeGuy
źródło
VBScript nie tyle. C # z drugiej strony;) ​​Skrypt nie wygląda tak źle.
NitroxDM
Kolejny artykuł na ten temat i sposób obejścia tego problemu: eventlogblog.com/blog/2012/02/…
Lucky Luke
Te (skrypty @LuckyLuke i ThatGraemeGuy) są świetne, ale brakuje im obsługi języka. Oba moje serwery są w języku angielskim, więc dobrze. Ale moja maszyna do pobierania jest w języku francuskim. Byłem w stanie wymyślić (ze skryptu ThatGraemeGuy) RE0.Pattern = "Healthy|Sain" RE1.Pattern = "Mirror|RAID-5|Miroir", ale nie RE2i RE3to nie są „Failed | At risk” i „Rebuild”. Niestety jest to złe, ponieważ te, głównie te RE2, są ważne. Czy mógłbyś dostać te przetłumaczone na francuski, czy może w inny sposób, który nie polegałby na języku?
Mistrz DJon
1
Dobra uwaga - ale instalacja systemu Windows w każdym języku i obserwowanie ciągów byłoby bardzo czasochłonne. Na twoim miejscu zainstalowałbym francuski system Windows na maszynie wirtualnej i symulowałbym awarię RAID za pomocą dysków wirtualnych. Prawdopodobnie możesz gdzieś wyodrębnić ciągi z biblioteki DLL, ale prawdopodobnie zajęłoby to równie dużo czasu.
Lucky Luke
2
for /f "tokens=4,9 delims= " %a IN ('echo list volume ^| diskpart ^| find "SSD"') do echo %a %b

Zamień znajdź „SSD” na „mirror” (lub pasek ... cokolwiek) lub nazwę woluminu. (moje woluminy są nazywane SSD1 + SSD2)

Wstaw plik wsadowy z wyłączonym @echo i gotowe. :)

@echo off
for /f "tokens=4,9 delims= " %%a IN ('echo list volume ^| diskpart ^| find "SSD"') do echo %%a %%b

Powyżej linii potrzebna jest partia. =)

Notatki

  • Aby to działało, musisz mieć nazwę woluminu, w przeciwnym razie zmień tokeny natokens=8
Mindfart
źródło
0

Używam tego brzydkiego pliku wsadowego do monitorowania ponad stu serwerów, aby sprawdzić status kopii lustrzanej, a wynik jest piękny. Jest to wtyczka kliencka nsclient ++, która sprawdza pasywnie co cztery godziny, aby wysłać wynik do serwera nagios.

check_mirror.bat

@echo off
echo list volume | diskpart | find "Mirror" > H
for /f %%i in ('type H ^| find /c "Mirror"') do set /a M=%%i 
for /f %%i in ('type H ^| find "Mirror" ^| find /c "Health" ') do set /a H=%%i 
for /f %%i in ('type H ^| find /c "Risk"') do set /a risk=%%i 
@del H /q
rem echo M=%M%, H = %H% Risk=%risk%
if %risk% GTR 0 goto err
IF %M%.==0. goto nomirror
IF %M% EQU %H% goto mirrorok

:err
echo CRITICAL: Something Wrong.
exit /B 1

:mirrorok
echo OK: Mirror Health.
exit /B 0

:nomirror
echo OK: No Mirror Found.
exit /B 1
użytkownik191549
źródło
-1

podczas gdy wszystkie te odpowiedzi dadzą ci status, żadna z nich nie jest poprawną odpowiedzią.

w środowisku korporacyjnym powinieneś używać narzędzi do monitorowania serwerów i sieci klasy korporacyjnej. prawie wszystkie narzędzia monitorowania, z których korzystałem, automatycznie monitorują kondycję każdego obsługiwanego macierzy RAID, oprogramowania lub sprzętu. monitorują także inne rzeczy, o których powinieneś wiedzieć, takie jak temperatura, wolne miejsce na dysku itp. Czy naprawdę chcesz utworzyć niestandardowy skrypt dla każdej możliwej rzeczy, którą należy monitorować?

zrób sobie przysługę i pomiń wszystkie sznurki do butów i gumy do żucia i użyj odpowiedniego narzędzia.

długa szyja
źródło
Narzędzia takie jak co?
NitroxDM
1
Wiatry słoneczne, n-zdolne, co słychać, przyprawa działa, nawet menedżer wglądu HP
longneck
Nie rozumiem, jak ważna lub pomocna jest twoja odpowiedź, to tylko opinia. Istnieje o wiele bardziej wydajne narzędzia niż Solarwinds (n-stanie pochodzi z Solarwinds btw). Sytuacja również się zmieniła, a nalot na oprogramowanie nie jest już „sznurkiem”: smbitjournal.com/2016/12/the-software-raid-raid-inflection-point
Lucky Luke
Nie powiedziałem, że nalot na oprogramowanie jest sznurkiem. Powiedziałem, że opracowanie procesów sznurowania butów lub procedur monitorowania jest złym pomysłem. (A kiedy pisałem odpowiedź, SolarWinds jeszcze nie kupił n-stanie.)
longneck