30. 03. 2017 Patrick Zambelli Nagios Plugins, NetEye

Monitoraggio SAP: Esperienze con SAPControl e check_SAP_health

SAP Monitoring_v2

Sui sistemi SAP sono mappati tutti i processi di business-critical che necessitano di requisiti speciali di monitoraggio. Sorge la necessità di monitorare non solo l’infrastruttura ma anche il livello applicativo, l’andamento dei lavori e gli errori. È necessario capire da dove nascono i problemi che con il tempo possono causare problemi seri.

Quando i fattori problematici non vengono riconosciuti nel loro stadio inziale, si ottiene un monitoraggio reattivo, ovvero il cliente (o end user) riporta attivamente il problema. Insieme al Sig. Andreas Förster abbiamo organizzato una giornata di workshop durante la quale si è esaminato la struttura di SAP, si è individuato quali approcci di monitoraggio esistono sul server e a quale livello di applicazione e quindi le soluzioni sono state implementate sul sistema.

In questo articolo vorrei porre attenzione sui vari approcci di monitoraggio per SAP e mostrate alcuni esempi di applicazione con NetEye:

  • SAP-monitoraggio esterno: controllo delle istanze di sistema e processi con “SAPControl”
  • SAP-monitoraggio interno: CCMS Alert Monitor per richiedere i runtime data, utilizzo delle risorse e l’andamento dei lavori.

SAP-monitoraggio esterno: controllo delle istanze di sistema e processi con “SAPControl”

Il focus di questo approccio è il livello applicativo. È possibile iniziare e fermare le istanze, esaminare i runtime environment, e leggere i system log. Le richieste sono basate su SOAP WebServices e possono essere fatti sia con http che con HTTPS certificato. Dal lato SAP, la configurazione di ACLs (Access List) permette il controllo del sistema di monitoraggio a cui si vuole accedere, senza dover effettuare login sul sistema SAP stesso.

Un caso tipico di SAP-monitoraggio esterno è la richiesta della versione kernel delle istanze SAP. Dal momento in cui si implementa il sistema di monitoraggio si garantisce che, dopo il rollout di un aggiornamento, tutti i sistemi opereranno sulla stessa versione. Un altro caso è rappresentato dalla scadenza dei certificati che possono essere monitorati nel seguente modo:

I SAPControl webservices attivabili per il monitoraggio, devono avere determinate restrizioni con il SAP profile parameter “service/protectedwebmethods”. Esempio:

service/protectedwebmethods = SDEFAULT -GetVersionInfo -GetAlertTree -GetAlerts -EnqGetStatistic -GetQueueStatistic -GetInstanceProperties -GetSystemInstanceList -ReadLogFile -ListLogFiles -AnalyseLogFiles -ABAPReadSyslog -ABAPGetComponentList

I dettagli li trovate nella nota SAP “1439348 – Extended security settings for sapstartsrv”. Per preparare il monitoraggio dell’infrastruttura bisogna procurarsi il SAPEXE , che può essere scaricato dal suo portale clienti. Il file contiene SAPControl e le librerie annesse.

# ./SAPCAR -xvf SAPEXE_400-20012215.SAR sapcontrol libicuuc.so.50 libicudata.so.50 libicui18n.so

Consiglio: le versioni e le dipendenze possono variare da versione a versione. Quando SAPControl e le librerie sono pronte, viene comunicato il “LD_LIBRARY_PATH” e richiamato via export LD_LIBRARY_PATH=/opt/sap/lib

Sono inoltre necessary gli host SAP, numeri seriali e funzioni da utilizzare. Quindi il primo step è, ad esempio, richiedere la versione di sistema.

./sapcontrol -nr 01 -host sap.mydomain.lan -prot NI_HTTP -function GetVersionInfo
15.11.2016 10:10:06
GetVersionInfo
OK
Filename, VersionInfo, Time
/usr/sap/SID/DVEBMGS15/exe/sapstartsrv, 742, patch 223, changelist 1614561, RKS compatibility level 0, optU (Oct 2 2015, 19:45:59), rs6000_64, 2015 10 02 20:56:11
/usr/sap/SID/DVEBMGS15/exe/disp+work, 742, patch 223, changelist 1614561, RKS compatibility level 0, optU (Oct 2 2015, 19:45:59), rs6000_64, 2015 10 03 00:25:54
/usr/sap/SID/DVEBMGS15/exe/gwrd, 742, patch 223, changelist 1614561, RKS compatibility level 0, optU (Oct 2 2015, 19:45:59), rs6000_64, 2015 10 02 19:56:49
...

