Cabot est stable et utilisé par des centaines d’entreprises et de particuliers en production, mais il n’est pas activement entretenu. Nous souhaitons confier la maintenance du projet à un ou plusieurs mainteneurs responsables et expérimentés. Veuillez envoyer un e-mail à [email protected] avec quelques informations vous concernant (profil github et/ou CV) si vous êtes intéressé.
Cabot est une plate-forme de surveillance d'infrastructure gratuite, open source et auto-hébergée qui fournit certaines des meilleures fonctionnalités de PagerDuty, Server Density, Pingdom et Nagios sans leur coût et leur complexité. (Nagios, je te regarde principalement.)
Il fournit une interface Web qui vous permet de surveiller les services (par exemple "Serveur Stage Redis", "Cluster ElasticSearch de production") et d'envoyer des alertes téléphoniques, SMS ou hipchat/e-mail à votre équipe en service si ces services commencent à se comporter mal ou tombent en panne - le tout sans écrire une ligne de code. Mieux encore, vous pouvez utiliser les données que vous transférez déjà vers Graphite/statsd pour générer des alertes, plutôt que de mettre en œuvre et de maintenir un tout nouveau système de collecteurs de données.
Vous pouvez alerter en fonction de :
Nous avons construit Cabot comme projet de Noël à Arachnys parce que nous ne pouvions pas comprendre Nagios, et rien d'autre ne semblait correspondre à notre cas d'utilisation. Nous le rendons open source dans l'espoir que d'autres le trouveront utile.
Cabot est écrit en Python et utilise Django, Bootstrap, Font Awesome et toute une série d'autres goodies sous le capot.
Utilisation de Docker : déployez en 5 minutes ou moins à l'aide du guide de démarrage rapide officiel sur cabotapp.com. (Voir aussi https://hub.docker.com/r/cabotapp/cabot/)
Les documents ont été déplacés vers cabotapp.com
Rubriques :
Pour ceux qui veulent contribuer :
Mon chien s'appelle Cabot et il adore surveiller les choses. Principalement la présence de nourriture dans son environnement immédiat, ou peut-être la fréquence des visites des écureuils dans notre jardin. Il aboie aussi fort pour nous alerter de certains événements (par exemple le facteur qui vient à la porte).
C'est juste une heureuse coïncidence si son nom sonne comme s'il pourrait s'agir d'un outil d'automatisation.
L'API a généré automatiquement une documentation disponible en parcourant https://cabot.yourcompany.com/api. La documentation consultable affiche des exemples de requêtes GET et répertorie les autres méthodes HTTP autorisées.
Pour afficher des éléments individuels, ajoutez l' id
de l'élément à l'URL. Par exemple, pour afficher graphite_check
1, parcourez :
/api/graphite_checks/1/
L'API permet l'authentification de base HTTP à l'aide de noms d'utilisateur et de mots de passe Django standard ainsi que l'authentification de session (en soumettant le formulaire de connexion sur la page de connexion). L'API utilise de la même manière les autorisations Django standard pour autoriser et refuser l'accès à l'API.
Toutes les ressources sont GETable par tout utilisateur authentifié, mais des autorisations individuelles doivent être accordées pour POST, PUT et autres méthodes d'écriture.
À titre d'exemple, pour l'accès POST à toutes les sous-classes status_check
, ajoutez les autorisations suivantes :
cabotapp | status check | Can add graphite status check
cabotapp | status check | Can add http status check
cabotapp | status check | Can add icmp status check
cabotapp | status check | Can add jenkins status check
Accédez à la page d'administration de Django sur https://cabot.yourcompany.com/admin pour ajouter/supprimer des utilisateurs, modifier les autorisations des utilisateurs, ajouter/supprimer des groupes pour le contrôle des autorisations basé sur les groupes et modifier les autorisations des groupes.
Le tri et le filtrage peuvent être utilisés à la fois par les clients REST et sur l'API consultable. Tous les champs visibles dans l'API consultable peuvent être utilisés pour le filtrage et le tri.
Obtenez tous jenkins_checks
avec l'anti-rebond activé et l'importance CRITIQUE :
https://cabot.yourcompany.com/api/jenkins_checks/?debounce=1&importance=CRITICAL
Trier graphite_checks
par champ name
, par ordre croissant :
https://cabot.yourcompany.com/api/graphite_checks/?ordering=name
Trier par champ name
, décroissant :
https://cabot.yourcompany.com/api/graphite_checks/?ordering=-name
D'autres exemples (non spécifiques à Cabot) sont disponibles dans la documentation Django REST Framework.
Voir le fichier LICENSE
dans ce référentiel.