Pandora FMS SAP Plugin

Plugin to monitor SAP systems remotely through the use of RFC functions (Remote Function Call).

Introduction

Ver. 170522

The purpose of this document is to describe SAP system monitoring with Pandora FMS.

PandoraFMS_SAP_Plugin allows remote monitoring of SAP systems and servers without the need to install anything on the computers that host SAP, making use of RFC (Remote Function Call) functions.

This plugin can be used as a server plugin and as an agent plugin.

Compatibility matrix

The following table shows the SAP system versions the plugin would support.

Systems where it has been tested

SAP R/3 (ECC or ERP)

SAP S/4 HANA

Systems where it should work

SAP R/3 (ECC or ERP)

SAP S/4 HANA

 

Pre requirements

In order to run PandoraFMS_SAP_Plugin it is necessary to meet a series of prerequisites. Although the plugin can be launched from any system that meets the requirements, we will use a Pandora FMS server built on Linux as an example.

The system that runs the plugin must have Java JDK installed at least in its version 16. To do this, you may access the Java JDK download page and obtain the corresponding "openjdk" package:

http://jdk.java.net/archive/

image-1652368429203.png

Once the "openjdk-16.0.2_linux-x64_bin.tar.gz" package is downloaded into the system, unzip it and place it in the desired path. It is recommended to create a symbolic link to be able to execute the "java" command without the need to indicate the full path:

tar zxvf openjdk-16.0.2_linux-x64_bin.tar.gz
mv jdk-16.0.2 /opt
ln -s /opt/jdk-16.0.2/bin/java /usr/bin/java

To connect with the SAP systems to be monitored and make RFC calls, it is necessary to have the "sapjco3" library for Java. This library can be downloaded from the official SAP website:

https://support.sap.com/en/product/connectors/jco.html

image-1652369391415.png

You will need 2 files, the compiled library and the JAR file:

The compiled library can be placed in any directory you wish, for example:

/usr/share/pandora_server/util/plugin/PandoraFMS_SAP_Plugin/libsapjco3.so

But the JAR file must be located in a directory called "PandoraFMS_SAP_Plugin_lib" located next to the plugin "PandoraFMS_SAP_Plugin.jar". For example, if the plugin is located at:

/usr/share/pandora_server/util/plugin/PandoraFMS_SAP_Plugin/PandoraFMS_SAP_Plugin.jar

The JAR library will have to be located at:

/usr/share/pandora_server/util/plugin/PandoraFMS_SAP_Plugin/PandoraFMS_SAP_Plugin_lib/sapjco3.jar

So the files would be organized like this:

/usr/share/pandora_server/util/plugin/PandoraFMS_SAP_Plugin/libsapjco3.so
/usr/share/pandora_server/util/plugin/PandoraFMS_SAP_Plugin/PandoraFMS_SAP_Plugin.jar
/usr/share/pandora_server/util/plugin/PandoraFMS_SAP_Plugin/PandoraFMS_SAP_Plugin_lib/sapjco3.jar

To connect to SAP systems using SNC you will need to obtain the official library for this, which is available for authorized customers on the SAP Service Marketplace at service.sap.com/swdc under Download → SAP Cryptographic Software.

The required file is:

This library must be located in the same directory where the plugin is located:

/usr/share/pandora_server/util/plugin/PandoraFMS_SAP_Plugin/libsapcrypto.so

Since monitoring is done from outside the SAP system, it is necessary to ensure communication with it.

By making use of the RFC functions, connectivity is carried out from the device that runs the plugin (for example, Pandora FMS server) and the SAP system gateway through the 33XX TCP port, where XX is the number of the SAP system it connects to (by default 3300 TCP). Therefore, the possible connection ports will range from 3300 to 3399.

In order to execute the RFC functions of the SAP system, it will be necessary to have a username and password.

This user must be “B-System” (System) in SAP ECC or S/4HANA versions, or “C-Communication / CPI-C/RFC” in previous SAP versions.

It is recommended for the user to be "B-System" whenever possible, since for this type of users, passwords do not expire, which if it happened, it would force them to also be changed in the plugin configuration in Pandora FMS.

For creating the user in the SAP system, it will be necessary to have the following authorization objects:

PandoraFMS_SAP_Plugin is exclusive for Pandora FMS Enterprise clients who have hired it. Therefore it is necessary to have a valid license key to run the plugin.

To obtain a valid license, contact Pandora FMS team at:

https://pandorafms.com/es/

Plugin parameters

PandoraFMS_SAP_Plugin has the following parameters for its manual execution:

Paramter Description
-l "<license>"

It indicates the plugin the license it will use to run it. If the license is not valid, the plugin will display an error. For example:

 

-l "f51a6712-a3fALLp4x0Af3vAfjr9II2f-bas1g74w"

-h "<sap_host>"

It indicates the plugin the IP or DNS name of the SAP server to connect to. For example:

 

-h "10.5.6.30"

-c "<sap_client>"

It indicates the plugin the SAP client (client) number for the connection. For example:

 

-c "001"

-s "<sap_system>"

It indicates the plugin the SAP system number for the connection. This parameter will determine the port used in communication with SAP. For example:

 

-s "00"

-u "<sap_user>"

It indicates the plugin the SAP user for the connection. For example:

 

-u "PANDORA01"

-p "<sap_password>"

or

-x "<sap_password_encrypted>"

It indicates the plugin the password of the previous SAP user. For example:

 

-p "P45sw0rD."

or

-x "bSg8XKC63rhGfXHgjzSCMQ"

-X "<sap_password>"

Instead of launching the plugin to monitor a SAP server, it produces the encrypted password as output, to launch the plugin with the parameter "-x" instead of "-p". For example:

 

-X "P45sw0rD."

-P "<sap_snc_partner_name>"

