Kontynuując kwestię kontroli statusu kontrolerów RAID. Warto wspomnieć o starszych rozwiązaniach stosowanych w serwerach np. DELL POWEREDGE 2850 kontroler MEGARAID, który poznamy po module (lsmod):
megaraid_mbox
Żeby zobaczyć jaki jego jest stan to skorzystamy z narzędzia megarc, do ściągniecia ze strony LSI:
http://www.lsi.com/search/pages/Results.aspx?k=megarc
Ściągamy plik i rozpakowujemy go, a następnie nadajemy plikom prawa do wykonania:
chmod +x megarc*
Do ocenienia statusu RAIDU jak i stanu dysków wystarcza nam te dwie komendy:
./megarc -dispCfg -a0
**********************************************************************
MEGARC MegaRAID Configuration Utility(LINUX)-1.11(12-07-2004)
By LSI Logic Corp.,USA
**********************************************************************
[Note: For SATA-2, 4 and 6 channel controllers, please specify
Ch=0 Id=0..15 for specifying physical drive(Ch=channel, Id=Target)]
Type ? as command line arg for help
Finding Devices On Each MegaRAID Adapter...
Scanning Ha 0, Chnl 1 Target 15
**********************************************************************
Existing Logical Drive Information
By LSI Logic Corp.,USA
**********************************************************************
[Note: For SATA-2, 4 and 6 channel controllers, please specify
Ch=0 Id=0..15 for specifying physical drive(Ch=channel, Id=Target)]
Logical Drive : 0( Adapter: 0 ): Status: OPTIMAL
---------------------------------------------------
SpanDepth :01 RaidLevel: 1 RdAhead : Adaptive Cache: DirectIo
StripSz :064KB Stripes : 2 WrPolicy: WriteBack
Logical Drive 0 : SpanLevel_0 Disks
Chnl Target StartBlock Blocks Physical Target Status
---- ------ ---------- ------ ----------------------
0 00 0x00000000 0x0887c000 ONLINE
0 01 0x00000000 0x0887c000 ONLINE
**********************************************************************
Existing Logical Drive Information
By LSI Logic Corp.,USA
**********************************************************************
[Note: For SATA-2, 4 and 6 channel controllers, please specify
Ch=0 Id=0..15 for specifying physical drive(Ch=channel, Id=Target)]
Logical Drive : 1( Adapter: 0 ): Status: OPTIMAL
---------------------------------------------------
SpanDepth :01 RaidLevel: 1 RdAhead : Adaptive Cache: DirectIo
StripSz :064KB Stripes : 2 WrPolicy: WriteBack
Logical Drive 1 : SpanLevel_0 Disks
Chnl Target StartBlock Blocks Physical Target Status
---- ------ ---------- ------ ----------------------
1 02 0x00000000 0x22ec0000 ONLINE
1 03 0x00000000 0x22ec0000 ONLINE
Oraz polecenie:
./megarc -AllAdpInfo
Wyciąga nam informacje, na temat fizycznych dysków w razie problemów z RAIDem (reszta informacji łatwo dostępna w GOOGLE).
Teraz, jak już wiemy jak stan RAID wygląda dodajemy nasza maszynę do NAGIOS`a.
Musimy pliki megarc i megarc.bin wrzucić do kalalogu pluginów nagiosa /usr/lib64/nagios/plugin (w przypadku 64 bitowych systemów). Następnie ze strony:
http://exchange.nagios.org/directory/Plugins/Hardware/Storage-Systems/RAID-Controllers/LSI-Mega-RAID-plugin-for-32-2Dbit-and-64-2Dbit-systems/details
Ściągamy plugin i umieszczamy w tym samym katalogu co powyżej i nadajemy mu nazwę chek_lsi_megaraid i prawo do wykonywania. Do pliku konfiguracyjnego NRPE /etc/nagios/nrpe.cfg dodajemy taki wpis:
command[check_raid]=/usr/bin/sudo /usr/lib64/nagios/plugins/check_lsi_megaraid
Restartujemy NRPE:
service nrpe restart
Żeby prawidłowo zadziałał plugin musimy w sudoers dodać mu odpowiednie wpisy:
visudo
Defaults:nagios !requiretty
nagios ALL=(ALL) NOPASSWD: /usr/lib64/nagios/plugins/
Następnie po stronie serwera NAGIOS`a w pliku konfiguracyjnym hosta dodajemy:
define service{
use graphed-service ; Name of service template to use
host_name hostname
service_description Raid Status
check_command check_nrpe!5666!check_raid
Restart serwera NAGIOS:
service nagios restart
I mamy na bieżąco podgląd do statusu naszego RAID`a.
Pokazywanie postów oznaczonych etykietą RAID. Pokaż wszystkie posty
Pokazywanie postów oznaczonych etykietą RAID. Pokaż wszystkie posty
wtorek, 7 października 2014
środa, 1 października 2014
Monitoring macierzy LSI MEGARAID SAS w Nagiosie.
Wracamy do kwestii macierzy RAID, teraz zajmiemy się rozwiązaniem firmy LSI MEGARAID SAS. Mamy już wcześniej zainstalowane MegaCli i chcemy teraz na bieżąco monitorować stan dysków w Nagiosie. Mega Cli może my poprać, ze strony: http://www.thomas-krenn.com/de/download.html I instalujemy. Instalacje jest prosta, więc nie będę opisywał tu tej procedury.
Pierwsze próby podpięcia wtyczki check_megaraid_sas zakończyły się tym, że po stronie serwera monitorowanego dostajemy prawidłowy output, lecz po stronie serwera nagiosa wynik się nie pokrywa (pokazuje, że jest ok, ale nie pokazuje stanu kontrolerów). Winne temu jest sudo. Musimy zmodyfikować odpowiednio plik sudoers.
Dodajemodpowiednie wpisy do sudo (pamiętajmy o sprawdzeniu ścieżki do MegaCli/MegaCli64):
visudo
Defaults:nagios !requiretty
nagios ALL=(ALL) NOPASSWD: /usr/lib/nagios/plugins/
nagios ALL=(ALL) NOPASSWD: /opt/MegaRAID/MegaCli/MegaCli64
Następnie instalujemy plugin do nagiosa z:
wget http://www.techno-obscura.com/~delgado/code/check_megaraid_sas
Żeby prawidłowo nam zadziałał musimy zmodyfikować w nim linię:
my $megaclibin = '/opt/MegaRAID/MegaCli/MegaCli64'; # the full path to your MegaCli binary
na taką jak powyżej, lub inną ścieżkę w zależności, gdzie znajduje się plik MegaCli64/Megacli.
Wgrywamy go do katalogu pluginów Nagios`a /usr/lib/nagios/plugins/ lub /usr/lib64/nagios/plugins (w zależności od architektury)
W pliku /etc/nagios/nrpe.cfg na kliencie dodajemy (pamiętajmy, żeby nazwa użytkownika w tym pliku zgadzała się z nazwą użytkownika w sudoers, no i oczywiście prawidłowa ścieżka do pluginu):
command[check_megaraid_sas]=/usr/lib/nagios/plugins/check_megaraid_sas
Jeśli są pokazywane jakiekolwiek błędy dysków, a nie chcemy, żeby wiecznie wisiały w Nagiosie musimy w poleceniu użyć przełącznika, za pomocą którego je zignorujemy:
Usage: [-s number] [-m number] [-o number]
-s is how many hotspares are attached to the controller
-m is the number of media errors to ignore
-p is the predictive error count to ignore
-o is the number of other disk errors to ignore
Teraz po stronie serwera Nagios`a tworzymy/modyfikujemy plik konfiguracyjny hosta i zamieszczamy w nim wpis::
define service{
use graphed-service ; Name of service template to use
host_name Nasza_Nazwa
service_description Raid Status
check_command check_nrpe!5666!check_megaraid_sas
}
Może się jeszcze po stronie serwera nagios pojawić taka niespodzianka:
NRPE: Unable to read output
Po sprawdzeniu plików konfiguracyjnych, sudoers i pliku pluiginu i tam jest ok, to problem może tkwić po stronie sellinuxa to polecenie powinno naprawić (jak zwykle zwracamy uwagę na ścieżke do pliku):
restorecon -R -v /usr/lib64/nagios/plugins/check_megaraid_sas
Po tych zabiegach wszytko u mnie wróciło do normy i Nagios prawidłowo odczytuje wyniki z pluginu.
Następnym razem opisze w jaki sposób diagnozować dyski, w których pojawiają się błędy, a także jak rozwiąże jeden przypadek braku chęci współpracy sudo z pluginem.
Pierwsze próby podpięcia wtyczki check_megaraid_sas zakończyły się tym, że po stronie serwera monitorowanego dostajemy prawidłowy output, lecz po stronie serwera nagiosa wynik się nie pokrywa (pokazuje, że jest ok, ale nie pokazuje stanu kontrolerów). Winne temu jest sudo. Musimy zmodyfikować odpowiednio plik sudoers.
Dodajemodpowiednie wpisy do sudo (pamiętajmy o sprawdzeniu ścieżki do MegaCli/MegaCli64):
visudo
Defaults:nagios !requiretty
nagios ALL=(ALL) NOPASSWD: /usr/lib/nagios/plugins/
nagios ALL=(ALL) NOPASSWD: /opt/MegaRAID/MegaCli/MegaCli64
Następnie instalujemy plugin do nagiosa z:
wget http://www.techno-obscura.com/~delgado/code/check_megaraid_sas
Żeby prawidłowo nam zadziałał musimy zmodyfikować w nim linię:
my $megaclibin = '/opt/MegaRAID/MegaCli/MegaCli64'; # the full path to your MegaCli binary
na taką jak powyżej, lub inną ścieżkę w zależności, gdzie znajduje się plik MegaCli64/Megacli.
Wgrywamy go do katalogu pluginów Nagios`a /usr/lib/nagios/plugins/ lub /usr/lib64/nagios/plugins (w zależności od architektury)
W pliku /etc/nagios/nrpe.cfg na kliencie dodajemy (pamiętajmy, żeby nazwa użytkownika w tym pliku zgadzała się z nazwą użytkownika w sudoers, no i oczywiście prawidłowa ścieżka do pluginu):
command[check_megaraid_sas]=/usr/lib/nagios/plugins/check_megaraid_sas
Jeśli są pokazywane jakiekolwiek błędy dysków, a nie chcemy, żeby wiecznie wisiały w Nagiosie musimy w poleceniu użyć przełącznika, za pomocą którego je zignorujemy:
Usage: [-s number] [-m number] [-o number]
-s is how many hotspares are attached to the controller
-m is the number of media errors to ignore
-p is the predictive error count to ignore
-o is the number of other disk errors to ignore
Teraz po stronie serwera Nagios`a tworzymy/modyfikujemy plik konfiguracyjny hosta i zamieszczamy w nim wpis::
define service{
use graphed-service ; Name of service template to use
host_name Nasza_Nazwa
service_description Raid Status
check_command check_nrpe!5666!check_megaraid_sas
}
Może się jeszcze po stronie serwera nagios pojawić taka niespodzianka:
NRPE: Unable to read output
Po sprawdzeniu plików konfiguracyjnych, sudoers i pliku pluiginu i tam jest ok, to problem może tkwić po stronie sellinuxa to polecenie powinno naprawić (jak zwykle zwracamy uwagę na ścieżke do pliku):
restorecon -R -v /usr/lib64/nagios/plugins/check_megaraid_sas
Po tych zabiegach wszytko u mnie wróciło do normy i Nagios prawidłowo odczytuje wyniki z pluginu.
Następnym razem opisze w jaki sposób diagnozować dyski, w których pojawiają się błędy, a także jak rozwiąże jeden przypadek braku chęci współpracy sudo z pluginem.
wtorek, 19 sierpnia 2014
Instalacja kontroli stanu macierzy RAID w linuxie (na przykładzie CentOS`a) dla kontrolera Adaptec.
Jest sobie serwer już leciwy np jakiś Dell PowerEdge2650 mamy na nim linuxa w tym przypadku CentOS`a i podejrzewamy, że może coś złego się dziać z naszym RAIDem, a nie mamy narzędzi, ani sposobności, żeby to sprawdzić. Nawet nie wiemy jaki mamy kontroler.
Zaczynamy od małego reserczu :)
Sprawdzamy jaki mamy ADAPTER RAID w systemie:
[root@xxx]# lspci
00:00.0 Host bridge: Broadcom CMIC-WS Host Bridge (GC-LE chipset) (rev 13)
00:00.1 Host bridge: Broadcom CMIC-WS Host Bridge (GC-LE chipset)
00:00.2 Host bridge: Broadcom CMIC-LE
00:04.0 Class ff00: Dell Embedded Remote Access or ERA/O
00:04.1 Class ff00: Dell Remote Access Card III
00:04.2 Class ff00: Dell Embedded Remote Access: BMC/SMIC device
00:0e.0 VGA compatible controller: ATI Technologies Inc Rage XL (rev 27)
00:0f.0 Host bridge: Broadcom CSB5 South Bridge (rev 93)
00:0f.1 IDE interface: Broadcom CSB5 IDE Controller (rev 93)
00:0f.2 USB Controller: Broadcom OSB4/CSB5 OHCI USB Controller (rev 05)
00:0f.3 ISA bridge: Broadcom CSB5 LPC bridge
00:10.0 Host bridge: Broadcom CIOB-X2 PCI-X I/O Bridge (rev 03)
00:10.2 Host bridge: Broadcom CIOB-X2 PCI-X I/O Bridge (rev 03)
00:11.0 Host bridge: Broadcom CIOB-X2 PCI-X I/O Bridge (rev 03)
00:11.2 Host bridge: Broadcom CIOB-X2 PCI-X I/O Bridge (rev 03)
03:06.0 Ethernet controller: Broadcom Corporation NetXtreme BCM5701 Gigabit Ethernet (rev 15)
03:08.0 Ethernet controller: Broadcom Corporation NetXtreme BCM5701 Gigabit Ethernet (rev 15)
04:08.0 PCI bridge: Intel Corporation 80303 I/O Processor PCI-to-PCI Bridge (rev 01)
04:08.1 RAID bus controller: Dell PowerEdge Expandable RAID Controller 3/Di (rev 01) <<<--- nasz kontroler
05:06.0 SCSI storage controller: Adaptec RAID subsystem HBA (rev 01)
05:06.1 SCSI storage controller: Adaptec RAID subsystem HBA (rev 01)następnie sprawdzamy jakie moduły mamy zainstalowane:
[root@xxx]# lsmod
Module Size Used by
..
aacraid 67657 <<<---- nasz sterownik od RAID
..
Jeśli nie mamy takiego modułu załadowanego, to musimy wyszukać moduł odpowiedzialny za RAID i sprawdzić za jakiego producenta odpowiada :).
Teraz musimy ściągnąć i zainstalować potrzebne nam oprogramowanie:
Dla systemu 32bit:
wget www.thomas-krenn.com/redx_tools/mb_download.php/mid.065102097066087081055088074052107061/StorageManager_Adaptec_Linux_x86_v6.10.18359_20090.rpm
Dla systemu 64bit:
wget www.thomas-krenn.com/redx_tools/mb_download.php/mid.104098115056084084089102070050065061/StorageManager_Adaptec_Linux_x64_v6.10.18359_20090.rpm
Instalujemy ściągniętą paczkę:
[root@xxxi]# rpm -i StorageManager_Adaptec_Linux_x86_v6.10.18359_20090.rpm
Adaptec Storage Manager
Version 6.10
starting Adaptec Storage Manager agent ...
Installation completed successfully.
The application can be started by running: /usr/StorMan/StorMan.sh
Teraz sprawdzamy czy nam działa wszystko:
cd /usr/StorMan
./arcconf getconfig 1
w tym miejscu może wystąpić poniższy błąd
./arcconf: error while loading shared libraries: libstdc++.so.5: cannot open shared object file: No such file or directory
jeśli wystąpi to sprawdzamy jaki pakiet odpowiada, za brakującą bibilotekę:
yum whatprovides libstdc++.so.5
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* addons: mirror-pl.kielcetechnologypark.net
* base: mirror-pl.kielcetechnologypark.net
* epel: ftp.icm.edu.pl
* extras: mirror-pl.kielcetechnologypark.net
* rpmforge: mirror1.hs-esslingen.de
* updates: mirror-pl.kielcetechnologypark.net
compat-libstdc++-33-3.2.3-61.i386 : Compatibility standard C++ libraries
Repo : base
Matched from:
Other : libstdc++.so.5
StorMan-6.10-18359.i386 : Adaptec Storage Manager
Repo : installed
Matched from:
Other : Provides-match: libstdc++.so.5
i doinstalowujemy brakującą paczkę:
yum install compat-libstdc++-33-3.2.3-61.i386
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* addons: mirror-pl.kielcetechnologypark.net
* base: mirror-pl.kielcetechnologypark.net
* epel: ftp.icm.edu.pl
* extras: mirror-pl.kielcetechnologypark.net
* rpmforge: mirror1.hs-esslingen.de
* updates: mirror-pl.kielcetechnologypark.net
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package compat-libstdc++-33.i386 0:3.2.3-61 set to be updated
--> Finished Dependency Resolution
Dependencies Resolved
==============================================================================================================================================================================
Package Arch Version Repository Size
==============================================================================================================================================================================
Installing:
compat-libstdc++-33 i386 3.2.3-61 base 232 k
Transaction Summary
==============================================================================================================================================================================
Install 1 Package(s)
Upgrade 0 Package(s)
Total download size: 232 k
Is this ok [y/N]: y
Downloading Packages:
compat-libstdc++-33-3.2.3-61.i386.rpm | 232 kB 00:00
Running rpm_check_debug
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
Installing : compat-libstdc++-33 1/1
Installed:
compat-libstdc++-33.i386 0:3.2.3-61
Complete!
Następnie wydajemy ponownie polecenie:
/usr/StoreMan/arcconf getconfig 1
Dostaniemy wynik ze statusem naszego RAIDu i dysków do niego podłączonych.
Powodzenia
Zaczynamy od małego reserczu :)
Sprawdzamy jaki mamy ADAPTER RAID w systemie:
[root@xxx]# lspci
00:00.0 Host bridge: Broadcom CMIC-WS Host Bridge (GC-LE chipset) (rev 13)
00:00.1 Host bridge: Broadcom CMIC-WS Host Bridge (GC-LE chipset)
00:00.2 Host bridge: Broadcom CMIC-LE
00:04.0 Class ff00: Dell Embedded Remote Access or ERA/O
00:04.1 Class ff00: Dell Remote Access Card III
00:04.2 Class ff00: Dell Embedded Remote Access: BMC/SMIC device
00:0e.0 VGA compatible controller: ATI Technologies Inc Rage XL (rev 27)
00:0f.0 Host bridge: Broadcom CSB5 South Bridge (rev 93)
00:0f.1 IDE interface: Broadcom CSB5 IDE Controller (rev 93)
00:0f.2 USB Controller: Broadcom OSB4/CSB5 OHCI USB Controller (rev 05)
00:0f.3 ISA bridge: Broadcom CSB5 LPC bridge
00:10.0 Host bridge: Broadcom CIOB-X2 PCI-X I/O Bridge (rev 03)
00:10.2 Host bridge: Broadcom CIOB-X2 PCI-X I/O Bridge (rev 03)
00:11.0 Host bridge: Broadcom CIOB-X2 PCI-X I/O Bridge (rev 03)
00:11.2 Host bridge: Broadcom CIOB-X2 PCI-X I/O Bridge (rev 03)
03:06.0 Ethernet controller: Broadcom Corporation NetXtreme BCM5701 Gigabit Ethernet (rev 15)
03:08.0 Ethernet controller: Broadcom Corporation NetXtreme BCM5701 Gigabit Ethernet (rev 15)
04:08.0 PCI bridge: Intel Corporation 80303 I/O Processor PCI-to-PCI Bridge (rev 01)
04:08.1 RAID bus controller: Dell PowerEdge Expandable RAID Controller 3/Di (rev 01) <<<--- nasz kontroler
05:06.0 SCSI storage controller: Adaptec RAID subsystem HBA (rev 01)
05:06.1 SCSI storage controller: Adaptec RAID subsystem HBA (rev 01)następnie sprawdzamy jakie moduły mamy zainstalowane:
[root@xxx]# lsmod
Module Size Used by
..
aacraid 67657 <<<---- nasz sterownik od RAID
..
Jeśli nie mamy takiego modułu załadowanego, to musimy wyszukać moduł odpowiedzialny za RAID i sprawdzić za jakiego producenta odpowiada :).
Teraz musimy ściągnąć i zainstalować potrzebne nam oprogramowanie:
Dla systemu 32bit:
wget www.thomas-krenn.com/redx_tools/mb_download.php/mid.065102097066087081055088074052107061/StorageManager_Adaptec_Linux_x86_v6.10.18359_20090.rpm
Dla systemu 64bit:
wget www.thomas-krenn.com/redx_tools/mb_download.php/mid.104098115056084084089102070050065061/StorageManager_Adaptec_Linux_x64_v6.10.18359_20090.rpm
Instalujemy ściągniętą paczkę:
[root@xxxi]# rpm -i StorageManager_Adaptec_Linux_x86_v6.10.18359_20090.rpm
Adaptec Storage Manager
Version 6.10
starting Adaptec Storage Manager agent ...
Installation completed successfully.
The application can be started by running: /usr/StorMan/StorMan.sh
Teraz sprawdzamy czy nam działa wszystko:
cd /usr/StorMan
./arcconf getconfig 1
w tym miejscu może wystąpić poniższy błąd
./arcconf: error while loading shared libraries: libstdc++.so.5: cannot open shared object file: No such file or directory
jeśli wystąpi to sprawdzamy jaki pakiet odpowiada, za brakującą bibilotekę:
yum whatprovides libstdc++.so.5
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* addons: mirror-pl.kielcetechnologypark.net
* base: mirror-pl.kielcetechnologypark.net
* epel: ftp.icm.edu.pl
* extras: mirror-pl.kielcetechnologypark.net
* rpmforge: mirror1.hs-esslingen.de
* updates: mirror-pl.kielcetechnologypark.net
compat-libstdc++-33-3.2.3-61.i386 : Compatibility standard C++ libraries
Repo : base
Matched from:
Other : libstdc++.so.5
StorMan-6.10-18359.i386 : Adaptec Storage Manager
Repo : installed
Matched from:
Other : Provides-match: libstdc++.so.5
i doinstalowujemy brakującą paczkę:
yum install compat-libstdc++-33-3.2.3-61.i386
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* addons: mirror-pl.kielcetechnologypark.net
* base: mirror-pl.kielcetechnologypark.net
* epel: ftp.icm.edu.pl
* extras: mirror-pl.kielcetechnologypark.net
* rpmforge: mirror1.hs-esslingen.de
* updates: mirror-pl.kielcetechnologypark.net
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package compat-libstdc++-33.i386 0:3.2.3-61 set to be updated
--> Finished Dependency Resolution
Dependencies Resolved
==============================================================================================================================================================================
Package Arch Version Repository Size
==============================================================================================================================================================================
Installing:
compat-libstdc++-33 i386 3.2.3-61 base 232 k
Transaction Summary
==============================================================================================================================================================================
Install 1 Package(s)
Upgrade 0 Package(s)
Total download size: 232 k
Is this ok [y/N]: y
Downloading Packages:
compat-libstdc++-33-3.2.3-61.i386.rpm | 232 kB 00:00
Running rpm_check_debug
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
Installing : compat-libstdc++-33 1/1
Installed:
compat-libstdc++-33.i386 0:3.2.3-61
Complete!
Następnie wydajemy ponownie polecenie:
/usr/StoreMan/arcconf getconfig 1
Dostaniemy wynik ze statusem naszego RAIDu i dysków do niego podłączonych.
Powodzenia
Subskrybuj:
Posty (Atom)