Cabot es estable y lo utilizan cientos de empresas e individuos en producción, pero no se mantiene activamente. Nos gustaría confiar el mantenimiento del proyecto a uno o más mantenedores responsables y experimentados. Envíe un correo electrónico a [email protected] con alguna información sobre usted (perfil de github y/o CV) si está interesado.
Cabot es una plataforma de monitoreo de infraestructura autohospedada, de código abierto y gratuita que proporciona algunas de las mejores características de PagerDuty, Server Density, Pingdom y Nagios sin su costo y complejidad. (Nagios, principalmente te estoy mirando a ti).
Proporciona una interfaz web que le permite monitorear servicios (por ejemplo, "servidor Stage Redis", "clúster de producción ElasticSearch") y enviar alertas telefónicas, sms o hipchat/correo electrónico a su equipo de servicio si esos servicios comienzan a comportarse mal o fallan. todo sin escribir una línea de código. Lo mejor de todo es que puede utilizar datos que ya está enviando a Graphite/statsd para generar alertas, en lugar de implementar y mantener un sistema completamente nuevo de recopiladores de datos.
Puedes alertar en función de:
Construimos Cabot como un proyecto navideño en Arachnys porque no podíamos entender Nagios y nada más parecía encajar en nuestro caso de uso. Lo estamos abriendo con la esperanza de que otros lo encuentren útil.
Cabot está escrito en Python y usa Django, Bootstrap, Font Awesome y una gran cantidad de otras ventajas.
Usando Docker: Implemente en 5 minutos o menos usando la guía oficial de inicio rápido en cabotapp.com. (Ver también https://hub.docker.com/r/cabotapp/cabot/)
Los documentos se han trasladado a cabotapp.com.
Secciones:
Para aquellos que quieran contribuir:
Mi perro se llama Cabot y le encanta monitorear las cosas. Principalmente la presencia de comida en su entorno inmediato, o quizás la frecuencia de las visitas de las ardillas a nuestro jardín. También ladra fuerte para alertarnos sobre ciertos eventos (por ejemplo, que el cartero llegue a la puerta).
Es sólo una afortunada coincidencia que su nombre suene como si pudiera ser una herramienta de automatización.
La API ha generado automáticamente documentación disponible navegando por https://cabot.yourcompany.com/api. La documentación navegable muestra ejemplos de solicitudes GET y enumera otros métodos HTTP permitidos.
Para ver elementos individuales, agregue la id
del elemento a la URL. Por ejemplo, para ver graphite_check
1, busque:
/api/graphite_checks/1/
La API permite la autenticación básica HTTP utilizando nombres de usuario y contraseñas estándar de Django, así como autenticación de sesión (enviando el formulario de inicio de sesión en la página de inicio de sesión). De manera similar, la API utiliza permisos estándar de Django para permitir y denegar el acceso a la API.
Todos los recursos son GETable para cualquier usuario autenticado, pero se deben otorgar permisos individuales para POST, PUT y otros métodos de escritura.
Como ejemplo, para el acceso POST a todas las subclases status_check
, agregue los siguientes permisos:
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
Acceda a la página de administración de Django en https://cabot.yourcompany.com/admin para agregar/eliminar usuarios, cambiar permisos de usuario, agregar/eliminar grupos para control de permisos basado en grupos y cambiar permisos de grupo.
Tanto los clientes REST como la API navegable pueden utilizar la clasificación y el filtrado. Todos los campos visibles en la API navegable se pueden utilizar para filtrar y ordenar.
Obtenga todos jenkins_checks
con rebote habilitado y importancia CRÍTICA:
https://cabot.yourcompany.com/api/jenkins_checks/?debounce=1&importance=CRITICAL
Ordene graphite_checks
por campo name
, ascendente:
https://cabot.yourcompany.com/api/graphite_checks/?ordering=name
Ordenar por campo name
, descendente:
https://cabot.yourcompany.com/api/graphite_checks/?ordering=-name
Otros ejemplos (no específicos de Cabot) están disponibles en la documentación de Django REST Framework.
Consulte el archivo LICENSE
en este repositorio.