DomeOS agent组件
Branch: master
Clone or download
rkasdf
Latest commit 74cb7fd Feb 23, 2017
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
Godeps domeos version 0.5 Feb 23, 2017
cron domeos version 0.5 Feb 23, 2017
docker domeos version 0.5 Feb 23, 2017
funcs domeos version 0.5 Feb 23, 2017
g domeos version 0.5 Feb 23, 2017
http initialize Jun 3, 2016
k8s domeos version 0.5 Feb 23, 2017
nux domeos version 0.5 Feb 23, 2017
plugins initialize Jun 3, 2016
public initialize Jun 3, 2016
vendor domeos version 0.5 Feb 23, 2017
.gitignore initialize Jun 3, 2016
README.md domeos version 0.5 Feb 23, 2017
cfg.example.json domeos version 0.5 Feb 23, 2017
control domeos version 0.5 Feb 23, 2017
main.go domeos version 0.5 Feb 23, 2017

README.md

domeos/agent

更新说明:

2016.05.09

1 升级cadvisor,以支持新版docker,实测docker1.11.1下可正常上报数据

2 Dockerfile更新:使用docker:1.11.1基础镜像

2016.06.01

发布镜像地址:pub.domeos.org/domeos/agent:2.5

1 容器运行agent时,修正dockerConnector导致宿主机docker exec进程残留问题

2 为保持兼容性,将基础镜像修改为docker:1.8,并修正时区

3 重新编译dockerConnector与falcon-agent,去掉cgo依赖(对cadvisor和prometheus源码稍作了修改,不影响agent使用)

4 修正容器内存limit为0时内存使用率NaN问题

5 修正连接多个transfer时crash问题

Notice

domeos/agent模块是以open-falcon原生agent模块为基础,为适应DomeOS监控报警需求而设计修改的,包名已修改为github.com/domeos/agent,与原生open-falcon的agent主要区别为:

  • 在配置模板中对很大部分监控项设置了忽略,仅保留一些系统基础监控项
  • 嵌入了cadvisor代码,实现容器监控,其tag为id=

Installation

这一安装方式将仅安装监控agent组件。

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

# goto http://localhost:1988

Configuration

  • heartbeat: 心跳服务器地址
  • transfer: transfer地址,现在可以配置多个
  • ignore: 忽略(不上报)的监控项

Run In Docker Container

注意这里已经将dockerConnector集成进agent镜像中,可以通过DomeOS WebSSH Server登录进本机容器内部。

首先构建domeos/agent镜像(tag以latest为例):

sudo docker build -t="domeos/agent:latest" ./docker/

启动docker容器:(注意要挂出系统和docker相应目录,以在容器内部获取宿主机监控信息以及获取容器监控)

sudo docker run -d --restart=always \
	-p 2222:2222 \
	-p <_agent_http_port>:1988 \
	-e HOSTNAME="\"<_hostname>\"" \
	-e TRANSFER_ADDR="[<_transfer_addr>]" \
	-e TRANSFER_INTERVAL="<_interval>" \
	-e HEARTBEAT_ENABLED="true" \
	-e HEARTBEAT_ADDR="\"<_heartbeat_addr>\"" \
	-v /:/rootfs:ro \
	-v /var/run:/var/run:rw \
	-v /sys:/sys:ro \
	-v <_docker_graph_path>:<_docker_graph_path>:ro \
	--name agent \
	domeos/agent:latest

参数说明:

  • _agent_http_port: agent服务http端口,主要用于状态检测、调试等。
  • _hostname: 监控系统中主机的endpoint名,需与kubernetes中添加node时配置的hostname相同。DomeOS添加主机脚本中使用主机运行hostname命令的执行结果。
  • _transfer_addr: transfer的rpc地址,可以配置多个。注意每个IP:Port需加双引号,多个IP:Port之间用逗号分隔。DomeOS添加主机脚本中使用DomeOS全局配置中的transfer配置。
  • _interval: 监控数据上报时间间隔,单位为秒(s)。DomeOS中支持的最小上报时间间隔为10s。DomeOS添加主机脚本中默认设置为10s。
  • _heartbeat_addr: heartbeat server的rpc地址,IP:Port形式。DomeOS添加主机脚本中使用DomeOS全局配置中的hbs配置。
  • _docker_graph_path: docker启动时配置的graph目录路径(-g参数)。若没有配置,默认为/var/lib/docker目录。

样例:

sudo docker run -d --restart=always \
	-p 2222:2222 \
	-p 1988:1988 \
	-e HOSTNAME="\"bx-42-198\"" \
	-e TRANSFER_ADDR="[\"10.16.42.198:8433\",\"10.16.42.199:8433\"]" \
	-e TRANSFER_INTERVAL="10" \
	-e HEARTBEAT_ENABLED="true" \
	-e HEARTBEAT_ADDR="\"10.16.42.199:6030\"" \
	-v /:/rootfs:ro \
	-v /var/run:/var/run:rw \
	-v /sys:/sys:ro \
	-v /var/lib/docker:/var/lib/docker:ro \
	--name agent \
	domeos/agent:latest

DomeOS仓库中domeos/agent对应版本: pub.domeos.org/domeos/agent:2.5