The automatic setup of around 80-90 SAP-Servers running several releases and flavors of SAP software in NetEye 4 by:
First, let’s look at the logical structure of a typical SAP System, for example a System running an ABAP or JAVA Stack of SAP NetWeaver 7.x:
An SAP system consists of one corresponding database (Oracle, DB2, SAP HANA, etc.), one central services Instance, and 1-n application instances. All the mentioned components of one SAP system may run on either a single or multiple hosts. A host can be a physical, virtual (e.g., VMware, Hyper-V etc.) or logical (e.g., clustered instances) host. On the other hand, multiple databases or instances of different SAP systems may run on a single host.
Because NetEye and the underlying Icinga are centered on hosts, I created an import structure for Excel based on one line for each physical, virtual or logical host. Information related to SAP systems, SAP databases and SAP instances running on a host are stored in corresponding array structures, e.g., SAP-Instance, SAP-Instance, etc.
The automation component of Icinga Director reads the Excel sheet and creates or modifies host definitions having all SAP and database related information stored in host variables or arrays. Several Host Templates are imported depending on the role of the corresponding host (database server and/or SAP instance server).
The next challenge was to automate the generation of service checks depending on the content of the host variables of an SAP host. I could not use the service-apply feature of Director because it is not capable of dealing correctly with array variables. So I created a script containing some “for loops”, reading all array elements in a host variable and generating the corresponding services.
I defined Service Templates for each type of service generated containing “best practice” thresholds for the metrics provided. If there is a need to define individual thresholds for one of the metrics, a host variable should be defined and then used in the service definition. A good example of this is the minimal free space threshold for database-related filesystems like “sapdata”, which may vary a lot.
Here are some examples of generated services on different levels:
Monitoring of database- or SAP instance-related file systems.
Connection time, the filling degree of tablespaces, cache quality, individual SQL statements, backup status, etc.
The health of central and distributed services like SAP Host Agent, SAP enqueue, SAP update, SAP instance status, dispatcher queues, etc.
As a result, customers can set up basic health checks for their SAP systems just by performing an automatic import of a single Excel sheet containing all hosts in their SAP system landscape. All services will be automatically generated when deploying the import-results.
(to be continued)
I’ll be attending the NetEye User Group 2020 on May 7th in Nuremburg, Germany. Part of the agenda will be a short presentation on what I’ve written in this blog post.