Ulteriori richieste includono processi attivi, consumo della CPU o entrate nella tabella di lock.

./sapcontrol -nr 01 -host sap.mydomain.lan -prot NI_HTTP -function GetProcessList
15.11.2016 10:12:06
GetProcessList
OK
name, description, dispstatus, textstatus, starttime, elapsedtime, pid
disp+work, Dispatcher, GREEN, Running, 2016 10 16 17:56:50, 67:52:08, 9242666
igswd_mt, IGS Watchdog, GREEN, Running, 2016 10 16 17:56:50, 67:52:08, 4522234
gwrd, Gateway, GREEN, Running, 2016 10 16 17:56:52, 67:52:06, 20251724
icman, ICM, GREEN, Running, 2016 10 16 17:56:52, 67:52:06, 17107024

sapcontrol_versioninfo

sapcontrol_enqueue

SAP-monitoraggio interno: CCMS Alert Monitor per richiedere i runtime data, utilizzo delle risorse e l’andamento dei lavori.

Il monitoraggio SAP interno analizza i tempi di esecuzione dei job o le connessioni disponibili RFC. Per l’analisi serve estratte le metriche di monitoraggio SAP, che vengono automaticamente raccolte di default da SAP stesso. Le metriche sono quindi depositate nel Computing Center Management System (CCMS) e possono essere utilizzare tramite richieste via RFC.

In questo caso le richieste partono dal servizio CCMS. Non è necessario avere una configurazione dettagliata dell’architettura CCSM, come ad esempio Landscape Virtualization Management (LVM). Un vantaggio della decentralizzazione dell’architettura delle richieste è la gestione diretta dei monitor SAP con le sue istanze. Contemporaneamente la distanza delle richieste è ridotta perché l’informazione può essere recuperata direttamente dal sistema su cui si verifica ed evitare il“single point of failure”.

Consiglio: per la configurazione dei permessi di accesso è consigliato creare l’utenza con “000” client. Il client “000” fornisce una visione completa di tutte le informazioni contenute nel sistema SPA. È però da notare che qui non sono salvati dati sensibili di utenti o clienti.

