wiki:Check

Version 10 (modified by dan.tudose, 14 years ago) (diff)

--

Table of Contents

  1. Introduction
    1. Architectural Overview
  2. Monitoring and reprogramming
    1. Reprogramming - Gateway Watchdog
      1. Software Requirements
      2. Project Organization
      3. Compiling the Gateway Watchdog
      4. Running the Gateway Watchdog
      5. Test demo
  3. Scheduling
  4. Self-healing

Introduction

Architectural Overview

The Check architecture consists of the following entities:

  • Sensor Network
  • Edge Router
  • Gateway
  • Check Services

Monitoring and reprogramming

Reprogramming - Gateway Watchdog

The SENSEI Gateway Watchdog is a monitoring and control service for the SENSEI Gateway. It allows for remote starting, stoping and updating the gateway code and can report the version string and uptime of the currently running gateway binary.

Software Requirements

Installing the Gateway Watchdog requires the following software packages:

Project Organization

The watchdog shares its code with the gateway implementation and can be found in the /gateway folder in the SVN.

Compiling the Gateway Watchdog

Some packages are required to be installed prior to the compilation of the Gateway Watchdog. Please install the following packages from the Ubuntu repository if you did not do already so.

$ sudo apt-get install gcc g++ libssl-dev libxml2-dev

Sockets library also needs to be installed:

$ cd ./lib/Sockets-2.3.7
$ make clean
$ make
$ sudo make install

The top-level Makefile will build everything with the following, which places the executables in ./bin.

make

To clean everything do

make clean

Running the Gateway Watchdog

The watchdog must be run from the root of the project

./bin/watchdog

Available command line options are: -p HTTPD port (default: 9000)
-s HTTPD hostname for inserting in resource desciption (default: localhost)
-d domain name inserted in resource description (default: example.com)
-w WSAN island name inserted in resource description (default: Example)
-f folder where the gateway binary can be found (default: ./)
-c gateway binary filename (default: sensei-gateway)
-cert ssl certificate filename, also enables https operation
-pass ssl certificate passphrase, necessary if the certificate file is encrypted

The SENSEI Gateway Watchdog server runs by default on port 9000. It exposes the following URIs:

  • /start - a POST request starts the gateway if not already started
  • /stop - a POST request stops the gateway
  • /update - a POST request with a form that has a 'file' field named 'code' updates the gateway binary, a 'text' field named 'version' can also be sent as the version string for the newly uploaded binary, otherwise version string will be taken from the uploaded file
  • /uptime - a GET request returns the uptime of the gateway in seconds or -1 if the gateway is not started
  • /version - a GET request returns the gateway version string, if one is available.

For the /start, /stop and /uptime urls GET requests are also accepted. They return an HTML page that allows easy access to the operations from a browser.

Test demo

The Gateway Watchdog provides monitoring and control of the SENSEI Gateway. To run a demo, please start the Watchdog service by giving the following commands in a console:

$ make
$ ./bin/watchdog -f bin/ -c sensei-gateway -d pub.ro -w test

This will start the Gateway Watchdog which runs an http server at localhost:9000. You will be able to see the registered gateway watchdog URIs by querying the Resource Directory at http://sensei-dev1.grid.pub.ro:8184/rd. A possible response from the Resource directory is shown below.

Resource Directory query example

The watchdog service will now accept requests at the following URIs:

As an example, by pointing your browser to the Start Gateway URI you should see following response

Start gateway response

Clicking the Start button will start the gateway if it is not already started. You can check that the gateway is running by clicking the following link http://localhost:8000

By pointing your browser to the Stop Gateway URI you should see the following response

Stop gateway response

Clicking the Stop button will stop the gateway.

By pointing your browser to the Update Gateway code URI you will be able to upload a new binary to the gateway and, optionally, specify a version string for this binary, as shown bellow.

Update example

Note that to run the new gateway code you have to stop and then start the gateway.

Scheduling

Self-healing

Attachments (22)

Download all attachments as: .zip