Cabot是什么
Cabot是GitHub上面的一个基于Django框架的开源项目,主要功能是服务的监控和告警。
Cabot目前提供如下监控类型:
- ICMP Ping监控
- HTTP接口监控
- Graphite Metrics监控
Cabot提供插件式的告警方式,目前已有的告警插件有slack、sms、telephone、email等等。开发者可以开发自己的告警插件以满足自身需求。
安装依赖
Cabot默认使用PostgreSQL数据库,我们可以替换为MySQL,修改数据库连接URI即可。
下面记录在安装依赖的Python包中遇到的问题。
openssl
在安装mysql-python、cryptography等一些依赖openssl的python包时,会报错无法找到ssl库。解决办法如下:
brew info openssl
For compilers to find this software you may need to set:
LDFLAGS: -L/usr/local/opt/openssl/lib
CPPFLAGS: -I/usr/local/opt/openssl/include
export LDFLAGS=-L/usr/local/opt/openssl/lib
export CPPFLAGS=-I/usr/local/opt/openssl/include
pip install mysql-python
openldap
在安装python-ldap包的时候报错找不到sasl.h头文件。python-ldap官方下载页面有如下解释:
Set up a suitable development environment by running xcode-select --install. After that you can install directly from PyPI.
下面记录其它工具的安装。
npm
download node.js then install node & npm
# install lessc
npm install -g less
# install coffee script
npm install -g coffee-script
Honcho
Cabot项目使用Foreman管理环境以及启动应用。Foreman是用Ruby写的,不想安装Ruby环境的话,可以使用Python语言移植版本Honcho:
pip install honcho
启动开发环境
# 创建数据库
# 假设conf/development.env中配置的数据库名为cabot
create database cabot default charset=utf8;
# 创建表
honcho -e conf/development.env run python manage.py migrate
honcho -e conf/development.env run python manage.py migrate cabotapp
# 创建超级用户
honcho -e conf/development.env run python manage.py createsuperuser
# 启动
honcho -e conf/development.env -f Procfile.dev start
Cabot项目源码阅读
Cabot源码值得一读,对Django Web开发有很大的指导意义。在阅读过程中,收获不少,下面是一些相关技术点:
- django rest框架
- django-polymorphic,与django的contenttypes框架有关
- model的具体继承、抽象继承、proxy继承
- Celery
网友评论