Check_sap_health permette la lettura delle metriche via CCMS, è sviluppato da un progetto community (https://labs.consol.de/nagios/check_sap_health/) e offre una vasta gamma di metodi per le richieste.

Richimare check_sap_health

Questa chiamata connette l’utente con il sistema SAP, laddove sia stata creata un’utenza valida con i dati di accesso per il sistema e il client. Per semplificare la configurazione abbiamo aggiunto uno wrapper script che recupera i dati dal file di configurazione, a questo punto l’indicazione del SID diventa necessaria. I dati riguardanti il client, numero di sistema, nome utente e password sono presi anch’essi dal file di configurazione.

cat /etc/nagios/neteye/sap/nag_sap.cfg
SID SYSNR MANDANT SAP-USER PASSWORD

Una volta che i dati di accesso e il wrapper-script “check_sap_health_run.sh” sono inseriti, si può inziare col test della prima connessione con “–mode connection-time”. Se l’esito del test è positivo è possibile utilizzare il metodo “list-ccms-monitors” per estrarre la struttura ad albero dei monitor disponibili.

./check_sap_health_run.sh --mode list-ccms-monitors --r3name SID
SAP CCMS Monitor Templates
Availability and Performance Overview
Background Processing
Buffers
Change Transport System
Communications
Data Archiving
Database
Dialog Overview
Dialog per Application Server
Enqueue
Entire System
Filesystems
J2EE Applications
J2EE Engine
Operating System
Performance Overview
Process Integration
Remote Databases

Di seguito un esempio della panoramica dei monitor CCMS nel modulo RZ20:

SAP-CCMS-L1

Adesso è possibile estrarre ulteriori informazioni, come ad esempio i monitor nell’area “Performance Overview” usando la funzione “name2”: “list-ccms-mtes”:

./check_sap_health_run.sh --r3name SID --mode=list-ccms-mtes --name "SAP CCMS Monitor Templates" --name2 "Performance Overview"
SID_appsap01_SID_10_CPU_CPU_Utilization 100
SID_appsap01_SID_10_CPU_Utilization 100
SID_appsap01_SID_10_Dialog_DBRequestTime 100
SID_appsap01_SID_10_Dialog_Load+GenTime 100
SID_appsap01_SID_10_Dialog_QueueTime 100
SID_appsap01_SID_10_Dialog_ResponseTime 100
SID_appsap01_SID_10_Dialog_UsersLoggedIn 100
SID_appsap01_SID_10_Paging_Page_In 100
SID_appsap01_SID_10_Paging_Page_Out 100
SID_appsap01_SID_10_Program_Swap 100
SID_appsap01_SID_10_R3MemMgmtResources_EsAct 100
SID_appsap01_SID_10_R3MemMgmtResources_HeapAct 100
SID_appsap01_SID_10_R3RollPaging_R3RollUsed 100
_Dialog 199
_Memory Management 199
_Operating System 199
_Performance Overview 199
_SID\app01_SID_10 199
OK

„name3“ permette di estratte uno specifico monitor e definire la sua soglia, la modalità usata è “ccms-mte-check”:

./check_sap_health_run.sh --ashost sap.mydomain.lan --r3name SID --mode=ccms-mte-check --name "SAP CCMS Monitor Templates" --name2 "Performance Overview" --name3 "SID_appsap01_SID_10_CPU_Utilization"
OK - CPU Utilization = 0% | 'CPU_Utilization'=0%;90;98;0;100

Nell’esempio sottostante, la soglia in dotazione del CCMS viene sovrascritta:

./check_sap_health_run.sh --ashost sap.mydomain.lan --r3name SID --mode=ccms-mte-check --name "SAP CCMS Monitor Templates" --name2 "Performance Overview" --name3 "SID_appsap01_SID_10_CPU_Utilization" --warning 80 --critical 90
OK - CPU Utilization = 0% | 'CPU_Utilization'=0%;80;90;0;100

Grazie alla massiccia condivisione di informazioni durante il workshop tutti i partecipanti sono stati in grado di estendere autonomamente il monitoraggio dell’ambiente SAP. In definitiva, è stata una giornata molto produttiva ed interessante.

Nel caso vogliate approfondire l’argomento di monitoraggio SAP, non esitate a contattarci all’indirizzo e-mail: neteye@wuerth-phoenix.com

Patrick Zambelli

Patrick Zambelli

Project Manager at Würth Phoenix
After my graduation in Applied Computer Science at the Free University of Bolzano I decided to start my professional career outside the province. With a bit of good timing and good luck I went into the booming IT-Dept. of Geox in the shoe district of Montebelluna, where I realized how a big IT infrastructure has to grow and adapt to quickly changing requirements. During this experience I had also the nice possibility to travel the world, while setting up the various production and retail areas of this company. Arrived at Würth Phoenix I started developing on our monitoring solution NetEye. Today, in my position as Consulting an Project Manager I am continuously heading to implement our solutions to meet the expectation of your enterprise customers.

Author

Patrick Zambelli

After my graduation in Applied Computer Science at the Free University of Bolzano I decided to start my professional career outside the province. With a bit of good timing and good luck I went into the booming IT-Dept. of Geox in the shoe district of Montebelluna, where I realized how a big IT infrastructure has to grow and adapt to quickly changing requirements. During this experience I had also the nice possibility to travel the world, while setting up the various production and retail areas of this company. Arrived at Würth Phoenix I started developing on our monitoring solution NetEye. Today, in my position as Consulting an Project Manager I am continuously heading to implement our solutions to meet the expectation of your enterprise customers.

Leave a Reply

Your email address will not be published. Required fields are marked *

Archive