A valid SAP server SNC name, which is equal to Distinguished Name(DN) of SAP server PSE.

 

-P "CN=SDD, OU=SAP Web AS, O=SAP Trust"

-Q "<sap_snc_qop>"

It is a parameter that defines the level of security applied in communication between SAP systems using Secure Network Communications (SNC). Valid values are:

  • 1: Authentication only
  • 2: Authentication and integrity protection
  • 3: Authentication, integrity and privacy protection
  • 8: Global default protection
  • 9: Maximum protection

-Q "3"

-N "<sap_snc_client_name>"

A valid client SNC name, which is equal to Distinguished Name(DN) of client PSE.

 

-N "CN=UDD, OU=SAP Web AS, O=SAP Trust"

-m "<plugin_module>"

It indicates the plugin the ID of the module from which data is to be obtained (see table below) in an execution as a server plugin. For example:

 

-m "SYS_INFO"

-M "<plugin_module>"

It indicates the plugin the IDs of the modules from which data is to be obtained (see table below) in an execution as an agent plugin. Not all module IDs support this mode, and do not support custom filters or conditions. This parameter can be used multiple times in a single run to indicate multiple modules. For example:

 

-M "SYS_INFO" -M "IDOC_FAIL_COUNT"

-R "<sap_rfc_function>"

In server plugin mode, for the module IDs that support it, it indicates the SAP RFC function to execute to obtain the data. For example:

 

-R "TH_WPINFO"

-T "<sap_rfc_table>"

In server plugin mode, for the module IDs that support it, it indicates the name of the SAP table from which to obtain the data. For example:

 

-T "WPLIST"

-S "<sap_rfc_structure>"

In server plugin mode, for the module IDs that support it, it indicates the name of the SAP structure from which to obtain the data. For example:

 

-S "MSSDBLOGSIZE"

-F "<sap_field_1>,...,<sap_field_N>"

In server plugin mode, for the module IDs that support it, it indicates the fields of the previous table or structure separated by commas "," from which you want to obtain the data. For example:

 

-F "WP_TYP,WP_ISTATUS"

-W "<sap_filter_condition>"

or

-W "<plugin_filter_condition>"

or

-W "<ztransaction_table_input>"

In server plugin mode, for the module IDs that support it, it indicates filters for query conditions to SAP tables or filters for conditions in other types of plugin queries (depending on the module ID). This parameter can be specified multiple times for multiple conditions. The format for each of these conditions is described below. For example:

 

-W "STATUS EQ 'F'" -W "AND JOBNAME LIKE 'Z%'"

or

-W "WP_ISTATUS,EQ,2" -W "WP_ITYPE,EQ,1"

or

-W "TT_OPTIONS,TEXT,STATUS EQ 'F'" -W "TT_OPTIONS,TEXT,TT_OPTIONS,TEXT,AND JOBNAME LIKE 'Z%'"

-I "<plugin_rfc_input>"

In server plugin mode, for the module IDs that support it, they indicate inputs for the execution of the RFC functions. This parameter can be specified multiple times for multiple inputs. The format for these inputs is described later. For example:

 

-I "TABLE_NAME,USR04" -I "DBNAME,XYZ"

-L "<seconds>"

In server plugin mode, for the module IDs that support it, it indicates the number of seconds from the current moment backwards in which data will be searched. Its default value is "86400". For example:

 

-L "21600"

-C "<string>"

In server plugin mode, for the module IDs that support it, it indicates a text (as a filter) that the results of the RFC query must contain to be returned by the plugin. For example:

 

-C "USER01"

-Z "<sap_z_transaction_function_module>"

In server plugin mode, for the IDs of modules that allow it, indicate the number of the functional module that launches a transaction Z of SAP to obtain the data. For example:

 

-Z "Z_CHECK_STATUS"

-D "<delimiter>"

For the module IDs that support it, it indicates the field delimiter character for the outputs produced by the plugin that have a table format. Its default value is "|". For example:

 

-D ";"

-H "<1 | 0>"

For the module IDs that support it, it indicates whether you want to obtain the table header in the plugin output or not for all those outputs produced by the plugin that have a table format. It admits the values "0" (do not show the header) or "1" (show the header). Its default value is "1". For example:

 

-H "0"

The "-W" parameter can be used for different plugin modules, admitting 2 different formats in each case:

In the queries made to SAP tables, the conditions that must be indicated comply with the format expected by the "RFC_READ_TABLE" function, which would correspond to:

FIELD OPERATOR 'VALUE'

If multiple "-W" parameters are indicated, it may be necessary to indicate in the consecutive conditions whether they are joined by means of the "AND" or "OR" logical comparators. Note that SAP will evaluate the conditions in the order listed. For example:

-W "FIELD OPERATOR 'VALUE'" -W "AND FIELD OPERATOR 'VALUE'" -W "OR FIELD OPERATOR 'VALUE'"

It would be equivalent to a single condition:

-W "FIELD OPERATOR 'VALUE' AND FIELD OPERATOR 'VALUE' OR FIELD OPERATOR 'VALUE'"

Due to socket limitations, a single condition indicated in a "-W" parameter cannot exceed 70 characters. If you need to indicate longer conditions try concatenating them by using multiple "-W" parameters and using "AND" and "OR" logical comparators.

Example of actual condition:

-W "SEQNO EQ '000'" -W "AND DATUM GE '_1_DAYSAGO_'"

For modules that are not queries to SAP tables through the "RFC_READ_TABLE" function, the format of the filters must be:

FIELD,OPERATOR,VALUE

For these cases, if multiple "-W" parameters are indicated, it will be considered that all the conditions must be met at the same time (as if they were concatenated with logical "AND" operators).

Example of actual condition:

-W "WP_ISTATUS,EQ,16" -W "WP_ITYPE,EQ,1"

