虽然open-falcon是采用了先后端分离的架构,可是为了方便部署,服务端的后端与前端均部署在同一个虚拟机内,本记录是从centos刚刚装完后的初始环境开始部署,安装全程选择的用户为root。html
1、环境准备前端
操做系统:centos7(minimal,www.centos.org下载的包是CentOS-7-x86_64-Minimal-1611.iso)python
1.1 更换阿里yum(我的习惯)mysql
步骤:git
1)下载wget github
yum install -y wget
2)备份默认的yumgolang
mv /etc/yum.repos.d /etc/yum.repos.d.backup
3)设置新的yum目录redis
mkdir /etc/yum.repos.d
4)下载阿里yum配置到该目录中sql
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
5)重建缓存数据库
yum clean all
yum makecache
6)升级全部包(改变软件设置和系统设置,系统版本内核都升级,故须要几分钟耐心等待)
yum update -y
1.2 安装vim(我的习惯)
yum install -y vim
1.3 安装git
yum install -y git
安装结束后安全起见,确认是否知足官方要求的Git >= 1.7.5
git version
1.4 安装go语言环境(由于官方yum和阿里yum都没有go的安装包,故只能经过fedora的epel仓库来安装)
yum install -y epel-release
yum install golang -y
安装结束后安全起见,确认是否知足官方要求的Go >= 1.6
go version
1.5 安装redis
因为部署go时已经安装了epel,故直接执行下面的安装命令(若是没有装epel,会提示No package redis available,也就是没有安装包可用,由于官方yum和阿里yum都没有redis,故只能经过fedora的epel仓库来安装)
yum install redis -y
启动redis
systemctl start redis
设置redis开机启动
systemctl enable redis
能够用下面的语句查看redis是否开启
systemctl status redis
1.6 安装mysql
步骤:
1)下载repo源
wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
2)安装该rpm包(安装这个包后,会得到两个mysql的yum repo源:/etc/yum.repos.d/mysql-community.repo,/etc/yum.repos.d/mysql-community-source.repo)
rpm -ivh mysql-community-release-el7-5.noarch.rpm
3)安装mysql
yum install mysql-server -y
4)启动mysql
systemctl start mysql
能够用下面的语句查看mysql是否开启
systemctl status mysql
1.7 设置环境变量GOROOT和GOPATH
export GOROOT=/usr/lib/golang
export GOPATH=/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到本地
git clone https://github.com/open-falcon/falcon-plus.git
1.9 初始化数据库
cd $GOPATH/src/github.com/open-falcon/falcon-plus/scripts/mysql/db_schema/
mysql -h 127.0.0.1 -u root -p < 1_uic-db-schema.sql mysql -h 127.0.0.1 -u root -p < 2_portal-db-schema.sql mysql -h 127.0.0.1 -u root -p < 3_dashboard-db-schema.sql mysql -h 127.0.0.1 -u root -p < 4_graph-db-schema.sql mysql -h 127.0.0.1 -u root -p < 5_alarms-db-schema.sql
再运行“mysql -h..................”时会提示“Enter password”,若是mysql的root没有设置密码,回车便可。
1.10 编译源码并打包
步骤:
1)进入本地源码路径下
cd $GOPATH/src/github.com/open-falcon/falcon-plus/
2)使用go get获取rrdtool工具包(make过程卡壳的一个点)
go get github.com/open-falcon/rrdlite
这一步是官方教程没有提到的内容,若是不获取该工具包make的时候会报错。
3)编译全部模块
make all
4)打包
make pack
在$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、部署后端
2.1 建立工做目录
export WORKSPACE=/home/work
mkdir -p $WORKSPACE
2.2 解压二进制包(包名根据实际进行修改)
因为我是根据本教程编译源码得到的压缩包,故须要切换到“$GOPATH/src/github.com/open-falcon/falcon-plus/”路径下。
包名因为make pack的时候就是open-falcon-v0.2.0.tar.gz,具体根据实际状况(17/12/6再部署时发现官方已有0.2.1)。
cd $GOPATH/src/github.com/open-falcon/falcon-plus/
tar -xzvf open-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-falcon start
能够用下面的命令检查各个模块的启动状况
./open-falcon check
更多命令的用法(命令的例子是启动agent模块)
./open-falcon start agent# ./open-falcon [start|stop|restart|check|monitor|reload] module
./open-falcon check
falcon-graph UP 53007
falcon-hbs UP 53014 falcon-judge UP 53020 falcon-transfer UP 53026 falcon-nodata UP 53032 falcon-aggregator UP 53038 falcon-agent UP 53044 falcon-gateway UP 53050 falcon-api UP 53056 falcon-alarm UP 53063 For debugging , You can check $WorkDir/$moduleName/log/logs/xxx.log
3、部署前端
3.1 建立工做目录
export FRONTSPACE=/home/front/open-falcon
mkdir -p $FRONTSPACE
3.2 获取前端代码
cd $FRONTSPACE
git clone https://github.com/open-falcon/dashboard.git
3.3 安装依赖包
yum install -y python-virtualenv
yum install -y python-devel
yum install -y openldap-devel
yum install -y mysql-devel
yum groupinstall "Development tools" -y
cd $FRONTSPACE/dashboard/
virtualenv ./env
./env/bin/pip install -r pip_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 在生产环境启动
bash control start
因为虚拟机ip配置为192.168.3.1,故在浏览器中输入192.168.3.1:8081后跳转。
3.7 以开发者模式启动
./env/bin/python wsgi.py原文地址(参考借鉴):https://www.cnblogs.com/straycats/p/7199209.html官方地址(GitHub):http://book.open-falcon.org/zh_0_2/quick_install/prepare.html