Skip to main content

iTop

How it works​

The Itop provider connects to your Itop server and retrieve data through the itop REST API. The data is refreshed dynamically depending on your choices. Since it gathers a lot of configurations objects from Itop, it puts them in cache. Loging out or waiting 10 hours will flush the cache.

architecture

Compatibility​

This integration is (at least) compatible with the following Itop versions:

  • 1.4
  • 1.3

Feature information​

Open ticketClose ticket (from Centreon to iTop)Handle custom fields
✓✓✘

Requirements​

You need to configure Open Tickets in order for resources (hosts and services) to receive a ticket number.

Our provider requires the following parameters:

ParameterExample of value
Address10.30.2.22/itop/web
API version1.4
Usernameadmin
Passworditop
Protocolhttps
Timeout60

Network flow​

SourceDestinationProtocol/Port
Centreon central serveriTopTCP/443 (https) or TCP/80 (http)

Account​

You need the following information:

  • iTop Address (also known as app token)
  • Username
  • Password

The aforementioned account must at least be able to open a ticket using the UserRequest class through the API operation core/create.

The connector will also try to access the following classes using the core/get opration depending on the configuration of your open ticket rule:

  • Person
  • Organization
  • Service
  • ServiceSubcategory

It will also use the core/update operation when closing a ticket from Centreon.

Some test commands that you can run from your Centreon central server are available in the Test commands section.

Retrieved data​

This open ticket connector can retrieve the following information from your iTop server:

  • Caller (Person)
  • Organization
  • Service
  • ServiceSubcategory

If you need more information regarding retrieved data from an open ticket connector, please read the retrieved data chapter from the Open Ticket global documentation.

Additional data​

This open ticket connector can also send the following information when opening a ticket:

  • Urgency
  • Impact
  • Origin

Those information are not retrieved from iTop. They are configured in your open ticket rule as custom lists.

Test commands​

The curl commands listed below must be run from your central server. You need to replace all elements between <> for example <itop_address> may be replaced with my_itop.local.

Get iTop organizations​

curl --location 'https://<itop_address>/webservice/rest.php?version=<api_version>' \
--data 'auth_user=<username>&auth_pwd=<password>&json_data={"operation":"core/get","class":"Organization","key":"SELECT Organization WHERE status=\'active\'","output_fields":"name"}'

Get iTop callers (persons)​

curl --location 'https://<itop_address>/webservice/rest.php?version=<api_version>' \
--data 'auth_user=<username>&auth_pwd=<password>&json_data={"operation":"core/get","class":"Person","key":"SELECT Person WHERE status=\'active\' AND org_id = <org_id>","output_fields":"friendlyname"}'

Get iTop services​

curl --location 'https://<itop_address>/webservice/rest.php?version=<api_version>' \
--data 'auth_user=<username>&auth_pwd=<password>&json_data={"operation":"core/get","class":"Service","key":"SELECT Service WHERE org_id = <org_id>","output_fields":"friendlyname"}'

Get iTop service subcategories​

curl --location 'https://<itop_address>/webservice/rest.php?version=<api_version>' \
--data 'auth_user=<username>&auth_pwd=<password>&json_data={"operation":"core/get","class":"Service","key":"SELECT ServiceSubcategory WHERE service_id = <service_id>","output_fields":"friendlyname"}'

Open a ticket​

Keep in mind that the data in the command below is just an example and your iTop server may ask you to add mandatory data.

curl --location 'https://<itop_address>/webservice/rest.php?version=<api_version>' \
--data 'auth_user=<username>&auth_pwd=<password>&json_data={"operation":"core/create","class":"UserRequest","output_fields":"id","comment":"Opened from Centreon","fields":{"description":"This is a test","title":"this is a test ticket"}}'

Close a ticket​

curl --location 'https://<itop_address>/webservice/rest.php?version=<api_version>' \
--data 'auth_user=<username>&auth_pwd=<password>&json_data={"operation":"core/update","class":"UserRequest","comment":"Closing ticket from Centreon","key":"<ticket_id>","fields":{"status":"closed"}}'