跳转到主要内容

基于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,
   },
}

您还可以定义其他队列:plannerarchivingdispachermonitorsstats。它们的使用如下

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 (377.5 kB 查看哈希值)

上传时间 源代码

由以下支持