iTop 0.8


Administrator guide











Don’t hesitate to ask question to


Table of content


Table of content 2

About iTop. 3

Licensing. 3

Changes since 0.7.2. 4

New features. 4

Bug fixed. 5

Current limitation. 5

Installing iTop. 5

Software requirement 5

Download iTop package. 6

Install iTop. 6

iTop common usage. 10

Starting iTop. 10

Managing users. 11

Viewing Profiles. 11

Viewing users. 13

Creating a user 14

Updating user profile. 15

Managing Organization. 16

Adding an organization. 16

Updating an organization. 17

Viewing data model 18

Running Object queries. 19

Managing Audit 19

Managing Dashboard. 20

Managing DB backup. 21

Integrating with other application. 22

How to export data out of iTop. 22

How to import data in iTop. 23





About iTop

This document describes release 0.72 of iTop. iTop is a robust Open Source web 2.0 application that will help you to better support your IT. Development of iTop started in March 2006 in order to publish on the internet a completely open solution that would help enterprise to drive ITIL best practices implementation. Goal of the iTop community was to provide an alternative solution to very expensive solutions sold by standard software vendors.


At the early beginning of the project, the development team was focus on building the most complete CMDB (Configuration Management Data Base). One key objective was to make it as flexible as flexible in order to allow administrator to add and remove configuration items from the data model and manage as many relationships as they want. The development team also designed a powerful state machine that allows defining life cycle for whatever configuration items in the CMDB.


Realizing that all concepts developed within the CMDB can be applied to all other ITIL best practices, the iTop community decided to extend them to Incident Management, Change Management and Service Management modules. Then iTop became an IT operational portal that helps all IT management team to support their environment by:


Documenting IT infrastructures and their relationships (servers, application, network …)

Documenting IT incident and planned outages, as well as a known error database

Documenting all IT services and contracts with external providers


iTop application can be used by different type of profiles:


Help Desk

IT support engineers (1st level, 2nd level, 3rd level …)

IT service managers

IT managers


iTop application is relying on Apache, MySQL and PHP, so it can run on whatever operating system supporting those applications. It had been tested already on Windows, Linux Debian and Redhat. As it is a web based application you don’t need to install client on user PC. A simple web browser is enough to use it.







iTop is licensed under the terms of the GNU General Public License Version 3 as published by the

Free Software Foundation. This gives you legal permission to copy, distribute and/or modify iTop under certain conditions. Read the ’license.txt’ file in the iTop distribution.



Changes since 0.7.2

Goal of this release was to make the application more robust and more professional. To achieve these goals we developed new features that are mandatory for such application and we fixed a large number of bugs. Just remember that some of the improvement depends on the new data model provided with release 0.8. So if you keep former one, you may have some bugs not fixed. We also underline the fact that the new data model is not compatible with the one you currently have. So we recommend you to check “Migration” chapter in Administrator guide to use the best practice to migrate.


New features

We improve a lot the management of user. Now, the application allows you to create, update or delete users. In this process, administrator can assign one or several profiles to a given user. This feature is fundamental to define roles and responsibilities within your company.


With release 0.8 mandatory fields for a given object are now controlled, so the users are forced to update those fields before committing there changes. Mandatory fields are controlled in the data model either when defining the attribute, or in the state machine when we move from one state to another.


We improve also the way we manage N/N relationships in the UI. Now users can add, update or remove relationships via an easy to use wizard that help them to search objects they would like to link together. This feature decreases significantly time to create relationships between objects and so improve productivity.


In order to make iTop useful without any customization, we improve the data model. We change object lifecycles to make them more reliable, and we add new type of object:

·         Subnet, for which we compute automatically IP used and IP free.

·         Service calls helping your company to track all end user requests.

·         Services that allow you to document all services an organization is providing.


We also improve significantly change tracking for each object in order to make it easier to read in UI when users check what had been modified for a given item.


Deletion of devices had been improved, in order to guarantee consistency of the database. Now, when a user wants to delete an object, the application is checking relationships with other objects. This object won’t be removed if it is linked to another object via a 1/n relationship. For instance the application won’t delete a server if there is network interfaces or applications still documented for it.


Last but not least, we improve iTop architecture to improve performance of queries in the MySql database, and so display more quickly data in UI.

Bug fixed

