Instalacja SAP RFCSDK w CentOSie
Paczkę z potrzebnymi binarkami możemy pobrać spod adresu http://service.sap.com/swdc. Niestety, żeby się tam dostać trzeba mieć konto dostępowe.
Na początek kilka słów o tym, jak znaleźć odpowiedni pakiet. W przypadku SAPa nic nie jest oczywiste, więc nawet z pobieraniem oprogramowania można mieć pewne problemy. Przede wszystkim musimy określić, jaka właściwie wersja będzie nam potrzebna. Z pomocą przychodzi notka o numerze 825494. Ponieważ aktualnie mam zamiar to instalować na CentOSie 5.4 w wersji 32-bitowej, potrzebuję RFCSDK w wersji 6.40 lub 7.00 (przynajmniej tak wynika ze wspomnianej noty). Teraz zaglądamy do noty numer 413708. Mamy tu ładnie opisane gdzie, co i w jakiej kolejności kliknąć, żeby dojść do miejsca z którego możemy sobie pożądane rzeczy pobrać. Oczywiście z rzeczywistością ma to niewiele wspólnego :-) Jak już znajdziemy to, co nas interesuje, to możemy kliknąć „download” i przy odrobinie szczęścia po chwili będziemy posiadaczami wymarzonego pakietu.
Następnym krokiem jest rozpakowanie pliku, który pobraliśmy. Potrzebne jest do tego narzędzie SAPCAR. Do pobrania z serwisu SAP. Tutaj jest trochę łatwiej. Przebijamy się przez menu, aby dojść do miejsca „Search for Support Packages and Patches” i w polu „Search” wpisujemy „SAPCAR”. Klikamy na odpowiednią wersję, wybieramy platformę i pobieramy pakiet. Co ciekawe, wersja dla Linuksa także ma rozszerzenie .exe, ale jest to najzwyklejsza binarka w formacie ELF.
Dobra, mamy dwa upragnione pliki i coś z nimi teraz trzeba zrobić. Na początek zmieńmy atrybuty sapcara:
chmod 755 ./SAPCAR_0-10003688.exe
Tutaj drobna uwaga: Jeżeli próba uruchomienia tego ostatniego spowoduje wywalenie błędu "./SAPCAR_0-10003688.exe: error while loading shared libraries: libstdc++.so.5: cannot open shared object file: No such file or directory"
to oznacza, że musimy doinstalować pakiet zgodności o nazwie „compat-libstdc++-33„.
Rozpakowujemy archiwum z instalką RFCSDK:
./SAPCAR_0-10003688.exe -xvf ./RFC_25-10004432.SAR
W wyniku dostajemy katalog rfcsdk, który trzeba gdzieś skopiować. Na przykład do /usr/sap.
Żeby to wszystko chciało działać, musimy jeszcze utworzyć plik sap.conf w katalogu /etc/ld.so.conf.d i wpisać do niego dwie linijki:
/usr/sap/rfcsdk/lib
/usr/sap/lib
Wywołanie sapinfo powinno dać w wyniku mniej-więcej coś takiego:
[kbechler@sv bin]$ /usr/sap/rfcsdk/bin/sapinfo -v
This RFC library belongs to the SAP R/3 Release *** 700,0,239 ***
Versions of SAP internal libraries:
dptr: 2
ni : 38
cpic: 3
rfc : 3
Compiled by compiler version:
3.3.3 (SuSE Linux)
[kbechler@sv bin]$
Ale po co to wszystko? Ano po to, żeby móc monitorować systemy SAP za pomocą Nagiosa i tego skryptu(1).
Skrypt wywołuje się mniej-więcej tak:
[kbechler@sv /]# /usr/lib/nagios/plugins/check_sap_rfcping.pl -a 192.168.0.1 -s 10 -w 50 -c 200
RFCPING OK - No Problems found, AvgRTT=1 ms (SAPF001_SF1_10)
[kbechler@sv /]#
Konfiguracja Nagiosa:
do pliku ’commands.cfg’ dodałem wpis:
define command{
command_name check_sap_rfcping
command_line $USER1$/check_sap_rfcping.pl -a $HOSTADDRESS$ -s $ARG1$ -w 50 -c 200
}
Potem zdefiniowałem serwis, który będzie monitorował PINGa:
define service{
use generic-service
host_name sap_sandbox1
service_description SAP RFC PING
check_command check_sap_rfcping!10!-w 100 -c 300
}
I to w zasadzie wszystko. Ruszyło za pierwszym razem (co w IT zdarza się niekoniecznie zawsze ;-))
(1) Żeby skrypt działał, musimy jeszcze pobawić się trochę w linkowanie katalogów: 'ln -s /usr/sap /usr/local/sap'