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 |