Wednesday, December 23, 2015

Inkscope V1.3 installation on debian servers

edit: 18/01/2016 Inkscope 1.3.1 version 

 Typical installation of Inkscope

Inkscope and its mongoDB database should be installed on an independent server from ceph.
Inkscope provides probes to fetch metrics from the ceph cluster and its machines:
  • Sysprobe is used to fetch system informations on each machine of the cluster.
  • Cephprobe fetches information on the cluster itself. It is intended to be installed on a machine accessing the ceph-rest-api.
Before installing Inkscope, you'll need to install a mongoDB instance.
The initialisation of the Mongo databases will be done at first launch.

Add the Inkscope debian repository in your source list

Create /etc/apt/sources.list.d/inkscope.list:
echo "deb ./" | sudo tee /etc/apt/sources.list.d/inkscope.list
sudo apt-get updat

Packages for Inkscope are:
  • inkscope-common : install the configuration file for probes and web interface.
    inkscope-sysprobe : installs sysprobe
  • inkscope-cephrestapi: installs all script to start a ceph-rest-api 
  • inkscope-cephprobe: installs the cephprobe
  • inkscope-admviz : installs inskcope web interface 

Install Inkscope server on one server :

sudo apt-get install inkscope-admviz inkscope-cephrestapi

Edit /opt/inkscope/etc/inkscope.conf  for mongoDB, ceph-rest-api and radosgw parameters

In this file, you can also specify a description for your platform in the 'platform' field. This string will be shown on every page of Inkscope in the header.

The configuration file is the same for every module and can be deployed on every machine.

If the Inkscope server is not a ceph node, you'll have to copy the ceph.conf file of the cluster.

Edit /etc/apache2/sites-available/inkScope.conf to fill parameters concerning ceph-rest-api

By default, conf files are provided with ceph-rest-api as a WSGI application
This make ceph-rest-api a part of the inkscope server by launching ceph-rest-api as an apache wsgi application. You can also use the ceph-rest-api as a standalone server. For more details : see  "Inkscope and ceph-rest-api"
In the following, we consider ceph-rest-api as a WSGI application.

You need to create a ceph user named client.restapi with caps : [mds] allow, [mon] allow * , [osd] allow *

sudo ceph auth get-or-create client.restapi mds 'allow' osd 'allow *' mon 'allow *' > /etc/ceph/ceph.client.restapi.keyring

Then you need to add the following section in your \<cluster\>.conf:
    log_file = /dev/null
    keyring = /etc/ceph/ceph.client.restapi.keyring

Edit /etc/apache2/ports.conf to add
Listen 8080 

Enable apache proxy or rewrite module according to your choice of access to ceph-rest-api (see "Inkscope and ceph-rest-api")
sudo a2enmod proxy_http  (for standalone server)
sudo a2enmod rewrite (for WSGI application)
Inkscope needs other python modules. To install them, use:

        pip install flask-login simple-json

Enable inkscope
sudo a2ensite inkScope 

Restart apache
sudo service apache2 restart 

 Now you can access inkscope in your browser
On the first launch, two users are created :
- one with the admin role (User 'admin' with password 'admin')
- a second with supervizor role (User 'guest', no password)
Fill free to add your own admin user and delete the default one.

At this stage, Inkscope is not fully operationnal and needs the mongoDB database to be feed. For this, you'll have to install Inkscope probes.

Install sysprobe on each server:

sudo apt-get install inkscope-sysprobe 

Edit /opt/inkscope/etc/inkscope.conf  for mongoDB, ceph-rest-api and radosgw parameters or retrieve the one modified on the previous step.

You'll have to install lshw and sysstat

        apt-get install lshw sysstat

Also install psutil python module (don't use psutil 0.x or 3.x)

        pip install psutil==2.1.3

Start sysprobe:
/etc/init.d/sysprobe start

Install cephprobe on one server:

sudo apt-get install inkscope-cephprobe 
Edit /opt/inkscope/etc/inkscope.conf  for mongoDB, ceph-rest-api and radosgw parameters or retrieve the one modified on the previous step.

Install psutil python module (don't use psutil 0.x or 3.x)

        pip install psutil==2.1.3

Start cephprobe:
/etc/init.d/cephprobe start

If your cluster is healthy, you'll have a first page like this:

Et voila!


  1. Hi,
    This url : deb ./

    couldn't run well. How to download this debian file anymore. I already tried to visit github url to download this file, it was the same condition. The file was corrupt.

    Please help...

  2. is the path to the directory where .deb are. It is to be used with apt-get.

    The links to deb files are:

    1. Hello I tried this apt-get update after /etc/apt/sources.list.d create inkscope.list
      It couldn't get to update, error..

      Create /etc/apt/sources.list.d/inkscope.list and add line:
      deb ./
      apt-get update

    2. Hello in InkScope I found this one "some osd stats are missing"
      What's the meaning? anyhelp? Thank you

  3. This comment has been removed by the author.