iTop 0.8
Administrator guide
Don’t hesitate to ask question
to support@combodo.com
Integrating with other application
How to export data out of 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.
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:
#4 PHP class
name vs class label
#25 Loosing impacted infrastructure in
tickets
#26 Organization silo not working for
Incident/Change and Services
#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
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
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
Latest
version of iTop is release 0.72. You can download it on source forge:
wget http://sourceforge.net/projects/itop/files/itop/0.7.2/iTop-V0.7.2.zip/download
You can
also browse source forge web site to view all release:
http://sourceforge.net/projects/itop/files/
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
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 support@combodo.com
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
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:
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
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
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.
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.
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.
Figure 18
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.
Figure 18
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.
Figure
When you
click on object link, you get details for a given class.
Figure
“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.
Figure
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:
<style>
.dashboard {
vertical-align:top;
width:50%;
border:1px solid #000;
-moz-border-radius:10px;
padding:5px;
text-align:center;
}
</style>
<p
style="text-align:left; font-family:Verdana, Arial, sans-serif; font-size:24px;">Incidents
Overview</p>
<table border="0"
padding="5">
<tr>
<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>
<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>
</tr><tr>
<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>
<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>
</td>
</tr>
</table>
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.
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 = 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.
/webservices/import.php?class=bizOrganization&csvdata=<multine-csv>[&separator=<char>]
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.
Example:
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
auth_user=<username>&auth_pwd=<pwd>&operation=login&csvdata=name;code
Food and
Drug Administration;FDA
Combodo;CBD