All our bugs are track on sourceforge: This current release is fixing 11 critical bugs:


            #4 PHP class name vs class label

            #25 Loosing impacted infrastructure in tickets

            #26 Organization silo not working for Incident/Change and Services

            #28 Import CSV failing

            #30 Run queries example is failing

            #32 Strange error when executing some action.

            #33 OQL: Failing to interpret a JOIN

            #36 Setup fails if "short_open_tag" is not enabled

            #37 deprecated function 'session_is_registered' in PHP 5.3.0

            #38 Content of Tabs not displayed on Reload

            #39 Setup does not work when installed on IIS


Current limitation

Release 0.8 is not supporting:

·         Creation of new user profile.

·         Delete all functionality for a list of object

·         Cloning an existing device. This feature had been de-activated for the moment as it was not working properly.

·         Update all for n/n relationships

·         A life cycle is not defined for all CI, only for servers, service calls, incident tickets, change tickets, services, and contracts.


Installing iTop


Software requirement

iTop is based on the AMP (Apache / MySQL / PHP) platform and requires PHP 5.2 and

MySQL 5.


Getting required software on Debian:


Apt-get install apache

Apt-get install mysql

Apt-get install php


Getting required software on Redhat:


Yum install apache

Yum install mysql

Yum install php


Download iTop package

Latest version of iTop is release 0.72. You can download it on source forge:




You can also browse source forge web site to view all release:


Install iTop

  1. Make sure that you have a properly configured instance of Apache/PHP running
  2. Unpack the files contained in the zipped package in a directory served by your web server.
  3. Point your web browser to the URL corresponding to the directory were the files have been unpackaged and follow the indications on the screen.


For instance http://myserver, or http://myserver/itop/ if you have created a dedicated alias for iTop application



As a matter of fact, iTop package provides a step by step wizard to install the application.


First step is checking all prerequisites for MySQL and PHP, and lets you enter information to access the MySQL database (server, user and password). MySQL user needs to have root privileges.

The data base can be installed either on the same server or can be a remote host if you prefer to have a two tier architecture, or reuse an already installed instance of MySQL.



Figure 1



Second step lets you create the database for iTop. You can either choose an existing one, or create a new one.

You can also decide to prefix all iTop tables with a given name. This is useful when you want to run several instances of iTop with the same data base.



Figure 2


Third step lets you define administrator login for accessing the application. Don’t forget user login and password, as they are required to access the application.



Figure 3



Forth step lets you decide if you want to create sample data for testing purposes. This is very useful first time you install iTop. If you select “No”, database will be empty and you will have to load data by yourself.



Figure 4



Congratulation, installation is successful and you just have to play with iTop now !



Figure 5




Migrating from previous version 0.71 or 0.72

The release 0.8 data model is not compatible with former one. So you may encounter inconsistency issue between this one and your current database.

In order to migrate, you have two options:

·         Either you keep your current data model and so won’t get benefits from new one.

·         Or you export your current data in csv files, in order to re-import them later in your new installation of release 0.8


Keeping 0.71 or 0.72 data model.

If you choose this option, just unpack from tar installation all directories except “business” at the root of your previous installation.


Exporting & re-importing data

If you choose this option, you have to use export function for each type of objects, in order to save your data in csv files. Once done, you can install new release 0.8 using a new database. Once done, you can re-import you object using “csv import” functionality. Be careful, you need to make sure that attributes for your objects are still valid, and you need also to check pre defined values are still the same for enumerated list. For that compare former data model with new one for each type of object. For this, you should look at “viewing data model” chapter in this documentation.

In case you encounter issues, you can ask support at

iTop common usage


Starting iTop

To use iTop, you just need a simple web browser and enter the following URL:

http://yourserver or http://yourserver/<itop alias> if you have created a particular apache alias for the application.


User is prompt to enter his login and password.



Figure 6


Depending on its profile, the user has more or right to use the application, but this topic will be discussed later in “User Management” chapter.

Once authenticated, the user accesses the main iTop page.



Figure 7


This main page is divided in three parts:


·         Left menu (also called explorer menu)  to access item from each module (CMDB, Incidents, Changes, Services and contracts)

·         Main frame on the right displays list of items from selected module, or details for a given item.

·         Top frame to use global search function, and display login information



Managing users

ITop provides a user management module allowing you to assign users with one or several predefined profiles. Thus you can restrict access to you operational portal, and allow user to modify only objects they are allowed to. You can also define action they are allowed to perform. For instance, a change approver is not allowed to create a change, but just approves it.


In the current version, profiles are predefined, so their modification requires assistance of an iTop consultant.


Viewing Profiles

