Overview

ZENworks Mobile Workspace embeds a search and analytics engine allowing administrator to analyses user’s behavior and help developers to enhance performance of the application.

This configuration guide helps integrator to install tools required to connect and monitor the analytics engine.

Enabling analytics engine

Enable data collect

Even if the database is common to all domains, activation must be done on a domain basis. To enable the collect of data, you must to have superadmin rights:

  1. Login to the security server with superadmin credentials

  2. Browse to SERVER → Domains and select the domain on which you want to enable analytics

  3. Check the box “Enable analytics”:

    analytics enable
    Figure 1. Domain configuration

As soon as this option is checked, ZENworks Mobile Workspace will start to collect any data related to user and application activity.

Active analytics engine listener

To be able to process these data, remote tool such as Kibana must be able to connect to the analytics engine. For that, we must configure ZENworks Mobile Workspace to listen to inbound connection form such tool. This will allow connection from anywhere by anyone! Please contact the ZENworks Mobile Workspace specialist to apply best security practices according to your environment.

Windows

Follow these steps if you installed ZENworks Mobile Workspace on a windows server:

  1. Stop the service SENSE-SERVER

  2. Start ZENworks Mobile Workspace ($ZENworksMobileWorkspace_HOME/services/SENSE-SERVER_service_manager.bat)

  3. Go on the Java tab and add the following lines:

    -Dspring.data.elasticsearch.properties.http.enabled=true

    -Dspring.data.elasticsearch.properties.http.bind_host=0.0.0.0

  4. Apply and start the service SENSE-SERVER

Linux

Follow these steps if you installed ZENworks Mobile Workspace on a Linux server:

  1. Stop the tomcat service

  2. Edit the file $ZENworksMobileWorkspace_HOME/bin/setenv.sh

  3. Add the following lines:

    JAVA_OPTS="$JAVA_OPTS -Dspring.data.elasticsearch.properties.http.enabled=true"

    JAVA_OPTS="$JAVA_OPTS -Dspring.data.elasticsearch.properties.http.bind_host=0.0.0.0"

  4. Start the tomcat service

Install visualization tool

The elasticsearch database used to collect data can be interfaced with many tools. This chapter will explain how to install the most commonly used one: Kibana.

Install Kibana

You must avoid to install Kibana on the same virtual machine as ZENworks Mobile Workspace server as it is resource consuming

Download the ZENworks Mobile Workspace compatible version from the following location: https://www.elastic.co/downloads/past-releases/kibana-4-5-4

  1. Extract the package and edit the file KIBANA_HOME/config/kibana.yml

  2. Remove the # for the parameter elasticsearch.url and set your ZENworks Mobile Workspace server IP address

  3. Run KIBANA_HOME/bin/kibana.bat (kibana on Linux)

  4. Connect to http://localhost:5601/

Configure Kibana

  1. Browse to Settings and select the tab indices

  2. Configure an index pattern as shown as below:

    analytics kibana
    Figure 2. Kibana configuration
  3. Select the tab Objects and click on Import

  4. Select the ZENworks Mobile Workspace configuration file provided by Sysmosoft

  5. You should see imported dashboards and visualization

Pre-defined dashboards

Three dashboards are provided with the analytics engine:

  • Default: Provide generic information about ZENworks Mobile Workspace server usage such as request per day or processing time

  • Device centric: Provide device centric information such operating system used or bandwidth usage

  • Http proxy: Provide http proxy usage information

Available data

This section lists all data that can be collected by ZENworks Mobile Workspace and used for analytics.

Generic

  • _type (Enum): The ZENworks Mobile Workspace component that has collected this data:

    • session: Data collected when a request has been done to the security server

    • proxy-http: Data collected when a request has been processed by the ZENworks Mobile Workspace HTTP proxy

    • proxy-component: Data collected when a request has been done by the workspace

  • timestamp (Date): Date at which the data has been collected

Application

  • applicationIdentifier (Text): Bundle ID on iOS and Package name an Android

  • applicationInstanceIdentifier (Text): Unique ID per application instance

  • applicationRef (Text): Workspace only, Application name within the workspace

  • applicationVersion (Text): Version of the application

  • serviceName (Text): Workspace only, the service used by an application

Device

  • deviceModel (Text): The model of the device

  • deviceName (Text): The name of the device as entered by the user (Optional)

  • deviceOperatingSystem (Text): ZENworks Mobile Workspace code for iOS (IPHONE3) and Android (ANDROID)

  • deviceOsVersion (Text): The version of the operating system

Device context

  • clientTime (Date): Time on the device

  • clientTimeZone (Text): Time zone of the device

  • ipAddress (Address IP): IP Address as seen by the ZENworks Mobile Workspace server. Should be the device IP address but if ZENworks Mobile Workspace is behind a proxy, this address will be the one from the proxy

  • ipCountry (Text): Computed country based on the IP address

  • location (GPS location): GPS location of the device

User

  • domainName (Text): Domain of the user

  • userName (Text): Name of the user

Session

  • sessionStartTime (Date): Date when a user open a ZENworks Mobile Workspace session

  • sessionEndTime (Date): Date when a user logout or when the ZENworks Mobile Workspace session expired

  • sessionDuration (Date): Duration of the ZENworks Mobile Workspace session

  • sessionId (Text): Unique ID of the ZENworks Mobile Workspace session

  • sessionType (Enum): Session type

    • USER_LOGIN: Standard login

    • USER_ENROLLMENT: Session establishment at enrollment

    • USER_PASSWORD_CHANGE: Session establishment when changing password

  • authenticationStatus(Enum): The status of the authentication at session opening:

    • SUCCES: All credentials was correct

    • WRONG_USERNAME: The username provided by the user was wrong

    • NO_ENROLLMENT_CODE: No enrollment code has been generated

    • EXPIRED_ENROLLMENT_CODE: The enrollment code has expired

    • WRONG_ENROLLMENT_CODE: The enrollment code provided by the user was wrong

    • USER_LOCKED: The user has been locked

    • APPLICATION_LOCKED: The application has been locked

    • ACCESS_DENIED: The access has been denied

HTTP proxy

  • requestContentLength (Number): Length of the request’s content sent by the mobile

  • requestMethod (Text): HTTP request method (GET, POST, HEAD, etc)

  • requestPath (Text): Path to the requested resource (e.g. /favicon.ico)

  • requestPort (Number): Port on which the request has been done

  • requestProtocol (Text): Protocol used by the request (http or https)

  • requestProtocolVersion (Text): HTTP protocol version (e.g 1.1)

  • requestServer (Text): Hostname or IP address of the targeted backend server (e.g. sysmosoft.com)

  • responseCode (Number): HTTP response code (e.g. 200)

  • responseContentLength (Number): Length of the response’s content sent to the mobile

  • responseContentType (Text): Content type of the response (e.g image/x-icon)

  • responseDelay (Number): Request processing time

  • responseMessage (String): HTTP response message (e.g. OK)