Don’t hesitate to ask question
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:
IT support engineers (1st level, 2nd level, 3rd level …)
IT service 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.
iTop is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE WARRANTY OF DESIGN, MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.
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.
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.
All our bugs are track on sourceforge: http://sourceforge.net/apps/trac/itop/report/1. This current release is fixing 11 critical bugs:
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.
iTop is based on the AMP (Apache / MySQL / PHP) platform and requires PHP 5.2 and
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
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:
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.
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.
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.
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.
Congratulation, installation is successful and you just have to play with iTop now !
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
If you choose this option, just unpack from tar installation all directories except “business” at the root of your previous installation.
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 email@example.com
To use iTop, you just need a simple web browser and enter the following URL:
User is prompt to enter his login and password.
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.
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
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.
Under “Admin Tools” menu you can use profile sub-menu to access those profiles, and see corresponding responsibilities. Following window appears:
When you click on button you get details for selected profile.
The tab “Users” list all users having this profile.
The tab “Grant matrix” displays all objects and actions allowed for this profile.
The menu “User logins” under “Admin Tools” one, allows you to see all logins defined for you iTop instance.
When you click on button you get details for selected login.
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.
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:
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
Once profiles are added to the user, click on . A confirmation window appears. Click on to validate creation of this new user.
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:
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.
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.
Organizations are used in iTop to group object into silos. Only administrators can add or remove organizations.
To add an organization, you have to click on “Universal search” menu. It displays the list of existing organization.
Then click on and select New. You just have then to fill following form
To add an organization, you have to click on “Universal search” menu. It displays the list of existing organization.
Click on to see details for selected organization. You can then click on and Modify to change values for organization’s attributes.
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.
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.
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:
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.
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.
Get all the contacts
Get all the persons (note that a person is contact also, but it has more
attributes to be exported: first_name and employee_number)
Get the WAN circuits provided by "Foo Telecom"
SELECT bizCircuit JOIN bizOrganization ON bizCircuit.provider_id = bizOrganization.id
WHERE bizOrganization.name = 'Foo Telecom'
Get the WAN circuits providers
SELECT bizOrganization JOIN bizCircuit
ON bizCircuit.provider_id = bizOrganization.id
(In this example we have just inverted bizCircuit and bizOrganization ; yes the order matters, the first class specified is the expected class)
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