OWL--监控系统实战二搭建梳理
本篇博客不会讲具体的怎么搭建owl,而只是对一些遇到的问题进行梳理。因为已经有文档讲的非常清楚了,可以去github:https://github.com/TalkingData/owl 上指定的QQ群里面获取(所以,如果参考QQ群上面的文档安装没有什么问题可跳过该篇博客)。
整个环境搭建的梳理
- 开始准备安装软件
- 搭建OWL之前,需要安装
OpenTSDB
,MySQL
、HBase
、Nginx
、JDK
、GO语言环境
。 - 安装HBase、MySQL、Nginx、JDK这些就不在这里介绍了,可以参考我之前的博客。
- 所以下面就介绍一下OpenTSDB、GO语言环境、OWL的搭建
- 搭建OWL之前,需要安装
编译安装OpenTSDB
- 注意:安装OpenTSDB之前需要提前安装好HBase,因为在HBase中存了OpenTSDB的数据
- 一、下载:https://github.com/OpenTSDB/opentsdb/releases
二、解压
1
2[root@xiaoxiaomo ~]# tar -zxvf /opt/opentsdb-2.3.0.tar.gz -C /data
[root@xiaoxiaomo ~]# mv /data/opentsdb-2.3.0/ /data/opentsdb三、编译
创建一个
build
目录,复制third_party
下面所有的文件到build
目录下1
2
3
4[root@xiaoxiaomo ~]# cd /data/opentsdb
[root@xiaoxiaomo opentsdb]# mkdir build
[root@xiaoxiaomo opentsdb]# cp -r third_party ./build
[root@xiaoxiaomo opentsdb]# ./build.sh直接cd 到 $opentsdb目录下,执行build.sh文件编译会出现异常:
异常:Error: Could not find or load main class javacc
解决:https://community.hortonworks.com/questions/82834/error-could-not-find-or-load-main-class-javacc.html编译后会看到如下日志
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19INFO: Created user preferences directory.
Compiling module tsd.QueryUi
Compiling 5 permutations
Compiling permutation 0...
Compiling permutation 1...
Compiling permutation 2...
Compiling permutation 3...
Compiling permutation 4...
Compile of permutations succeeded
Linking into /data/opentsdb/build/gwt/queryui
Link succeeded
Compilation succeeded -- 70.492s
/bin/mkdir -p staticroot
cp ../src/tsd/static/favicon.ico ../src/tsd/static/opentsdb_header.jpg staticroot
find -L staticroot -type l -exec rm {} \;
p=`pwd`/gwt/queryui && cd staticroot \
&& for i in $p/*; do ln -s -f "$i" || break; done
find -L staticroot/gwt -type f | xargs touch
make[1]: Leaving directory `/data/opentsdb/build'
- 四、初始化HBase表修改配置
初始化HBase表,执行:env COMPRESSION=NONE HBASE_HOME=/data/hbase ./src/create_table.sh
修改配置
1
2
3
4
5vim opentsdb/src/opentsdb.conf
tsd.network.port = 4242
tsd.http.staticroot =/data/opentsdb/build/staticroot
tsd.http.cachedir = /tmp/tsd
tsd.core.auto_create_metrics = true
- 五、启动&访问
启动
1
2
3[root@xiaoxiaomo ~]# nohup opentsdb/build/tsdb tsd --config=opentsdb/src/opentsdb.conf 2>&1 > a.log &
[root@xiaoxiaomo ~]# jps
3771 TSDMain
GO语言环境
- GO语言环境,这里主要是想说一下GOROOT和GOPATH,得配置好。
1、作为一个对GO语言不是很了解,对其他语言很熟悉的就很容易忽视这一点,我就掉进这个里面过。直接下载下来安装包解压后,配了一个GO_HOME!!哈哈,傻了,后面pull下来owl代码后import找不到自己!
2、GOROOT
:简单理解就是go安装包目录
3、GOPATH
:简单理解就是一个工作区(你放项目的地方,包括你自己安装的Go包)。在这个目录下一般有src、pak、bin
三个目录。
4、GOPATH
:你可以配置多个,Win下用分号分割/Linux用冒号分割,举个linux下变量配置例子:GOPATH=/data/data/ext:/data/data/work。pull下来的代码就可以放在/data/data/work/src/下面
OWL的搭建
- owl是有很多组件构成,所以得组逐个安装,由于该golang项目包由godep管理,在安装之前先安装godep:go get github.com/tools/godep,如果网络问题没法下载可参考:https://www.golangtc.com/download/package手动下载
- owl组件安装参考QQ群中的文档,文档上面看着内容有点多,其实主要做的都是重复的事情。下面以安装agent举个例子,来说明一下每一步都在做什么
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24## 安装agent,在$GOPATH目录下就会有一个可执行文件
[root@xiaoxiaomo owl]# godep go install owl/agent
godep: WARNING: Godep workspaces (./Godeps/_workspace) are deprecated and support for them will be removed when go1.8 is released.
godep: WARNING: Go version (go1.6) & $GO15VENDOREXPERIMENT= wants to enable the vendor experiment, but disabling because a Godep workspace (Godeps/_workspace) exists
## 创建一个目录(下面/etc/init.d/owl-agent文件中的执行文件路径,其实就是指向的该目录下的具体文件)
[root@xiaoxiaomo owl]# mkdir -p /usr/local/owl-agent/conf
## 复制第一步编译好的执行文件到第二步创建好的目录下
[root@xiaoxiaomo owl]# cp $GOPATH/bin/agent /usr/local/owl-agent/
## 复制配置文件到第二步创建好的conf目录下
[root@xiaoxiaomo owl]# cp conf/agent.conf /usr/local/owl-agent/conf
## 复制启动文件到init.d目录下并添加执行权限,方便下面启动
[root@xiaoxiaomo owl]# cp scripts/init/owl-agent.init /etc/init.d/owl-agent
[root@xiaoxiaomo owl]# chmod +x /etc/init.d/owl-agent
## 修改配置文件
[root@xiaoxiaomo owl]# vim /usr/local/owl-agent/conf/agent.conf
## 启动
[root@xiaoxiaomo owl]# /etc/init.d/owl-agent start
Starting owl-agent (via systemctl): [ 确定 ]