The "FIELD" will depend on the SAP table or structure consulted, for example it could be the "STATUS" field of the "TBTCO" table. There are several pages where you can check the available fields of SAP tables, such as:

https://www.sapdatasheet.org/

The "OPERATOR" determines the type of comparison to be made between the indicated "FIELD" and "VALUE". The possible operators are:

    1. EQ: The value of the field must be equal to the indicated value.
    2. NE: The value of the field must be different from the indicated value.
    3. LT: The value of the field must be less than the indicated value. In table queries using "RFC_READ_TABLE", if the field to be compares is a date or time, the oldest dates or times are lower than the most recent dates or times.
    4. LE: The value of the field must be less than or equal to the indicated value. In table queries using "RFC_READ_TABLE", if the field to be compared is a date or time, the oldest dates or times are lower than the most recent dates or times.
    5. GT: The value of the field must be greater than the indicated value. In table queries using "RFC_READ_TABLE", if the field to be compared is a date or time, the most recent dates or times are greater than the oldest dates or times.
    6. GE: The value of the field must be greater than or equal to the indicated value. In table queries using "RFC_READ_TABLE", if the field to be compared is a date or time, the most recent dates or times are greater than the oldest dates or times.
    7. LIKE: The value of the field must be adjusted to the expression of the indicated value. Only available for table queries (RFC_READ_TABLE).

The indicated "VALUE" allows applying the filter (condition) of the query results according to its "OPERATOR". It is recommended to always encapsulate values in single quotes in SAP table queries with "RFC_READ_TABLE".

With the "LIKE" "OPERATOR", the indicated expressions allow the use of the character "%" to determine that it can be any character from 0 to N times. For example:

Z% : It allows indicating that the field with which it is compared must have a value that at least begins with the letter Z, and may or may not have more characters after it.

For the "DATS" or "TIMS" "FIELDS" (SAP tables fields) macros can be used to be replaced by the corresponding date and time (according to the macro) regarding the date and time of the plugin execution time, which allow you to apply dynamic filters with the correct format for these types of SAP fields.

    1. Macros for "DATS" fields:
      1. _N_DAYSAGO_: N days ago date.
      2. _N_WEEKSAGO_: N weeks ago date.
    2. Macros for "TIMS" fields:
      1. _N_SECSAGO_: N seconds ago time.
      2. _N_MINSAGO_: N minutes ago time.
      3. _N_HOURSAGO_: N hours ago time.

For all macros, "N" can be replaced by a positive integer or 0.

"DATS" fields have the format "YYYYMMDD", and therefore the macros for "DATS" fields will be replaced with values in that format, being:

"TIMS" fields have the format "hhmmss", and therefore the macros for "TIMS" fields will be replaced with values in that format, being:

The format that the "-I" parameters must have is as follows:

INPUT,VALUE

The "INPUT" will depend on the SAP function queried, for example it could be the "TABLE_NAME" input of the "RFC_GET_TABLE_ENTRIES" function. There are several pages where you can check the available "input" entries of SAP functions, such as:

https://www.sapdatasheet.org/

The "VALUE" indicated is the one that will be assigned to the "INPUT" when executing the corresponding RFC function.

Actual "input" example:

-I "TABLE_NAME,USR04"

The "-I" parameters also support the use of macros with the same format as those used for the "-W" parameters: "_N_SECSAGO_", "_N_MINSAGO_", "_N_HOURSAGO_", "_N_DAYSAGO_" and "_N_WEEKSAGO_" (see point above for details).

Manual execution

For PandoraFMS_SAP_Plugin proper execution, it is necessary to indicate a series of minimum parameters for all cases.

In addition to these minimum parameters, depending on whether the plugin is executed as an agent plugin or as a server plugin, a parameter must be indicated with the module(s) from which to obtain data, as the case may be.

Lastly, and depending on the module, it is possible that it accepts additional parameters (see in following sections).

That way, the minimum mandatory parameters for any execution are:

-l "<license>" -h "<sap_host>" -c "<sap_client>" -s "<sap_system>" -u "<sap_user>" -p "<sap_password>"

Or fi using an encrypted password:

-l "<license>" -h "<sap_host>" -c "<sap_client>" -s "<sap_system>" -u "<sap_user>" -x "<sap_password_encrypted>"

For execution as a server plugin, you will also have to indicate:

-m "<plugin_module>"

While for an execution as an agent plugin, you will have to indicate:

-M "<plugin_module>"

It will also be necessary to indicate the location of the compiled "SAP JCO 3" library ("libsapjco3.so" for Linux and "sapjco3.dll" for Windows) through a Java parameter:

-Djava.library.path=<path_to_sapjco_lib_folder>

Seeing it with a couple of examples, this would be a possible execution as a server plugin:

java \
-Djava.library.path=/usr/share/pandora_server/util/plugin/PandoraFMS_SAP_Plugin/ \
-jar /usr/share/pandora_server/util/plugin/PandoraFMS_SAP_Plugin/PandoraFMS_SAP_Plugin.jar \
-l "f51a6712-a3fALLp4x0Af3vAfjr9II2f-bas1g74w"
-h "10.5.6.30" \
-c "001" \
-s "00" \
-u "PANDORA01" \
-p "P45sw0rD." \
-m "SYS_INFO"

Whose output would be:

System hostname|System IP|System ID|System instance|System version|DB hostname|DBMS|OS
server|10.5.6.30|XYZ|server_XYZ_00|46C|server|MSSQL|Windows NT

And this would be a possible execution as an agent plugin:

