您的位置:首页 > 运维架构 > Linux

centos 7 部署 open-falcon 0.2.0

2017-07-18 10:45 423 查看
===============================================

2017/12/06_第2次修改ccb_warlock

更新说明:

2017/12/06:由于open-falcon已有0.2.1,增加文字说明,避免命令一路执行下来出现问题(例如“2.2解压二进制包”)。

===============================================

我也是因为工作需要刚刚接触linux,有些内容也是一知半解无法描述清楚,只能日后再进行补充。

官方和github上都有教程,但是对于我来说有的部署内容较为陌生,有点错误官方也未在教程中说明,故在此记录方便以后快速部署,本文部署的时间是2017/7/18。

虽然open-falcon是采用了前后端分离的架构,但是为了方便部署,服务端的后端与前端均部署在同一个虚拟机内,本记录是从centos刚刚装完后的初始环境开始部署,安装全程选择的用户为root。

一、环境准备

操作系统:centos7(minimal,www.centos.org下载的包是CentOS-7-x86_64-Minimal-1611.iso)

1.1更换阿里yum(个人习惯)

步骤:

1)下载wget

yuminstall-ywget


2)备份默认的yum

mv/etc/yum.repos.d/etc/yum.repos.d.backup


3)设置新的yum目录

mkdir/etc/yum.repos.d


4)下载阿里yum配置到该目录中

wget-O/etc/yum.repos.d/CentOS-Base.repo'target='_blank'>http://mirrors.aliyun.com/repo/Centos-7.repo[/code]
5)重建缓存

yumcleanall
yummakecache


6)升级所有包(改变软件设置和系统设置,系统版本内核都升级,故需要几分钟耐心等待)

yumupdate-y


1.2安装vim(个人习惯)

yuminstall-yvim


1.3安装git

yuminstall-ygit


安装结束后安全起见,确认是否满足官方要求的Git>=1.7.5

gitversion


1.4安装go语言环境(因为官方yum和阿里yum都没有go的安装包,故只能通过fedora的epel仓库来安装)

yuminstall-yepel-release
yuminstallgolang-y


安装结束后安全起见,确认是否满足官方要求的Go>=1.6

goversion


1.5安装redis

由于部署go时已经安装了epel,故直接执行下面的安装命令(如果没有装epel,会提示Nopackageredisavailable,也就是没有安装包可用,因为官方yum和阿里yum都没有redis,故只能通过fedora的epel仓库来安装)

yuminstallredis-y


启动redis

systemctlstartredis


设置redis开机启动

systemctlenableredis


可以用下面的语句查看redis是否开启

systemctlstatusredis


1.6安装mysql

步骤:

1)下载repo源

wget'target='_blank'>http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm[/code]
2)安装该rpm包(安装这个包后,会获得两个mysql的yumrepo源:/etc/yum.repos.d/mysql-community.repo,/etc/yum.repos.d/mysql-community-source.repo)

rpm-ivhmysql-community-release-el7-5.noarch.rpm


3)安装mysql

yuminstallmysql-server-y


4)启动mysql

systemctlstartmysql


可以用下面的语句查看mysql是否开启

systemctlstatusmysql


1.7设置环境变量GOROOT和GOPATH

exportGOROOT=/usr/lib/golang
exportGOPATH=/home


1.8将open-falcon的源码从github上get下来

步骤:

1)创建GOPATH下的一个本地的路径

mkdir-p$GOPATH/src/github.com/open-falcon


2)进入该路径

cd$GOPATH/src/github.com/open-falcon


3)将源码get到本地

gitclone'target='_blank'>https://github.com/open-falcon/falcon-plus.git[/code]
1.9初始化数据库

cd$GOPATH/src/github.com/open-falcon/falcon-plus/scripts/mysql/db_schema/
mysql-h127.0.0.1-uroot-p<1_uic-db-schema.sql
mysql-h127.0.0.1-uroot-p<2_portal-db-schema.sql
mysql-h127.0.0.1-uroot-p<3_dashboard-db-schema.sql
mysql-h127.0.0.1-uroot-p<4_graph-db-schema.sql
mysql-h127.0.0.1-uroot-p<5_alarms-db-schema.sql


再运行“mysql-h..................”时会提示“Enterpassword”,如果mysql的root没有设置密码,回车即可。



1.10编译源码并打包

步骤:

1)进入本地源码路径下

cd$GOPATH/src/github.com/open-falcon/falcon-plus/


2)使用goget获取rrdtool工具包(make过程卡壳的一个点)

gogetgithub.com/open-falcon/rrdlite


这一步是官方教程没有提到的内容,如果不获取该工具包make的时候会报错。



3)编译所有模块

makeall


4)打包

makepack


在$GOPATH/src/github.com/open-falcon/falcon-plus/目录下就多了刚才的压缩包“open-falcon-v0.2.0.tar.gz”。

1.11官方提供的安装包
https://book.open-falcon.org/zh_0_2/quick_install/prepare.html中官方有提供编译包,如果编译过程不顺利可以直接下载编译包。
二、部署后端

