From the left Menu bar select Setup and then choose Authentication from the options.
A screen will appear which will allow you to update the Setup Authentication (i.e. where the information for your usernames and passwords come from). Users can either be entered manually using the Setup or a directory can be used.
Fill out the required fields and select Save Settings. If you would like to confirm that the details entered are valid, select Test Authentication
In the Setup under Options you can edit the GMT_TIME_OFFSET option and set it to your time zone. The value entered is either 0 for GMT or a + or - number indicating the number of hours ahead or behind GMT. For instance +10 is ten hours ahead of GMT for Australian Eastern time
In addition the TIMEZONE_CITY option may be set. If set daylight savings times will be taken into consideration.
Option | Example Value |
TIMEZONE_CITY | Australia/Brisbane |
Business hours should be set as follows and stored in JSON format.
Option | Example Value |
BUSINESS_HOURS | {"Mon":"09:00-17:00","Tue":"09:00-17:00","Wed":"09:00-17:00","Thu":"09:00-17:00","Fri":"09:00-17:00"} |
Currency and start of year financial options are configured using the following two options:
Option | Example Value |
CURRENCY_SYMBOL | $ |
START_OF_FINANCIAL_YEAR | 01-01 |
SALARY_CPI_MULTIPLIER | 1.04 |
The START_OF_FINANCIAL_YEAR option is of the format day-month, i.e. 01-01 is the 1st of January. 01-07 means the start of the financial year is the 1st of July. Do not include the year.
The SALARY_CPI_MULTIPLIER option is used when calculating salaries in future years. Salaries for next year are calculated to this year"s cost multiplied by this value, so 1.04 is a 4% annual increase.
To enable self-serve registration the option ALLOW_SELF_REGISTER needs to be set to yes.
Option | Example Value |
ALLOW_SELF_REGISTER | yes |
To change the portal colours enter the desired colours in the fields and click save. When the primary colour is changed ServiceView will automaticall calulate lighter and darker colours. These can be overwritten if desired by entering new values.
If you are running more than one instance of ServiceView you may wish to distinguish between them by adding text on the header of the portal, such as Development ServiceView
To achieve this use an environment variable in the apache virtual hosts file.
SetEnv HEADER_MSG "Development ServiceView"
ServiceView uses options to store standard meial text. Set these to the desired values.
Set the option 'CRON_DR_PLAN_MESSAGE' to the desired value.
Sample value:
<p style="margin-top:10px;margin-bottom:10px;">Dear Stakeholder,</p> <p style="margin-bottom:10px;">Please find attached the latest copy of the SV IT service restoration plan. Please review the plan for accuracy and either make the necessary changes directly in ServiceView at <a href="http://serviceview.its.sv.edu.au">serviceview.its.sv.edu.au</a> or send an email to <a href="mailto:serviceview@sv.edu.au">serviceview@sv.edu.au</a> with notification of errors.</p> <p style="margin-bottom:10px;">In order to be properly prepared in the event of a disaster we suggest you download the attached service restoration plan to your laptop or ipad.</p> <p style="margin-bottom:10px;">Best regards,</p> <p>ServiceView team<br> http://serviceview.its.sv.edu.au<br> serviceview@sv.edu.au</p>
The following options are used to compose the service status emails:
SERVICE_STATUS_LINK | The link to the service status page entry for this service status event. e.g. http://www.<serviceview_url>/?incident_id= The event_id will be automatically appended to the link when the email is composed. |
SERVICE_STATUS_FROM_NAME | The name the email is sent from. e.g. ITS Service Status |
SERVICE_STATUS_SEND_ALL_EMAILS_TO | The distribution list name to send service status emails to. |
SERVICE_STATUS_TO_EMAIL | The email address service status emails will be sent to. Other recipients will be BCC included so as to not disclose their identities. |
SERVICE_STATUS_FROM_EMAIL | The email address emails will be send from, and where replies and bounces will go to. |
SERVICE_STATUS_SIGNOFF_TEXT | The signoff text of service status emails. |
Data is populated into the ServiceView database using agents. An agent is a script, usually running daily on the service infrastructure, collecting the data and then posting it to ServiceView. Agents can be written in any language as long as they are able to perform HTTP GET requests.
Agents an be used to inject metric data,calendar envents and equipement
The HTTP address used to send metric data for a given service is made up of:
http://<serviceview_url>/record.php?service=&metric=<metricname>&date=<date>&secret=<secret>&value=<value>&accumulate=0
Parameters are as follows:
<servicecode> | The unique code associated with each service entered from the add or edit service dialog. See adding services section. |
<metricname> | The name of the metric this data is for. See adding metrics section. |
<date> | The date the value applies to in either YYYY-MM-DD or DD-MM-YYYY. For example 31-01-2012. Note Historic data can be entered by specifying dates in the past. |
<secret> | The value of the SECRET |
<value> | The actual value of the data. For instance 98.7 for 98.7 percent. Note do not include the % symbol or units. |
<accumulate> | This parameter can be set to keep a running total for this metric rather than sending a total. For instance to record the number of password changes a day include accumulate=1 and submit the URL every time a password is changed. ServiceView will add up the total for the day. If accumulate is not passed or set to 0 each submission will overwrite the previous value. |
The HTTP request can either be sent using a HTTP GET or POST request.
The URL to use for each metric can be obtained on the services page under the reports tab. On the right side of each metric three icons, the first is the URL to inject data.
If the metric or service hasn't been added do that first. See sections on adding services and metrics.
Perl Example
#!/usr/bin/perl use LWP::Simple; use CGI; $url = 'http://serviceview.its.uq.edu.au/record.php ?service=' . CGI::escape($service) . '&metric=' . CGI::escape($metric) . '&date=' . CGI::escape($date) . '&secret=. '&value=' . $value; $result = get($url); if ($result !~ /SUCCESS/) { print "Cannot post to ServiceView: ".$result; }
Calendar events can be injected into the ServiceView database using an HTTP POST comprising:
http://<serviceview_url>/event.php?service=<servicecode>&start=<start>&end=<end>&title=<title>&description=<description>&service_availability =<service_availability>&event_group_name =<event_group_name>&secret=<secret>
Parameters are as follows:
<servicecode> | The unique code associated with each service entered from the add or edit service dialog. See adding services section |
<start> | Date and time event started |
<end> | Date and time event ended |
<title> | The event title |
<description> | The event description |
<service_availability> | Service availability code, possible values are: |
Service was not available | |
Service was reduced or impaired | |
No impact on the service | |
<event_group_name> | The name of the event group this event falls into as seen in the event group setup. See section on setting up event groups. |
<secret> | The value of SECRET |
The HTTP request can either be sent using a HTTP GET or POST request. Given the description section may be long, a HTTP POST is recommended
PHP Example
$fields = "secret=<secret>&service=<servicecode>&start=<start>&end=<end>&title=<title> &description=<description>&service_availability=3&event_group_name=For+Information"; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL,"http://<serviceview_url>/event.php"); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $fields); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $response = curl_exec ($ch); curl_close ($ch);
PHP Example SSL Port 443
$fields = "secret=<secret>&service=<servicecode>&start=<start>&end=<end>&title=<title> &description=<description>&service_availability=3&event_group_name=For+Information"; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL,"https://<serviceview_url>/event.php"); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_PORT , 443); curl_setopt($ch, CURLOPT_POSTFIELDS, $fields); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); $response = curl_exec ($ch); curl_close ($ch);
Equipment discovery can be achievedby placing agents on the servers or desktops. Agents send HTTP(S) signals to the equipment.php API
http://<serviceview_url>/equipment.php?name=<name>&manufacturer=<manufacturer>&model=<model>&virtual=<virtual>&use=<use>&operating_system=<operating_system>&series_number=<serial_number>&asset_tag=<asset_tag>&service_code=<service_code>&data_center=<data_center>&rack=<rack>&rack_position=<rack_position>&secret=<secret>
Parameters are as follows:
<name> | The name of the server or desktop. This must be unique. |
<manufacturer>* | The manufacturer of the server or desktop. |
<model>* | The model of the server or desktop |
<virtual>* | Is the equipment virtual? Value can be: V for virtual or P for physical. |
<use>* | Equipment use. Free text. For instance 'Production web server'. |
<operating_system>* | The operating system of thre equipment, i.e. RHEL6 |
<serial_number>* | The serial number of the server or desktop. |
<asset_tag>* | The asset tag of the server or desktop. |
<servicecode>* | The unique code associated with each service entered from the add or edit service dialog. See adding services section. |
<data_center>* | The data center the equipment is in. |
<rack>* | Rack name the equipment is in. |
<rack_position>* | Position in rack (must be a number). |
<secret> | The value of the SECRET. |
* Optional parameter
The HTTP request can either be sent using a HTTP GET or POST request.
PHP Example
$fields ="name=<name>&manufacturer=<manufacturer>&model=<model>&virtual=<virtual>&use=<use>&operating_system=<operating_system>&series_number=<serial_number>&asset_tag=<asset_tag>&service_code=<service_code>&data_center=<data_center>&rack=<rack>&rack_position=<rack_position>&secret=<secret>"; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL,"http://<serviceview_url>/equipment.php"); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $fields); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $response = curl_exec ($ch); curl_close ($ch);
PHP Example SSL Port 443
$ fields ="name=<name>&manufacturer=<manufacturer>&model=<model>&virtual=<virtual>&use=<use> &operating_system=<operating_system>&series_number=<serial_number>&asset_tag=<asset_tag>&service_code=<service_code>&data_center=<data_center>&rack=<rack>&rack_position=<rack_position>&secret=<secret>"; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL,"https://<serviceview_url>/equipment.php"); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_PORT , 443); curl_setopt($ch, CURLOPT_POSTFIELDS, $fields); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); $response = curl_exec ($ch); curl_close ($ch);
In order to synchronise services and equipment between different systems it may be useful to use this set of APIs.
Servies in ServiceView fall into many categories, some of which would include equipment and some wouldn't.
API to retrieve a list of all services or a subset dependent of search criteria passed to it.
http://<serviceview_url>/get_services.php?service_code=<service_code>&property_code =<property_code>&full=1&equipment=1&secret=<secret>
Parameters are as follows:
<service_code>* | Only retrieve data on the one service matchin this service code. |
<property_code>* | Only retrieve data on the services with this property. |
<full>* | Include full details in return, if not specified just the service name and code a returned. |
<equipment>* | Include equipement details in return. |
<secet>* | The value of the SECRET. |
* Optional parameter
Return Data
A JSON encoded array is returned:
If <full> is not specified the following fields are returned
service_code | Internal service reference |
service_name | Service name |
service_group_name | Name of service group |
If <full> is specified the following fields are returned
service_code | Internal service reference |
service_name | Service name |
service_group_name | Name of service group |
PHP Example
$fields = "secret=<secret>&service=<servicecode>&start=<start>&end=<end>&title=<title> &description=<description>&servicevavailability=3&event_group_name=For+Information"; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL,"http://<serviceview_url>/event.php"); curl_setopt($ch, CURLOPT_POST, 1); curlvsetopt($ch, CURLOPT_POSTFIELDS, $fields); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $response = curl_exec ($ch); curl_close ($ch);
Calendar events also known as service status events can be exported from the ServiceView system to use on a service status website.
The following APIs are available:
The main feed for the service status website, returns upcoming service events as well as current and recent ones.
http://<serviceview_url>/index.php?AP=service_ap&ACT=ajax_get_events
Parameters are as follows:
<service_id>* | Specify the ID of the service. Omitting this parameter will return eents for all services. |
<public_fg>* | Set to yes to only show public events. |
<from_dt>* | Date to show events from, format YYYY-MM-DD |
<show_after_date>* | If set to yes events after <from_dt> will be returned, otherwise events up to <from_dt> will be returned. |
<dt>* | Only show events on this date, format YYYY-MM-DD |
<page>* | The events can be paginated using the <page> and <num_per_page> parameters, otherwise 100 events are returned if not specified. |
<num_per_page>* | Number of events to return in each page. See <page> |
<secret> | The value of the SECRET. |
* Optional Paramter
The HTTP request can either be sent using a HTTP GET or POST request.
Return Data
Data is returned JSON encoded in a format suitable for the Datatabales jQuery plugin but can be used for other purposes:
sEcho | Used internally by Datatables |
iTotalRecord | Used internally by Datatables |
iTotalDisplayRecords | Used internally by Datatables |
aaData | The returned data with the following fields: |
event_id | ID of event used when subscribing to events. |
service_name | Service name |
description | Event description |
service_availability_cd | Code indicating whether service was available during the event: |
Service NOT available during period | |
Reduced service delivery during period | |
No impact on service during period | |
event_group_id | Internal reference to type of event: Unscheduled Outage, Unscheduled Service Reduction, Scheduled Service Maintenance, Scheduled Service Outage, For Information |
start_dt | Date & time event started |
end_dt | Date & time event finished |
service_id | Internal reference of affcted service |
event_status_id | Current status of event: Open event, Resolved event |
event_name | Event title |
public_fg | If event public or internal only, set to yes for public |
event_group_name | Type of event |
API to display the current status of each service for use with service status LEDs
http://<serviceview_url>/index.php?AP=service_ap&ACT= ajax_list_public_service_status
Parameters are as follows:
<future_hours> | The number represents the number of hours to look ahead by for reporting showing future planned outages for services. |
<secret> | The value of the SECRET. |
Return Data
service_group_id | The returned data with the following fields: |
service_id | ID of the service. |
service_name | Service name. |
service_group_name | Service category or group name. |
service_description | Description of service. |
status | Current status containing: |
color | Color for LED light |
Red - outage | |
Orange - Service reduction | |
Yellow - Upcoming outage | |
Green - Service okay | |
comment | Comment for status. i.e. Outage in 5 hours. |
event_id | The even_id causing the non green status. |
event_name | The name of the event. |
http://<serviceview_url>/index.php?AP=service_ap&ACT=ajax_get_event
Parameters are as follows:
<event_id> | ID of the event. This paramter is returned from the step 1 API. |
<public_fg> | Set to yes to only show public events. |
<secret> | The value of the SECRET. |
The HTTP request can either be sent using HTTP GET or POST request.
Return Data
event_details | The returned data with the following fields: |
event_id | ID of event used when subscribing to events. |
service_id | Service ID. |
event_status_id | Current status of event: Open event, Resolved event. |
Service_name | Service name. |
description | Event description. |
service_availability_cd | Code indicating whether service was available during the event: |
Service NOT available during period. | |
Reduced service delivery during period. | |
No impact on service during period. | |
service_availability | Textual representation of above code. |
event_group_id | Internal reference to type of event. |
event_group_name | Type of event. |
start_dt | Date & time event started. |
end_dt | Date & time event finished. |
event_name | Title or name of event. |
event_status_id | Event title. |
public_fg | If event public or internal only, set to yes for public type of event. |
event_annotations | Multiple fields containing upfates and the event resolution. |
event_annotation_id | Unique ID for this annotation. |
event_id | Event ID. |
status_cd | Status of this annotation (Resolution or Update). |
person_id | Internal reference to the engineer who made the update. |
visibility_cd | Should the annotation be Public or Internal only. |
resolution_fg | Set to Y in this annotation as the event resolution. |
annotation_dt | Date & time of annotation. |
annotation | Text of annotation. |
http://<serviceview_url>/index.php?AP=event_ap&ACT= subscribe_to_event
Parameters are as follows:
<event_id> | ID of the event. This parameter is returned from the step 1 API. |
<name> | Name of person to subscribe to event. |
<username> | Username of person to subscribe to event. |
<email> | Email of person to subscribe to event. |
<mobile> | Mobile number of person to subscribe to event. |
<alert> | Alert type, either ,email, or ,sms, |
<secret> | The value of the SECRET. |
The HTTP request can either be sent using a HTTP GET or POST request.
Return JSON encode:
<error> | 0 for success, 1 for failure. |
<error_text> | Error text. |
<subscribed> | Contains, Already Subscribed, if person is already subscribed to event. |
http://<serviceview_url>/index.php?AP=event_ap&ACT=is_subscribe_to_event
Parameters are as follows:
<event_id> | ID of the event. This parameter is returned from the step 1 API. |
<name> | Name of person ot subscribe to event. |
<username> | Username of person to subscribe to event. |
<secret> | The value of the SECRET. |
The HTTP request can either be sent using HTTP GET or POST request
Return JSON encode:
<error> | 0 for success, 1 for failure. |
<error_text> | Error text. |
<subscribed> | Contains: Yes, if person is already subscribed to event, otherwise ,No. |
<service_id> or <service> | Specify the ID of the service using <service_id> or if that is not set use the service code specified in <service>. |
<start_dt>* | Date to show events from, format YYYY-MM-DD. |
<end_dt>* | Date to show events from, format YYYY-MM-DD. |
<secret> | The value of the SECRET. |
The HTTP request can either be sent using a HTTP GET or POST request
Return Data
Data is returned JSON encoded in the following format:
service_id | ID of service. |
start_dt | Period start date passed into API. |
end_dt | Period end date passed into API. |
period_secs | Total number of seconds in period. |
total_outage_secs | Total number of seconds service was nor available in the period, includes scheduled and unscheduled outages. |
total_available_percent | Percentage service was available in period, includes scheduled and unscheduled outages. |
available_percent_not_including_scheduled_outages | Percentage service was available in period, not including scheduled maintenance. |
scheduled_outage_secs | Seconds in period service was down for scheduled maintenance. |
scheduled_events | See all scheduled events. |
unscheduled_outage_secs | Seconds in period service was down due to unscheduled outages. |
unscheduled_events | See all unscheduled events. |
all_events[] | |
event_id | ID of event used when subscribing to events. |
service_name | Service name. |
description | Event description. |
service_availability_cd | Code indicating whether service was available during the event: |
Service NOT available during period. | |
Reduced service delivery during period. | |
No impact on service during period. | |
event_group_id | Internal reference to type of event: |
Unscheduled Outage. | |
Unscheduled Service Reduction. | |
Scheduled Service Maintenance. | |
Scheduled Service Outage. | |
For information. | |
start_dt | Date & time event started. |
end_dt | Date & time event finished. |
service_id | Internal reference of affected service. |
name | Event title. |
public_fg | If event public or internal only, set to yes for public. |
event_type | Type of event. |
ServiceView can be configured to look up unknown people in Active Directory or LDAP.
Administrators need to configure the following options:
LDAP_PERSON_SEARCH_FILTER | (&(&(cn=*%TERM%*)(employeetype=staff))(ou=*)) |
LDAP_PERSON_SEARCH_MIN_CHARS | 6 - Number of characters typed before lookup is performed |
LDAP_PERSON_SEARCH_NAME_ATTRIBUTE | cn |
LDAP_TYPE | LDAP or AD |
LDAP_HOST | <ldap host> |
LDAP_PERSON_SEARCH_DEPARTMENT_ATTRIBUTE | ou |
LDAP_BASE_DN | <base dn> |
LDAP_PERSON_SEARCH_REF_ATTRIBUTE | uid |
LDAP_AUTH_USER | <ldap connect username> |
LDAP_AUTH_PASSWORD | <ldap connect password> |
LDAP_LOOKUP_UNKNOWN_PEOPLE | Yes or No |
Administrators can make the job of populating the ServiceView system much simpler using an Excel export and import process.
Under the Setup menu click on Download Spreadsheet to take a copy of the ServieView setup and download in a multi tabbed spreadsheet.
The spreadsheet contains the following tabs:
Note: Greyed out columns contain internal references and should not be changed.
The service tab contains information about service, service group and service dependencies.
Service ID | The internal reference for this service. Do not make changes to this unless you know what you are doing. If you remove this the import process will create a new service. |
Group | Service Group of the service. Changing this value will creat a new service group in the import. |
Service | The service name. |
Budget Owner | The person who owns the budget for this service. |
Business Owner | The business owner for this service. |
Technical Owner | The technical owner for this service. |
Description | The service description. |
Service Code | The unique code for this service used by agents. |
Supported Hours | Free text field of supported hours. |
In Service Catalogue | Does service appear in the service catalogue? Possible values are: Yes or No. |
Service Dependencies | The dependencies for this service using internal references. The formast is groups of 3 numbers separatede by the | symbol. The 3 numbers are separated by the : symbol. The first of these is the service ID of the required service. The second number is the dependency type, 1 for required service delivery, 2 for partial service delivery, 3 for service updates and 4 for administrative purposes. The third number represents the per cent cost to pass on to this service. Example: 203:1:0|137:1:10: |
The people tab contains informastion about teams and people.
Name | Name of team or person. |
Start Date | Date person started working in the organisation. This is only useful if in the current year and used to work out costs. Employees who have worked longer just need to have a start date before the current year. |
End Date | The end date for this person if their employment is termination. Use 299-01-01 as the end date for poeple with no end date. |
Position | The position name of this person. Also known as grade. |
Percent FTE | Is the person full time or part time. Set to 100% for full time or the % FTW if part time. i.e. 20% for 1 day a week. |
Budget Holder | Name of person who is budget holder for this team. |
Email address of person. | |
Mobile | Mobile phone number for person. |
Phone | Desk phone for person. |
Username | The persons username. Set if they can log in and have a "User" entry. |
Role | Privileges of user. |
Local Password | An encrypted version of the users password if they have entered a local password. |
Works on/Team ID | Either the internal reference for the team orthe services the person works on: Format service ID, Role ID and percentage |
The position tab contains a list of positions and their annual cost.
Position | Position name. |
Annual cost | Cost to the organisation for that position. |
The roles tab contains a list of roles. A role is what work a person performs for a service. For instance database administration.
Role ID | Internal role reference. |
Group | Group role is in, used for reporting. For instance Admin, Technical. |
Role | Role name. |
The metrics tab contains a list of metrics for all services.
Metric ID | Internal role reference. |
Service ID | ID of service the metric is for. |
Service | Name and group of service. |
Metric Name | Name of the metric (No spaces or special characters as must work as a URL parameter. |
Description | Description of whast the metric is measuring. |
Units | Units metric is measuring. i.e. percent, number, gigabytes. |
Target | Set if a target (KRP) is set against this metric. |
Operator | Operator for target i.e. >= |
Target Amount | The target value, i.e. 98. |
The reports tab contains a list of reports for all services.
Name | Name of user. |
Email address. | |
Username | Username they can login using. |
Role | Role they will have, i.e. administrator. |
Local Password | If set the encrypted password for this user, blank defaults to LDAP. |