java \
-Djava.library.path=/usr/share/pandora_server/util/plugin/PandoraFMS_SAP_Plugin/ \
-jar /usr/share/pandora_server/util/plugin/PandoraFMS_SAP_Plugin/PandoraFMS_SAP_Plugin.jar \
-l "f51a6712-a3fALLp4x0Af3vAfjr9II2f-bas1g74w"
-h "10.5.6.30" \
-c "001" \
-s "00" \
-u "PANDORA01" \
-p "P45sw0rD." \
-M "SYS_INFO"

Whose output would be:

<module>
<name><![CDATA[SAP System info]]></name>
<type><![CDATA[generic_data_string]]></type>
<data><![CDATA[System hostname|System IP|System ID|System instance|System version|DB hostname|DBMS|OS
server|10.5.6.30|XYZ|server_XYZ_00|46C|server|MSSQL|Windows NT]]></data>
</module>

In the case of the agent plugin, and as seen in previous sections, it is possible to indicate several modules to monitor in a single execution. For example:

java \
-Djava.library.path=/usr/share/pandora_server/util/plugin/PandoraFMS_SAP_Plugin/ \
-jar /usr/share/pandora_server/util/plugin/PandoraFMS_SAP_Plugin/PandoraFMS_SAP_Plugin.jar \
-l "f51a6712-a3fALLp4x0Af3vAfjr9II2f-bas1g74w"
-h "10.5.6.30" \
-c "001" \
-s "00" \
-u "PANDORA01" \
-p "P45sw0rD." \
-M "SYS_INFO" -M "IDOC_FAIL_COUNT" -M "IDOC_OK_COUNT"

Whose output would be:

<module>
<name><![CDATA[SAP System info]]></name>
<type><![CDATA[generic_data_string]]></type>
<data><![CDATA[System hostname|System IP|System ID|System instance|System version|DB hostname|DBMS|OS
server|10.5.6.30|XYZ|server_XYZ_00|46C|server|MSSQL|Windows NT]]></data>
</module>
<module>
<name><![CDATA[IDOCs failed from yesterday - Count]]></name>
<type><![CDATA[generic_data]]></type>
<data><![CDATA[0]]></data>
</module>
<module>
<name><![CDATA[IDOCs ok from yesterday - Count]]></name>
<type><![CDATA[generic_data]]></type>
<data><![CDATA[0]]></data>
</module>

It is also possible to run the plugin just to encrypt a password and mask it during the final execution of the plugin. For example, with the following execution:

java \
-Djava.library.path=/usr/share/pandora_server/util/plugin/PandoraFMS_SAP_Plugin/ \
-jar /usr/share/pandora_server/util/plugin/PandoraFMS_SAP_Plugin/PandoraFMS_SAP_Plugin.jar \
-X "P45sw0rD."

The encrypted password would be obtained:

jc2hV8nK2NLtn5YvYNZzDQ

To run the plugin in this way, using the parameter "-x" instead of "-p" to indicate the password:

java \
-Djava.library.path=/usr/share/pandora_server/util/plugin/PandoraFMS_SAP_Plugin/ \
-jar /usr/share/pandora_server/util/plugin/PandoraFMS_SAP_Plugin/PandoraFMS_SAP_Plugin.jar \
-l "f51a6712-a3fALLp4x0Af3vAfjr9II2f-bas1g74w"
-h "10.5.6.30" \
-c "001" \
-s "00" \
-u "PANDORA01" \
-x "jc2hV8nK2NLtn5YvYNZzDQ" \
-m "SYS_INFO"

Discovery

This plugin can be integrated with Pandora FMS Discovery.

To do so, you must load the ".disco" package that you can download from the Pandora FMS library:

https://pandorafms.com/library/ 

sap1.png

Once loaded, SAP environments can be monitored by creating Discovery tasks from the Management > Discovery > Applications section.

sap2.png

The following minimum data will be requested for each task:

sap3.png

You can also adjust the task configuration to customize the desired monitoring:

<module_name>;<module_type>;<check_definition>

Example:

SAP info;generic_data_string;-m 120

sap4.png

Tasks that are successfully completed will have an execution summary with the following information:

sap5.png

Tasks that are not completed successfully will have an execution summary recording the errors that occurred.

Plugin modules

The following table describes the modules available for the PandoraFMS_SAP_Plugin plugin:

Module ID Server plugin Agent plugin Module description (by default)
SYS_INFO YES YES Obtains information from the SAP system to which it is connected in table format.
LOGIN_TEXT YES NO It checks if it is able to connect via RFC to the SAP system and generates an output indicating "Login OK" or a text with the error that occurs.
LOGIN_PROC YES NO It checks if it is able to connect via RFC to the SAP system and generates an output of 1 in case of success or 0 in case of error.
RFC_FUNC_COUNT YES NO It allows executing an RFC function and obtaining as output the number of records obtained in the query.
RFC_FUNC_TABLE YES NO It allows executing an RFC function and obtaining as output a table with the records obtained in the query.
RFC_FUNC_GROUPTABLE YES NO It allows executing an RFC function and obtaining as output a table with the records obtained in the query and a counter of the number of different records.
WP_DIA_FAIL_COUNT YES YES Counts the number of WP DIA in failed status on the SAP server.
WP_BGD_FAIL_COUNT YES YES Counts the number of WP BGDs in failed status on the SAP server.
WP_UPD_FAIL_COUNT YES YES Counts the number of WP UPDs in failed status on the SAP server.
WP_UP2_FAIL_COUNT YES YES Counts the number of WP UP2 in failed status on the SAP server.
WP_SPO_FAIL_COUNT YES YES Counts the number of WP SPOs in failed status on the SAP server.
WP_ENQ_FAIL_COUNT YES YES Counts the number of WP ENQs in failed status on the SAP server.
WP_NOREST_COUNT YES YES Counts the number of WP without "restart" active on the SAP server.
WP_STOP_COUNT YES YES Counts the amount of WP stopped on the SAP server.
WP_DIA_AVAIL_COUNT YES YES Counts the amount of WP DIA in available status on the SAP server.
WP_BGD_AVAIL_COUNT YES YES Counts the number of WP BGDs in available status on the SAP server.
WP_UPD_AVAIL_COUNT YES YES Counts the number of WP UPDs in available status on the SAP server.
WP_DIA_AVAIL_PERCENT YES YES Gets the percentage of WP DIA available on the SAP server.
WP_BGD_AVAIL_PERCENT YES YES Gets the percentage of WP BGDs available on the SAP server.
WP_UPD_AVAIL_PERCENT YES YES Gets the percentage of WP UPDs available on the SAP server.
IDOC_FAIL_COUNT YES YES Posts the number of failed IDocs since yesterday in the SAP system.
IDOC_OK_COUNT YES YES Posts the number of successful IDocs since yesterday in the SAP system.
DUMPS_YEST_TABLE YES YES Obtains a table of the DUMPs generated since yesterday in the SAP system.
DUMPS_YEST_COUNT YES YES Posts the DUMPs generated since yesterday in the SAP system.
JOBS_CANCEL_YEST_TABLE YES YES Obtains a table of JOBs canceled since yesterday in the SAP system.
JOBS_CANCEL_YEST_COUNT YES YES Posts the JOBs canceled since yesterday in the SAP system.
JOBS_CANCEL_YEST_GROUPTABLE YES YES Obtains a table where the JOBs canceled since yesterday in the SAP system are counted by name.
BATCH_INPUT_FAIL_COUNT YES YES Posts the failed "Batch input" since yesterday in the SAP system.
JOBS_CANCEL_TODAY_TABLE YES YES Gets a table of JOBs canceled today in the SAP system.
JOBS_CANCEL_TODAY_COUNT YES YES Posts the JOBs canceled today in the SAP system.
JOBS_CANCEL_TODAY_GROUPTABLE YES YES Obtains a table where the JOBs canceled today are counted by name in the SAP system.
DUMPS_TODAY_GROUPTABLE YES YES Obtains a table where the DUMPs generated today in the SAP system are counted by name.
DUMPS_TODAY_COUNT YES YES Posts the DUMPs generated today in the SAP system.
SEND_OP_NOPROC_COUNT YES YES Accounts for external shipping operations not processed since yesterday.
SEND_OP_PROC_COUNT YES YES Accounts for external shipping operations processed since yesterday.
RFC_READTABLE_COUNT YES NO It allows querying SAP system tables and obtaining as output the number of records obtained in the query.
RFC_READTABLE_TABLE YES NO It allows querying SAP system tables and obtaining as output a table with the records obtained in the query.
RFC_READTABLE_GROUPTABLE YES NO It allows querying SAP system tables and obtaining as output a table with the records obtained in the query and a counter for the number of different records.
ORA_TABLESPACES_TABLE YES YES Only available on SAP systems with Oracle database. Gets a table using Oracle's tablespaces.
ORA_TABLESPACES_95_COUNT YES YES Only available on SAP systems with Oracle database. Counts the tablespaces with a usage greater than or equal to 95%.
ORA_TABLESPACES_99_COUNT YES YES Only available on SAP systems with Oracle database. Counts the tablespaces with a usage greater than or equal to 99%.
BLOCK_ENTRIES_TABLE YES YES Gets a table with the SAP system lock entries.
BLOCK_ENTRIES_COUNT YES YES Posts the blocking entries of the SAP system.
CUSTOMER_OPEN_ITEMS_COUNT YES YES Posts the open objects of customer accounts in the SAP system.
CUSTOMER_CLOSING_BALANCE_TABLE YES YES Obtains a table of the closing balance of customer accounts from the SAP system.
CUSTOMER_CLEARING_TRANS_COUNT YES YES Posts clearing transactions for customer accounts in the SAP system.
PFL_PARAM_VALUES_TABLE YES YES Gets a table with PFL parameter values from the SAP system.
PROFILES_CHANGES_COUNT YES YES Posts changes to authorization profiles since yesterday in the SAP system.
PROFILES_CHANGES_TABLE YES YES Gets a table of changes to authorization profiles since yesterday in the SAP system.
MSSQL_LOG_SIZE_BYTES YES YES Only available on SAP systems with MS SQL database. Gets the size in bytes of the MS SQL log.
MSSQL_LOG_FREE_BYTES YES YES Only available on SAP systems with MS SQL database. Get the free bytes from the MS SQL log.
MSSQL_LOG_FREE_PERCENT YES YES Only available on SAP systems with MS SQL database. Gets the free percentage of the MS SQL log.
RFC_QUEUE_OUT_COUNT YES YES Posts the RFC output queue of the SAP system.
RFC_QUEUE_IN_COUNT YES YES Posts the RFC input queue of the SAP system.
RFC_SEND_FAIL_COUNT YES YES Accounts for failed delivery attempts in the SAP system.
RFC_SEND_FAIL_O_COUNT YES YES It counts the unsuccessful delivery attempts with an "O" output in the SAP system.
RFC_SEND_FAIL_I_COUNT YES YES Accounts for failed delivery attempts with "I" output in the SAP system.
RFC_ERROR_QUEUE_OUT_FAIL_COUNT YES YES Posts the queue of RFC output errors from the SAP system.
RFC_ERROR_QUEUE_IN_FAIL_COUNT YES YES Posts the RFC input error queue of the SAP system.
RFC_QUEUE_OUT_OLDER_SECONDS YES YES Gets the number of seconds since the oldest entry in the output queue was not processed.
RFC_QUEUE_IN_OLDER_SECONDS YES YES Gets the number of seconds since the oldest entry in the input queue was not processed.
HANA_FREE_MEM_BYTES YES YES Only available on SAP systems with Hana database. Gets the bytes of free memory for the database.
HANA_USED_MEM_BYTES YES YES Only available on SAP systems with Hana database. Gets the bytes of memory used from the database.
RFC_Z_TRANS YES NO It allows executing custom SAP function modules running SAP "Z" transactions and obtaining what is returned in output as a value.