Under “Admin Tools” menu you can use profile sub-menu to access those profiles, and see corresponding responsibilities. Following window appears:



Figure 8


When you click on  button you get details for selected profile.



Figure 9


The tab “Users” list all users having this profile.

The tab “Grant matrix” displays all objects and actions allowed for this profile.



Figure 10



Viewing users

The menu “User logins” under “Admin Tools” one, allows you to see all logins defined for you iTop instance.



Figure 11


When you click on  button you get details for selected login.



Figure 12


A user login is always linked to a contact stored in the CMDB (See Using CMDB module in iTop user guide). Prior to create a login you have to make sure that the user is documented as a contact in the CMDB.


The tab “Profiles” list all profiles that are linked to this user.

The tab “Grants matrix” display rights allowed for this user. It is the merge of all rights corresponding to associated profiles.



Figure 13


Creating a user

To create a new user you just have to click on “New” in action drop down list, from either user list or a given user detail. Following wizard then appears:


Figure 14


To add profiles to this user you can either fill the profiles field if you know the profile and click on , or click on button . In the second case, you will use following wizard to select profiles you want to assign to user



Figure 15


Once profiles are added to the user, click on . A confirmation window appears. Click on  to validate creation of this new user.


Updating user profile

You can add or remove permissions to a user by managing profiles he is linked to. Use  button on top right corner of a list of profiles assigned to a user. Use “Add” to add a new profile, or “Manage” to modify or remove one.

When you click on “Manage”, following wizard appear:



Figure 16

You can change the reason why the user has this profile, or Remove this profile. Be careful, make sure the user has at least one profile.


If you click on “Add profiles”, following wizard appears. It is the same has the one you get when you click on “Add” in  button list.



Figure 17


Use the  button to look for profiles, select the ones you want to assign to user, and click on . Profiles are then assigned to user.


Managing Organization

Organizations are used in iTop to group object into silos. Only administrators can add or remove organizations.


Adding an organization

To add an organization, you have to click on “Universal search” menu. It displays the  list of existing organization.



Figure 18

Then click on  and select New. You just have then to fill following form



Updating an organization

To add an organization, you have to click on “Universal search” menu. It displays the  list of existing organization.



Figure 18

Click on  to see details for selected organization. You can then click on  and Modify to change values for organization’s attributes.


Viewing data model

You can view current data model used by iTop application by clicking on menu “Data Model”. Following tree explorer allows you to navigate through each class of object.





When you click on object link, you get details for a given class.




“Attributes” tab displays all attributes for this class.

“Search criteria” tab displays all attributes you can use in search engine.

“Referencing classes” tab displays classes having a reference to current one.

“Related classes” tab displays classes related to this one via external key.

“Lifecycle” tab displays lifecycle workflow graph and information.

Running Object queries







Managing Audit


In the current version Audits are managed directly in the database, so it is recommended to ask an iTop consultant to configure them on your behalf.

Rules are stored in priv_auditrule and priv_auditcategory tables.

The table priv_auditcategory defines rule categories. A rule category defines list of objects that are concerned by associated rules. For instance all devices that are on production.

The table priv_auditrule defines the rule that need to be check for a given category. For instance “We don’t want to have devices on production located on a Site in implementation”.


You need to make sure that for a given audit category, rules applies for a same class of object. For instance, you cannot have an audit category applicable for devices, that check rules on sites.



Managing Dashboard

Dashboards are defined as web page stored in the iTop database. In version 0.8 there is no UI to edit them. So for adding new graphics you have to edit manually databse.

They are linked to menu definition which is stored in table priv_menunode . Only 4 menus are linked to dashboard:

·         Configuration Management

·         Incident Management

·         Change Management

·         Service Management

Thus only those menus can be modified, else you may break behavior of iTop application.


Dashboards are in fact html tables containing itopblocks. So if you need to add new graphics you just have to add a new cell in the table containing an itopblock.


An itopblock is the combination of an OQL query, a grouping criteria and a type of graphic. There are 3 types of itopblock:


Syntax for an itopblock:


<itopblock BlockClass="DisplayBlock" objectclass="class of object" type="type of graphics" parameters="parameters for graphic" asynchronous="false" encoding="text/oql">OQL query</itopblock>


Class of object corresponds to type of object your are interested in data model (bizIncidentTicket, bizServer …)


Type of graphics corresponds to the way you want to display results: count for table or open_flash_chart for graphics.


Parameters for graphic correspond to information for defining a graph:


