Aggregator

集群聚合模块。聚合某集群下的所有机器的某个指标的值,提供一种集群视角的监控体验。

准备工作

如果你已经安装过open-falcon了,那么请检查:

检查你的portal中是否有这个代码:https://github.com/open-falcon/portal/blob/master/web/model/cluster.py,如果有了,说明版本OK,否则,需要升级原来的portal为最新版代码。

falcon_portal数据库中加入了一张新表:

  1. USE falcon_portal;
  2. SET NAMES 'utf8';
  3. DROP TABLE IF EXISTS cluster;
  4. CREATE TABLE cluster
  5. (
  6. id INT UNSIGNED NOT NULL AUTO_INCREMENT,
  7. grp_id INT NOT NULL,
  8. numerator VARCHAR(10240) NOT NULL,
  9. denominator VARCHAR(10240) NOT NULL,
  10. endpoint VARCHAR(255) NOT NULL,
  11. metric VARCHAR(255) NOT NULL,
  12. tags VARCHAR(255) NOT NULL,
  13. ds_type VARCHAR(255) NOT NULL,
  14. step INT NOT NULL,
  15. last_update TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  16. creator VARCHAR(255) NOT NULL,
  17. PRIMARY KEY (id)
  18. )
  19. ENGINE =InnoDB
  20. DEFAULT CHARSET =latin1;

源码编译

  1. cd $GOPATH/src/github.com/open-falcon
  2. git clone https://github.com/open-falcon/sdk.git
  3. git clone https://github.com/open-falcon/aggregator.git
  4. cd aggregator
  5. go get ./...
  6. ./control build
  7. ./control pack

最后一步会pack出一个tar.gz的安装包,拿着这个包去部署服务即可。

服务部署

服务部署,包括配置修改、启动服务、检验服务、停止服务等。这之前,需要将安装包解压到服务的部署目录下。

  1. # 修改配置, 配置项含义见下文
  2. mv cfg.example.json cfg.json
  3. vim cfg.json
  4. # 启动服务
  5. ./control start
  6. # 校验服务,看端口是否在监听
  7. ss -tln
  8. # 检查log
  9. ./control tail
  10. ...
  11. # 停止服务
  12. ./control stop

配置说明

配置文件默认为./cfg.json。默认情况下,安装包会有一个cfg.example.json的配置文件示例。各配置项的含义,如下

  1. ## Configuration
  2. {
  3. "debug": true,
  4. "http": {
  5. "enabled": true,
  6. "listen": "0.0.0.0:6055"
  7. },
  8. "database": {
  9. "addr": "root:@tcp(127.0.0.1:3306)/falcon_portal?loc=Local&parseTime=true",
  10. "idle": 10,
  11. "ids": [1,-1], # aggregator模块可以部署多个实例,这个配置表示当前实例要处理的数据库中cluster表的id范围
  12. "interval": 55
  13. },
  14. "api": {
  15. "hostnames": "http://127.0.0.1:5050/api/group/%s/hosts.json", # 注意修改为你的portal的ip:port
  16. "push": "http://127.0.0.1:6060/api/push", # 注意修改为你的transfer的ip:port
  17. "graphLast": "http://127.0.0.1:9966/graph/last" # 注意修改为你的query的ip:port
  18. }
  19. }