skip to navigation
skip to content

kolekti-server 0.0.1

Lightweight monitoring system

TESTS COVERAGE

Kolekti is a metric gatherer with lightweight agents.

Current status: Under Heavy development

Installation

Because Kolekti is under heavy development, the only way to install it is by cloning this repository.

Defaults will use a local sqlite with RabbitMQ for tasks. You can reconfigure it under server/app/settings.py or create your own settings and set the environment variable DJANGO_SETTINGS_MODULE.

You can use Uchiwa with this configuration:

{
  "sensu": [
    {
      "name": "Kolekti 1",
      "host": "localhost",
      "port": 9996,
      "path": "/sensu"
    }
  ],
  "uchiwa": {
    "host": "0.0.0.0",
    "port": 3000,
    "refresh": 5
  }
}

By default, Kolekti server will listen on port 9996, and will serve the Sensu API on path /sensu.

To create the database you can use:

python server/manage.py syncdb

Developers

You can create fake data by running:

python server/manage.py sample_kolekti

Kolekti vs Sensu

Why to write another application similar to Sensu? Well… Here you have a comparative (some features are not available yet):

Feature Sensu Kolekti
Language Ruby Python
Database Redis Relational (Django ORM): Posgresql, MySQL, …
Interface Uchiwa Uchiwa
License MIT MIT
Internal communications Redis Celery over RabbitMQ, Redis, Postgresql, …
External communications RabbitMQ HTTP, HTTPS in near future
Min. Threads on client 3 (keepalive, client, subscriptions) 1 (subscriptions)
Keepalives Sent by clients Not needed. Any communication with clients is a keepalive.
Metrics Do not launch alerts May raise an alert
Checks Do not store metrics May store metrics
Clients register themselves Always Optional
Subscriptions Managed by clients Managed by clients, by server or both.
Nagios-compatible checks Yes No. It requires same format for checks and alerts.
Check failures Decided on client Decided on server