The following table indicates the relevant information of the plugin modules for its execution:

Module ID XML name Data type Mandatory parameters Optional parameters
SYS_INFO SAP System info generic_data_string  

-F

-H

-D

LOGIN_TEXT   generic_data_string    
LOGIN_PROC   generic_proc    
RFC_FUNC_COUNT   generic_data

-R

-T or -S

-F

-I

-W

RFC_FUNC_TABLE   async_string

-R

-T or -S

-F

-I

-W

-H

-D

RFC_FUNC_GROUPTABLE   async_string

-R

-T or -S

-F

-I

-W

-H

-D

WP_DIA_FAIL_COUNT WP DIA failed - Count generic_data    
WP_BGD_FAIL_COUNT WP BGD failed - Count generic_data    
WP_UPD_FAIL_COUNT WP UPD failed - Count generic_data    
WP_UP2_FAIL_COUNT WP UP2 failed - Count generic_data    
WP_SPO_FAIL_COUNT WP SPO failed - Count generic_data    
WP_ENQ_FAIL_COUNT WP ENQ failed - Count generic_data    
WP_NOREST_COUNT WP with restart not active - Count generic_data    
WP_STOP_COUNT WP stopped - Count generic_data    
WP_DIA_AVAIL_COUNT WP DIA available - Count generic_data    
WP_BGD_AVAIL_COUNT WP BGD available - Count generic_data    
WP_UPD_AVAIL_COUNT WP UPD available - Count generic_data    
WP_DIA_AVAIL_PERCENT WP DIA available - Percent generic_data    
WP_BGD_AVAIL_PERCENT WP BGD available - Percent generic_data    
WP_UPD_AVAIL_PERCENT WP UPD available - Percent generic_data    
IDOC_FAIL_COUNT IDOCs failed from yesterday - Count generic_data    
IDOC_OK_COUNT IDOCs ok from yesterday - Count generic_data    
DUMPS_YEST_TABLE Dumps from yesterday - List async_string    
DUMPS_YEST_COUNT Dumps from yesterday - Count generic_data    
JOBS_CANCEL_YEST_TABLE Jobs canceled from yesterday - List async_string   -H
JOBS_CANCEL_YEST_COUNT Jobs canceled from yesterday - Count generic_data    
JOBS_CANCEL_YEST_GROUPTABLE Jobs canceled from yesterday - Grouped count list async_string   -H
BATCH_INPUT_FAIL_COUNT Batch input failed from yesterday - Count generic_data    
JOBS_CANCEL_TODAY_TABLE Jobs canceled today - List async_string   -H
JOBS_CANCEL_TODAY_COUNT Jobs canceled today - Count generic_data    
JOBS_CANCEL_TODAY_GROUPTABLE Jobs canceled today - Grouped count list async_string  

-H

-D

DUMPS_TODAY_GROUPTABLE Dumps today - Grouped count list async_string  

-H

-D

DUMPS_TODAY_COUNT Dumps today - Count generic_data    
SEND_OP_NOPROC_COUNT External send operations not processed from yesterday - Count generic_data    
SEND_OP_PROC_COUNT External send operations processed from yesterday - Count generic_data    
RFC_READTABLE_COUNT   generic_data

-T

-F

-W

RFC_READTABLE_TABLE   async_string

-T

-F

-W

-H

-D

RFC_READTABLE_GROUPTABLE   async_string

-T

-F

-W

-H

-D

ORA_TABLESPACES_TABLE Oracle tablespaces usage - List generic_data_string  

-H

-D

ORA_TABLESPACES_95_COUNT Oracle tablespaces usage greater equal 95% - Count generic_data    
ORA_TABLESPACES_99_COUNT Oracle tablespaces usage greater equal 99% - Count generic_data    
BLOCK_ENTRIES_TABLE System block entries - List async_string  

-H

-D

BLOCK_ENTRIES_COUNT System block entries - Count generic_data    
CUSTOMER_OPEN_ITEMS_COUNT Customers accounts open items - Count generic_data   -I
CUSTOMER_CLOSING_BALANCE_TABLE Closing balance of customers accounts - List async_string  

-I

-H

-D

CUSTOMER_CLEARING_TRANS_COUNT Customers accounts clearing transactions - Count generic_data   -I
PFL_PARAM_VALUES_TABLE PFL parameters values - List async_string  

-W

-H

-D

PROFILES_CHANGES_COUNT Changes on auth profiles from yesterday - Count generic_data  

-C

-L

PROFILES_CHANGES_TABLE Changes on auth profiles from yesterday - List async_string  

-C

-L

-H

-D

MSSQL_LOG_SIZE_BYTES MS SQL log size generic_data    
MSSQL_LOG_FREE_BYTES MS SQL log free generic_data    
MSSQL_LOG_FREE_PERCENT MS SQL log free % generic_data    
RFC_QUEUE_OUT_COUNT RFC Queue OUT - Count generic_data   -I
RFC_QUEUE_IN_COUNT RFC Queue IN - Count generic_data   -I
RFC_SEND_FAIL_COUNT RFC send tries failed - Count generic_data   -I
RFC_SEND_FAIL_O_COUNT RFC send tries failed return O - Count generic_data   -I
RFC_SEND_FAIL_I_COUNT RFC send tries failed return I - Count generic_data   -I
RFC_ERROR_QUEUE_OUT_FAIL_COUNT RFC Error queue OUT failed - Count generic_data    
RFC_ERROR_QUEUE_IN_FAIL_COUNT RFC Error queue IN failed - Count generic_data    
RFC_QUEUE_OUT_OLDER_SECONDS RFC Queue OUT - Older entry seconds not processing generic_data   -I
RFC_QUEUE_IN_OLDER_SECONDS RFC Queue IN - Older entry seconds not processing generic_data   -I
HANA_FREE_MEM_BYTES Hana free memory bytes generic_data    
HANA_USED_MEM_BYTES Hana used memory bytes generic_data    
RFC_Z_TRANS     -F

