LUALoriotPro WEB site

LoriotPro scripting documentation
Extensions for LUA language

Table of contents Search function

Print the current page Mail this  link UTUBE Channel version française

Audit Plugin for processing a group of Global Objects


Audit Process background task

Installing an Audit

Monitoring Audit Process


The Advanced TCP/Audit Polling is a LoriotPro Directory Plugin used to perform a task at regular interval. It can either perform a TCP check or execute a LUA script.

In our case, we will use the pluging for processing an Audit (a LUA script) that will execute the Global Object LUA functions.

You can developp your own LUA audit script to do it or use the standard script provided with LoriotPro (Audit process 902)

The Audit 902 is used to execute the Global Object LUA functions of a specific Group each time they reach their timeout.

Example of Audit in the Loriotpro Directory

Audit 902

A variable number of Audit processes can be launched for managing a single Group. In principle, higher is the number of tasks (GLOBAL OBJECTS LUA function) to perform and higher is their repetition frequency, higher the number of Audit processes attached to a Group must be. This will assure that each Global Object will be treated in respect of their interval time.

The time required to execute the different Global Object LUA functions is very important for determining the number of Audit Process (Thread) required for the real time treatment of a Group.

Audit Process of Global Object Group in LoriotPro

The Audit processes in question are instantiated as needed (Audit Process Plugin LoriotPro) to assume a quasi-parallel processing.

Audit Process background task

The Audit Process is an internal background process responsible of the treatment of all the Audit Plugins.

The Audit process task should be started if you have defined Audit Plugin in your directory.

To access the dialog box that control the Audit Process task from the main menu of LoriotPro

Configuration - > Audit Process

Audit process

Select the number of Thread you want to assigned to the Audit Plugins.

Each Audit plugin will use one thread of the pool when they will need it.

Installing an Audit Process

There are two ways for installaling an Audit Process

1 select the LoriotPro object in the Directory, click right and choose Insert Task -> Audit in the contextual menu.

2 select the LoriotPro object in the LoriotPro Directory and open its properties (Click right contextual menu).

Select the Advanced Polling tab.

The Advanced TCP/Audit polling dialog box open.

Add Audit 902

In the Polling Type list box, select Audit Process option.

In the Polling Interval, select the frequency at which the Audit Process will be launched.

WARNING The polling interval should much lower than the lowest Global Object Interval. See Concept

Check the Enable Process checkbox.

in the Audit Ref field select the value 902 orr use the wizard to select the Audit number 902.

In the Parameters field, select the Global Object Group that this Audit should process.

Optionnaly, you can define an Event to send if the Audit Process is not running or is not performing well.

Click OK will terminate the configuration and save it. The job is done.

You can now add other Audit Process to work on the GLOBAL OBJECTS of this same Group or add a new Audit Process that will work on GLOBAL OBJECTS of another Group.

Monitoring Audit Process

If you use the Audit 902 for processing the Global Object Group, you will see by default in the Global Object List a new Global Object that refers to this Audit.

The Global Object can be use to better monitor the behavior of the Audit and better see how Audit are working on a specific Group.

To check it, open the Global Object Monitor form the Configure-> GLOBAL OBJECTS option of the main menu of LoriotPro


Audit Process Global Object

As you can notice, the Group _sheduler exist and under this Group GLOBAL OBJECTS called Thread_xxxxx. For each Audit Audit 902 launched you run a new thread.

From WIKIPEDIA a thread of execution is the smallest sequence of programmed instructions that can be managed independently by an operating system scheduler.

The Global Object name is composed of the strind Thread_ and the UID of the Audit Porcess winthin the LoriotPro Directory.

In the object table the properties for that particular object are displayed. Here under the properties detail.

Scheduled 0 The LUA funtion is not used by this Global Object
Name The name of this GO attached to the Audit with that UID number. Example : Thread_5938346045443407916
Group Name _scheduler. The default name to which the GObject is attached
String The current string return at the execution fo the function attached to this Global Object. example: NetworkDevices Schedule Group : [NetworkDevices] OK
Double A value
Status The Status retruned by the function
Accessed The number of time that the function of this Global Object has been called for execution since the last Audit process startup
Interval The time interval define for the execution of the LUA function attached to this Global Object
Jitter The deviation of the time from the expected execution time of the LUA function of the Global Object
Type The unit assigned to the Interval value (seconds, milliseconds, other)
Time The time in clear text of the last function execution
Clock The time in timeticks of the last function execution
Param1 The Param1 value provided
Param2 The Param2 value provided
Function Time The time required for the function execution
Function Name The name of the function
Check Integer specifing conditionnal execution of the LUA function (0 no condition, 1 condition above, other custom condition)
IPCheck Check using the IP specified
UIDCheck Check using the UID specified

Check using the current availablity status of the selected host (IP or UID) in the directory

0 no polling, 1 Ping Polling OK, 2 SNMP Polling OK, 3 Warning no response to last polling, 4 No response to polling

AutoLoad This Global Object will be load at next LoriotPro startup
Manager The IP address of the LoriotPro Manager master of this Global Object (used for redundancy, read redundancy of Global Object)