OQL is the query that list of object we would like to include in this dashboard. See OQL reference guide for more details


Following is an example of menu definition for “Incident Management” menu:



.dashboard {



border:1px solid #000;






<p style="text-align:left; font-family:Verdana, Arial, sans-serif; font-size:24px;">Incidents Overview</p>

<table border="0" padding="5">


<td class="dashboard">

<itopblock BlockClass="DisplayBlock" objectclass="bizIncidentTicket" type="open_flash_chart" parameters="chart_type:pie;group_by:type;chart_title:Incidents by Type" asynchronous="false" encoding="text/oql">SELECT bizIncidentTicket</itopblock>


<td class="dashboard">

<itopblock BlockClass="DisplayBlock" objectclass="bizIncidentTicket" type="open_flash_chart" parameters="chart_type:bars;group_by:ticket_status;chart_title:Incidents by status" asynchronous="false" encoding="text/oql">SELECT bizIncidentTicket</itopblock>



<td class="dashboard">

<p style="text-align:left; font-family:Verdana, Arial, sans-serif; font-size:16px;">Incidents by Workgroup</p>

<itopblock BlockClass="DisplayBlock" objectclass="bizIncidentTicket" type="count" parameters="group_by:workgroup_name" asynchronous="false" encoding="text/sibusql">bizIncidentTicket</itopblock>


<td class="dashboard">

<p style="text-align:left; font-family:Verdana, Arial, sans-serif; font-size:16px;">Incidents not yet assigned</p>

<itopblock BlockClass="DisplayBlock" objectclass="bizIncidentTicket" type="list" parameters="dashboard:true" asynchronous="false" encoding="text/sibusql">bizIncidentTicket: ticket_status = 'New'</itopblock>





Managing DB backup

All iTop data are stored in MySql database. So we recommend you to set up backup policy for your database.

You can use for instance phpMyAdmin to do so.

We recommend you to do it frequently in order to not loose data modified by iTop users.

Integrating with other application

How to export data out of iTop

A set of objects can be exported by the mean of a web service (could be scripted)

Simply call /pages/export.php?format=xml&expression=OQL

(format=csv is also available)


Using wget, this would give the following command line:

wget --header="Content-Type:application/x-www-form-urlencoded" --post-file=./login.txt -O "export.txt" http://<server>/webservices/export.php?format=csv&expression=...


Option –O return result in file export.txt


Format for file login.txt should be:


operation=login&auth_user=<your user>&auth_pwd=<your password>&foo=1


The set of objects to be exported is defined in an OQL query.

OQL stands for Object Query Language. The OQL syntax is very close to the SQL.

The main differences between SQL and OQL are:


 * No FROM clause: an OQL query always return a set of objects of a given class

   and the user will never specify the expected columns, because the OQL

   interpreter retreives this information from the Data Model.


 * JOINS: simply specify "JOIN" and the interpreter will determine for you if an

   INNER JOIN or an OUTER JOIN should be performed, based on the definitions of

   the Data Model.


OQL Examples:


Get all the contacts

SELECT bizContact


Get all the persons (note that a person is contact also, but it has more

attributes to be exported: first_name and employee_number)


SELECT bizPerson


Get the WAN circuits provided by "Foo Telecom"


SELECT bizCircuit JOIN bizOrganization ON bizCircuit.provider_id =

WHERE = 'Foo Telecom'


Get the WAN circuits providers


SELECT bizOrganization JOIN bizCircuit

ON bizCircuit.provider_id =


(In this example we have just inverted bizCircuit and bizOrganization ; yes the order matters, the first class specified is the expected class)


How to import data in iTop

A web service allows you to write a script to enter new data, or refresh existing

data. This can be helpful for the initial load or to schedule a daily synchronization

of the data coming from an external data source - could be another application,

an automated data collector, etc.




Note that this service emulates the functionality provided by the interactive

bulk load: /pages/import.php


csvdata must be posted, the first line will contain the codes of the attributes

to load, the first column is always used as the reconciliation key

- should be unique, as it determines if the object needs to be updated or created)

If not specified, the separator defaults to ';'


The answer is given in a simple html format, explaining what has been done for each row of data.



A script that creates a company called "Food and Drug Administration" (code FDA).


wget --header="Content-Type:application/x-www-form-urlencoded" --post-file=data.txt http://<yourserver:port>/webservices/import.php?class=bizOrganization


with: data.txt containing the following text



Food and Drug Administration;FDA