-T

-I

-W

 

Examples

java \
-Djava.library.path=/usr/share/pandora_server/util/plugin/PandoraFMS_SAP_Plugin/ \
-jar /usr/share/pandora_server/util/plugin/PandoraFMS_SAP_Plugin/PandoraFMS_SAP_Plugin.jar \
-l "f51a6712-a3fALLp4x0Af3vAfjr9II2f-bas1g74w" \
-h "10.5.6.30" \
-c "001" \
-s "00" \
-u "PANDORA01" \
-p "P45sw0rD." \
-m "SYS_INFO"
System hostname|System IP|System ID|System instance|System version|DB hostname|DBMS|OS
server|10.5.6.30|XYZ|server_XYZ_00|46C|server|MSSQL|Windows NT
java \
-Djava.library.path=/usr/share/pandora_server/util/plugin/PandoraFMS_SAP_Plugin/ \
-jar /usr/share/pandora_server/util/plugin/PandoraFMS_SAP_Plugin/PandoraFMS_SAP_Plugin.jar \
-l "f51a6712-a3fALLp4x0Af3vAfjr9II2f-bas1g74w" \
-h "10.5.6.30" \
-c "001" \
-s "00" \
-u "PANDORA01" \
-p "P45sw0rD." \
-m "LOGIN_TEXT"
Login OK
java \
-Djava.library.path=/usr/share/pandora_server/util/plugin/PandoraFMS_SAP_Plugin/ \
-jar /usr/share/pandora_server/util/plugin/PandoraFMS_SAP_Plugin/PandoraFMS_SAP_Plugin.jar \
-l "f51a6712-a3fALLp4x0Af3vAfjr9II2f-bas1g74w" \
-h "10.5.6.30" \
-c "001" \
-s "00" \
-u "PANDORA01" \
-p "P45sw0rD." \
-m "LOGIN_PROC"
1
java \
-Djava.library.path=/usr/share/pandora_server/util/plugin/PandoraFMS_SAP_Plugin/ \
-jar /usr/share/pandora_server/util/plugin/PandoraFMS_SAP_Plugin/PandoraFMS_SAP_Plugin.jar \
-l "f51a6712-a3fALLp4x0Af3vAfjr9II2f-bas1g74w" \
-h "10.5.6.30" \
-c "001" \
-s "00" \
-u "PANDORA01" \
-p "P45sw0rD." \
-m "RFC_FUNC_COUNT" \
-R "TH_WPINFO" -T "WPLIST" -F "WP_TYP,WP_ISTATUS" -W "WP_ISTATUS,EQ,2"
8
java \
-Djava.library.path=/usr/share/pandora_server/util/plugin/PandoraFMS_SAP_Plugin/ \
-jar /usr/share/pandora_server/util/plugin/PandoraFMS_SAP_Plugin/PandoraFMS_SAP_Plugin.jar \
-l "f51a6712-a3fALLp4x0Af3vAfjr9II2f-bas1g74w" \
-h "10.5.6.30" \
-c "001" \
-s "00" \
-u "PANDORA01" \
-p "P45sw0rD." \
-m "RFC_FUNC_TABLE" \
-R "TH_WPINFO" -T "WPLIST" -F "WP_TYP,WP_ISTATUS" -W "WP_ISTATUS,EQ,2"
WP_TYP|WP_ISTATUS
DIA|2
DIA|2
DIA|2
UPD|2
UPD|2
ENQ|2
BGD|2
SPO|2
java \
-Djava.library.path=/usr/share/pandora_server/util/plugin/PandoraFMS_SAP_Plugin/ \
-jar /usr/share/pandora_server/util/plugin/PandoraFMS_SAP_Plugin/PandoraFMS_SAP_Plugin.jar \
-l "f51a6712-a3fALLp4x0Af3vAfjr9II2f-bas1g74w" \
-h "10.5.6.30" \
-c "001" \
-s "00" \
-u "PANDORA01" \
-p "P45sw0rD." \
-m "RFC_FUNC_GROUPTABLE" \
-R "TH_WPINFO" -T "WPLIST" -F "WP_TYP,WP_ISTATUS" -W "WP_ISTATUS,EQ,2"
WP_TYP|WP_ISTATUS|count(WP_TYP|WP_ISTATUS)
DIA|2|3
UPD|2|2
ENQ|2|1
BGD|2|1
SPO|2|1
java \
-Djava.library.path=/usr/share/pandora_server/util/plugin/PandoraFMS_SAP_Plugin/ \
-jar /usr/share/pandora_server/util/plugin/PandoraFMS_SAP_Plugin/PandoraFMS_SAP_Plugin.jar \
-l "f51a6712-a3fALLp4x0Af3vAfjr9II2f-bas1g74w" \
-h "10.5.6.30" \
-c "001" \
-s "00" \
-u "PANDORA01" \
-p "P45sw0rD." \
-m "WP_DIA_AVAIL_COUNT"
3
java \
-Djava.library.path=/usr/share/pandora_server/util/plugin/PandoraFMS_SAP_Plugin/ \
-jar /usr/share/pandora_server/util/plugin/PandoraFMS_SAP_Plugin/PandoraFMS_SAP_Plugin.jar \
-l "f51a6712-a3fALLp4x0Af3vAfjr9II2f-bas1g74w" \
-h "10.5.6.30" \
-c "001" \
-s "00" \
-u "PANDORA01" \
-p "P45sw0rD." \
-m "WP_DIA_AVAIL_PERCENT"
75.0
java \
-Djava.library.path=/usr/share/pandora_server/util/plugin/PandoraFMS_SAP_Plugin/ \
-jar /usr/share/pandora_server/util/plugin/PandoraFMS_SAP_Plugin/PandoraFMS_SAP_Plugin.jar \
-l "f51a6712-a3fALLp4x0Af3vAfjr9II2f-bas1g74w" \
-h "10.5.6.30" \
-c "001" \
-s "00" \
-u "PANDORA01" \
-p "P45sw0rD." \
-m "IDOC_OK_COUNT"
0
java \
-Djava.library.path=/usr/share/pandora_server/util/plugin/PandoraFMS_SAP_Plugin/ \
-jar /usr/share/pandora_server/util/plugin/PandoraFMS_SAP_Plugin/PandoraFMS_SAP_Plugin.jar \
-l "f51a6712-a3fALLp4x0Af3vAfjr9II2f-bas1g74w" \
-h "10.5.6.30" \
-c "001" \
-s "00" \
-u "PANDORA01" \
-p "P45sw0rD." \
-m "RFC_READTABLE_COUNT" \
-T "TBTCO" -F "JOBNAME,STATUS,STRTDATE" -W "STATUS EQ 'F' AND JOBNAME LIKE 'Z%'" -W "OR STATUS EQ 'S'"
21
java \
-Djava.library.path=/usr/share/pandora_server/util/plugin/PandoraFMS_SAP_Plugin/ \
-jar /usr/share/pandora_server/util/plugin/PandoraFMS_SAP_Plugin/PandoraFMS_SAP_Plugin.jar \
-l "f51a6712-a3fALLp4x0Af3vAfjr9II2f-bas1g74w" \
-h "10.5.6.30" \
-c "001" \
-s "00" \
-u "PANDORA01" \
-p "P45sw0rD." \
-m "RFC_READTABLE_TABLE" \
-T "TBTCO" -F "JOBNAME,STATUS,STRTDATE" -W "STATUS EQ 'F' AND JOBNAME LIKE 'Z%'" -W "OR STATUS EQ 'S'"
JOBNAME|STATUS|STRTDATE
ZADS_SCANPROG1|F|20100305
ZJOB1|F|20130714
ZJOB1|F|20130714
ZJOB1|F|20130714
ZJOB1|F|20130714
ZJOB1|F|20130714
ZJOB1|F|20130714
ZJOB1|F|20130714
RDDIMPDP|S|
RDDIMPDP_CLIENT_001|S|
SAP_APPLICATION_STAT_COLLECTOR|S|
ZJOB1|F|20130714
ZJOB1|F|20130714
ZJOB1|F|20130714
ZJOB1|F|20130714
ZJOB1|F|20130725
ZJOB1|F|20130725
ZJOB1|F|20130725
ZJOB1|F|20130725
ZJOB1|F|20130725
ZJOB1|F|20130725
java \
-Djava.library.path=/usr/share/pandora_server/util/plugin/PandoraFMS_SAP_Plugin/ \
-jar /usr/share/pandora_server/util/plugin/PandoraFMS_SAP_Plugin/PandoraFMS_SAP_Plugin.jar \
-l "f51a6712-a3fALLp4x0Af3vAfjr9II2f-bas1g74w" \
-h "10.5.6.30" \
-c "001" \
-s "00" \
-u "PANDORA01" \
-p "P45sw0rD." \
-m "RFC_READTABLE_GROUPTABLE" \
-T "TBTCO" -F "JOBNAME,STATUS,STRTDATE" -W "STATUS EQ 'F' AND JOBNAME LIKE 'Z%'" -W "OR STATUS EQ 'S'"
JOBNAME|STATUS|STRTDATE|count(JOBNAME|STATUS|STRTDATE)
ZADS_SCANPROG1|F|20100305|1
ZJOB1|F|20130714|11
RDDIMPDP|S||1
RDDIMPDP_CLIENT_001|S||1
SAP_APPLICATION_STAT_COLLECTOR|S||1
ZJOB1|F|20130725|6
java \
-Djava.library.path=/usr/share/pandora_server/util/plugin/PandoraFMS_SAP_Plugin/ \
-jar /usr/share/pandora_server/util/plugin/PandoraFMS_SAP_Plugin/PandoraFMS_SAP_Plugin.jar \
-l "f51a6712-a3fALLp4x0Af3vAfjr9II2f-bas1g74w" \
-h "10.5.6.30" \
-c "001" \
-s "00" \
-u "PANDORA01" \
-p "P45sw0rD." \
-m "PROFILES_CHANGES_TABLE" \
-L "86400" -C "USER"
USER|MOD|DATE
USER1|M|2022-05-17 03:56:34
USER2|C|2022-05-17 03:39:02
USER3|M|2022-05-17 10:32:46
USER4|C|2022-05-16 07:57:27
USER5|M|2022-05-16 05:39:24
java \
-Djava.library.path=/usr/share/pandora_server/util/plugin/PandoraFMS_SAP_Plugin/ \
-jar /usr/share/pandora_server/util/plugin/PandoraFMS_SAP_Plugin/PandoraFMS_SAP_Plugin.jar \
-l "f51a6712-a3fALLp4x0Af3vAfjr9II2f-bas1g74w" \
-h "10.5.6.30" \
-c "001" \
-s "00" \
-u "PANDORA01" \
-p "P45sw0rD." \
-m "RFC_Z_TRANS" \
-Z "Z_CHECK_STATUS" -F "OUTPUT,VALUE"
OUTPUT|VALUE
SUCCESS|1