基于CURL的简单监控系统。
项目描述
简介
Selena是一个通过监控响应时间、响应代码和网站内容(通过关键字检查)来监控网站性能的工具。
它通过设计通过代理进行分发,代理可以地理位置上分离,从而允许从多个ISP监控用户体验。
安装
要求
Selena需要Python 2.7,它包含在最新的Ubuntu Server 12.04 LTS系统中
$ sudo apt-get install python-dev python-virtualenv
消息队列
Selena通过Redis作为代理与中央队列通信。安装redis
$ sudo apt-get install redis-server
由于丢失的任务总是可以被重新发送,因此Redis默认提供的持久性保证不是必需的。您可以通过取消注释/etc/redis/redis.conf中的save行来显着加快队列速度。
我们可以检查Redis服务器状态
$ redis-cli -h localhost -p 6379 -n 0 info
虚拟环境
让我们在用户的家目录中为Python创建一个虚拟环境
$ virtualenv . --distribute --no-site-packages
系统用户
无权限且不属于任何人
$ sudo adduser --home /home/selena selena $ sudo su - selena
在任何shell中,用户都可以激活虚拟环境。结果,默认的Python可执行文件和辅助脚本将指向虚拟env目录结构中的那些文件
$ which python /usr/local/bin/python $ . bin/activate (selena)$ which python /home/selena/bin/python
数据库
Selena使用并支持MySQL。要安装MySQL,请调用
$ sudo apt-get install mysql-server libmysqlclient-dev libmysqld-dev
您现在必须为Selena系统创建一个数据库和一个用户。您可以在互联网上找到许多相关的教程。
缓存
Selena需要一些缓存系统,如memcached。安装
$ sudo apt-get install memcached
通过pip安装
只需调用
(selena)$ pip install selena
从源码安装
或者,为了保持在最前沿,您可以克隆selena git存储库到项目并手动安装
(selena)$ git clone git://github.com/allegro/selena.git project (selena)$ cd project (selena)$ pip install -e .
Selena代理
为了正常工作,Selena需要安装和配置Selena-agent包。
配置
创建文件/INSTALL_DIR/src/selena/selena/settings-local.py并填写适当的数据。
填写MySQL连接数据
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'your database name', 'USER': 'your database username', 'PASSWORD': 'your database password', 'HOST': 'localhost', 'PORT': '3306', 'OPTIONS': { 'init_command': 'SET storage_engine=INNODB,character_set_connection=utf8,collation_connection=utf8_unicode_ci' } } }
生成新的密钥
SECRET_KEY = 'very_unique_string' AES_SECRET_KEY = b'sixteen byte key'
设置服务错误显示的分钟数,例如30
ERROR_TIME_INTERVAL = 30
定义RQ队列。必须定义一个默认队列,例如必须为主要的Selena代理定义一个队列,例如agent_1
RQ_QUEUES = { 'default': { 'HOST': '127.0.0.1', # Redis host 'PORT': 6379, # Redis port 'DB': None, 'PASSWORD': None, }, 'agent_1': { 'HOST': '127.0.0.1', 'PORT': 6379, 'DB': None, 'PASSWORD': None, }, }
您还可以定义其他队列:planner、archiving、dispacher、monitors、stats。它们的使用如下
planner - 启用或禁用计划中的技术中断
archiving - 创建分区,归档数据
dispacher - 运行服务的监控任务
monitors - 从代理收集结果
stats - 计算统计数据
您还必须配置缓存。示例缓存配置(针对默认的memcached配置)
CACHES = { 'default': { 'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache', 'LOCATION': '127.0.0.1:11211', } }
数据库准备
创建settings-local.py文件后,通过运行标准的syncdb管理命令与源同步数据库
$(selena): selena syncdb
然后运行迁移命令
$(selena): selena migrate
使用命令创建数据库分区
$(selena): selena createpartitions
运行Web界面
要运行Selena Web界面,请使用命令
(selena)$ selena runserver 8080
配置代理
当Selena Web界面运行时,您必须将主代理添加到您的Selena实例中。在浏览器中打开此链接http://localhost:8080/admin/services/agent/add/并登录到管理面板。
您将看到一个表单,其中必须填写您的名称,为主代理添加一个队列(请记住队列的名称必须在您的Selena代理settings-local.py文件中设置),并勾选主代理复选框。添加代理后,您将看到代理行中的Salt列。复制此字符串并将其添加到Selena-agent的SALT变量中。这非常重要,因为没有它将无法与Selena-agent通信。
添加监控服务
在管理面板中添加Selena将监控的服务。在浏览器中打开此链接http://localhost:8080/admin/services/service/add/并添加要监控的服务URL。
命令
运行单个监控服务
(selena)$: selena monitorall
搜索事件
(selena)$: selena searchincidents
激活/停用技术中断
(selena)$: selena technicalbreaks
为了优化,有一些命令可以归档服务监控结果。如果在MySQL数据库中创建分区,请运行命令
(selena)$: selena createpartitions
您需要运行将合并8天前的监控数据并将其移动到归档的命令
(selena)$: selena makearchive
计算活动的服务的SLA
(selena)$: selena calculatesla
如果您希望异步运行命令,可以在它们中添加一个--async-mode=1选项。
自动化
您可以将Cron配置为在后台自动监控。要编辑crontab,请运行命令
$(selena): crontab -e
并添加以下内容
*/1 * * * * /YOUR_VIRTUAL_ENV_PATH/bin/selena monitorall */1 * * * * /YOUR_VIRTUAL_ENV_PATH/bin/selena searchincidents --async-mode=1 */5 * * * * /YOUR_VIRTUAL_ENV_PATH/bin/selena technicalbreaks --async-mode=1 0 1 * * * /YOUR_VIRTUAL_ENV_PATH/bin/selena createpartitions --async-mode=1 30 1 * * * /YOUR_VIRTUAL_ENV_PATH/bin/selena makearchive --async-mode=1 0 3 * * * /YOUR_VIRTUAL_ENV_PATH/bin/selena calculatesla
当然,您可以在Cron中设置自己的时间来执行这些命令。
要在浏览器中查看监控结果,请打开以下地址:http://localhost:8080
许可证
Selena遵循Apache许可证,版本2.0。
版权所有(c)2013-2014 Allegro Group。
项目详情
selena-1.0.4.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | c1f9cb32b5df861872c8ace2df7f666ea34186f0f8a7afaa8c97b3d258fa71b5 |
|
MD5 | 9f54489d01794598efbb55679f26f558 |
|
BLAKE2b-256 | 7b72eaf27933b996a628b94f12298b9c8fa4563d5abdf589aeac99b02a7d5dca |