心跳服务器
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
cache update hbs Jun 10, 2015
db fix bug:当模板中策略的tag包含大于1个等号时,误告警 Mar 9, 2016
g remove checksum when query plugins Aug 5, 2015
http gofmt code Jun 23, 2016
rpc sleep after rpc.accetp failed Nov 9, 2015
.gitignore
LICENSE add License and NOTICE May 14, 2015
NOTICE
README.md
cfg.example.json init May 8, 2015
control init May 8, 2015
main.go init May 8, 2015

README.md

falcon-hbs

Heartbeat Server. 所有Agent都会连到hbs,每分钟发一次心跳,汇报自己的hostname、ip、agent version、plugin version,hbs据此 填充host表。agent还会通过hbs拿到应该监控的端口、进程,应该执行的插件等信息。

hbs要能够处理agent的上述请求,就需要与portal的数据库打交道,这是无论如何无法避免的,那就为hbs再赋予一个功能:DB的缓存器。judge 也需要通过portal的DB拿到策略列表,在一个大点的公司,judge实例可能比较多,几十个、甚至上百个,有了hbs这个DB缓存器在这了,judge就 无需直接访问DB了,从hbs获取策略列表即可。如此一来,hbs可以每分钟从DB读取一次数据,这一分钟内所有judge的请求都可以直接读取内存。 另外,DB存的是关系型数据,需要做一些转换才能被judge使用,hbs从DB中读取到数据之后顺便把转换也做了,这样所有judge就无需再做转换了。

所以hbs的逻辑就变成了:每分钟从DB中load各种数据,处理后放到内存里,静待agent、judge的请求。

Installation

# set $GOPATH and $GOROOT
mkdir -p $GOPATH/src/github.com/open-falcon
cd $GOPATH/src/github.com/open-falcon
git clone https://github.com/open-falcon/hbs.git
cd hbs
go get ./...
./control build
./control start

Configuration

  • database: portal的db连接地址
  • maxIdle: 数据库连接池的MaxIdle配置
  • listen: 监听的rpc端口,judge要通过这个端口拿到策略列表
  • trustable: 可信ip列表,安全起见留空即可
  • http: 监听的http地址,主要是做调试