前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >分布式监控-open-falcon

分布式监控-open-falcon

作者头像
yaohong
发布2019-09-11 15:35:05
6510
发布2019-09-11 15:35:05
举报
文章被收录于专栏:姚红专栏姚红专栏

一、环境准备

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

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

步骤:

1)下载wget

代码语言:javascript
复制
yum install -y wget

2)备份默认的yum

代码语言:javascript
复制
mv /etc/yum.repos.d /etc/yum.repos.d.backup

3)设置新的yum目录

代码语言:javascript
复制
mkdir /etc/yum.repos.d

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

代码语言:javascript
复制
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

5)重建缓存

代码语言:javascript
复制
yum clean all
yum makecache

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

代码语言:javascript
复制
yum update -y

1.2 安装vim(个人习惯)

代码语言:javascript
复制
yum install -y vim

1.3 安装git

代码语言:javascript
复制
yum install -y git

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

代码语言:javascript
复制
git version

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

代码语言:javascript
复制
yum install -y epel-release
yum install golang -y

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

代码语言:javascript
复制
go version

1.5 安装redis

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

代码语言:javascript
复制
yum install redis -y

启动redis

代码语言:javascript
复制
systemctl start redis

设置redis开机启动

代码语言:javascript
复制
systemctl enable redis

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

代码语言:javascript
复制
systemctl status redis

1.6 安装mysql

步骤:

1)下载repo源

代码语言:javascript
复制
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)

代码语言:javascript
复制
rpm -ivh mysql-community-release-el7-5.noarch.rpm

3)安装mysql

代码语言:javascript
复制
yum install mysql-server -y

4)启动mysql

代码语言:javascript
复制
systemctl start mysql

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

代码语言:javascript
复制
systemctl status mysql

1.7 设置环境变量GOROOT和GOPATH

代码语言:javascript
复制
export GOROOT=/usr/lib/golang
export GOPATH=/home

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

步骤:

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

代码语言:javascript
复制
mkdir -p $GOPATH/src/github.com/open-falcon

2)进入该路径

代码语言:javascript
复制
cd $GOPATH/src/github.com/open-falcon

3)将源码get到本地

代码语言:javascript
复制
git clone https://github.com/open-falcon/falcon-plus.git

1.9 初始化数据库

代码语言:javascript
复制
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)进入本地源码路径下

代码语言:javascript
复制
cd $GOPATH/src/github.com/open-falcon/falcon-plus/

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

代码语言:javascript
复制
go get github.com/open-falcon/rrdlite

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

3)编译所有模块

代码语言:javascript
复制
make all

4)打包

代码语言:javascript
复制
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.1 创建工作目录

代码语言:javascript
复制
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)。

代码语言:javascript
复制
cd $GOPATH/src/github.com/open-falcon/falcon-plus/

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的配置文件

代码语言:javascript
复制
vim /home/work/aggregator/config/cfg.json

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

2)修改graph的配置文件

代码语言:javascript
复制
vim /home/work/graph/config/cfg.json

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

3)修改hbs的配置文件

代码语言:javascript
复制
vim /home/work/hbs/config/cfg.json

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

4)修改nodata的配置文件

代码语言:javascript
复制
vim /home/work/nodata/config/cfg.json

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

5)修改api的配置文件

代码语言:javascript
复制
vim /home/work/api/config/cfg.json

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

6)修改alarm的配置文件

代码语言:javascript
复制
vim /home/work/alarm/config/cfg.json

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

2.4 启动后端模块

代码语言:javascript
复制
cd $WORKSPACE
./open-falcon start

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

代码语言:javascript
复制
./open-falcon check

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

代码语言:javascript
复制
# ./open-falcon [start|stop|restart|check|monitor|reload] module
./open-falcon start agent

三、部署前端

3.1 创建工作目录

代码语言:javascript
复制
export FRONTSPACE=/home/front/open-falcon
mkdir -p $FRONTSPACE

3.2 获取前端代码

代码语言:javascript
复制
cd $FRONTSPACE
git clone https://github.com/open-falcon/dashboard.git
代码语言:javascript
复制

3.3 安装依赖包

代码语言:javascript
复制
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端口永久开放

代码语言:javascript
复制
firewall-cmd --add-port=8081/tcp --permanent

2)重新载入防火墙配置

代码语言:javascript
复制
firewall-cmd --reload

3.6 在生产环境启动

代码语言:javascript
复制
bash control start

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

3.7 以开发者模式启动

代码语言:javascript
复制
./env/bin/python wsgi.py
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018-04-04 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、环境准备
    • 1.1 更换阿里yum(个人习惯)
      • 1.2 安装vim(个人习惯)
        • 1.3 安装git
          • 1.5 安装redis
            • 1.6 安装mysql
              • 1.7 设置环境变量GOROOT和GOPATH
                • 1.8 将open-falcon的源码从github上get下来
                  • 1.9 初始化数据库
                    • 1.10 编译源码并打包
                      • 1.11 官方提供的安装包
                      • 二、部署后端
                        • 2.1 创建工作目录
                          • 2.3 修改配置文件cfg.json
                            • 2.4 启动后端模块
                            • 三、部署前端
                              • 3.1 创建工作目录
                                • 3.2 获取前端代码
                                  • 3.3 安装依赖包
                                    • 3.4 修改配置
                                      • 3.5 开启8081端口
                                        • 3.6 在生产环境启动
                                          • 3.7 以开发者模式启动
                                          相关产品与服务
                                          云数据库 SQL Server
                                          腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
                                          领券
                                          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档