Lightweight monitoring system
Project description
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 |