2.1创建工作目录

exportWORKSPACE=/home/work
mkdir-p$WORKSPACE


2.2解压二进制包(包名根据实际进行修改)

由于我是根据本教程编译源码获得的压缩包,故需要切换到“$GOPATH/src/github.com/open-falcon/falcon-plus/”路径下。

包名由于makepack的时候就是open-falcon-v0.2.0.tar.gz,具体根据实际情况(17/12/6再部署时发现官方已有0.2.1)。

cd$GOPATH/src/github.com/open-falcon/falcon-plus/

tar-xzvfopen-falcon-v0.2.0.tar.gz-C$WORKSPACE


2.3修改配置文件cfg.json

猜测部分模块依赖连接数据库,因为如果不修改配置文件,aggregator模块会出现无法启动,graph、hbs、nodata、api、alarm模块会出现开启不报错但是状态为开启失败的情况。(个人认为这块的设计值得作为open-falcon优化的一个点,连接本机mysql如果失败是可以收到错误提示的,第一时间有报错提示总比什么都不显示或显示开启但实际开启失败强,如果别人服务都不知道怎么开起来,系统功能再强大有多少人硬着头皮部署下去而不是选择换个系统试试呢)

如果需要每个模块都能正常启动,需要将上面模块的cfg.json的数据库信息进行修改。根据本教程的配置,需要修改配置文件所在的目录:

模块配置文件所在路径
aggregator/home/work/aggregator/config/cfg.json
graph/home/work/graph/config/cfg.json
hbs/home/work/hbs/config/cfg.json
nodata/home/work/nodata/config/cfg.json
api/home/work/api/config/cfg.json
alarm/home/work/alarm/config/cfg.json
1)修改aggregator的配置文件

vim/home/work/aggregator/config/cfg.json




mysql的root密码为空,则去掉“password”,若不为空,则用root密码替换“password”。

2)修改graph的配置文件

vim/home/work/graph/config/cfg.json




mysql的root密码为空,则去掉“password”,若不为空,则用root密码替换“password”。

3)修改hbs的配置文件

vim/home/work/hbs/config/cfg.json




mysql的root密码为空,则去掉“password”,若不为空,则用root密码替换“password”。

4)修改nodata的配置文件

vim/home/work/nodata/config/cfg.json




mysql的root密码为空,则去掉“password”,若不为空,则用root密码替换“password”。

5)修改api的配置文件

vim/home/work/api/config/cfg.json




mysql的root密码为空,则去掉“password”,若不为空,则用root密码替换“password”。

6)修改alarm的配置文件

vim/home/work/alarm/config/cfg.json




mysql的root密码为空,则去掉“password”,若不为空,则用root密码替换“password”。

2.4启动后端模块

cd$WORKSPACE
./open-falconstart


可以用下面的命令检查各个模块的启动情况

./open-falconcheck


更多命令的用法(命令的例子是启动agent模块)

#./open-falcon[start|stop|restart|check|monitor|reload]module
./open-falconstartagent[/code]
./open-falconcheck

falcon-graphUP53007
falcon-hbsUP53014
falcon-judgeUP53020
falcon-transferUP53026
falcon-nodataUP53032
falcon-aggregatorUP53038
falcon-agentUP53044
falcon-gatewayUP53050
falcon-apiUP53056
falcon-alarmUP53063

Fordebugging,Youcancheck$WorkDir/$moduleName/log/logs/xxx.log


三、部署前端

3.1创建工作目录

exportFRONTSPACE=/home/front/open-falcon
mkdir-p$FRONTSPACE


3.2获取前端代码

cd$FRONTSPACE
gitclone'target='_blank'>https://github.com/open-falcon/dashboard.git[/code]

3.3安装依赖包

yuminstall-ypython-virtualenv
yuminstall-ypython-devel
yuminstall-yopenldap-devel
yuminstall-ymysql-devel
yumgroupinstall"Developmenttools"-y

cd$FRONTSPACE/dashboard/
virtualenv./env

./env/bin/pipinstall-rpip_requirements.txt


3.4修改配置

根据本次记录的配置,dashboard的配置文件在/home/front/open-falcon/dashboard/rrd/config.py,需要根据实际情况对内部配置进行修改。

由于前端后台搭在一台虚拟机里,且暂时不接入LDAP,且数据库root的密码为空,故先不修改配置文件。

3.5开启8081端口

1)防火墙添加8081端口永久开放

firewall-cmd--add-port=8081/tcp--permanent


2)重新载入防火墙配置

firewall-cmd--reload


3.6在生产环境启动

bashcontrolstart


由于虚拟机ip配置为192.168.3.1,故在浏览器中输入192.168.3.1:8081后跳转。

3.7以开发者模式启动

./env/bin/pythonwsgi.py


参考资料:

1.https://book.open-falcon.org/zh_0_2/quick_install/index.html

2.http://www.cnblogs.com/comexchan/p/5815869.html

3.http://www.jiloc.com/42528.html

4.http://www.cnblogs.com/lanblogs/p/6104834.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: