• Centos7部署Open-falcon 0.2.0


     

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

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


    一、环境准备

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

    1.1 更换阿里yum

         步骤:

         1)下载wget                   

    yum install -y wget

          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 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.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|stop|restart|check|monitor|reload] module
    ./open-falcon start agent

    ./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.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

    参考资料:

    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

  • 相关阅读:
    eslient配置
    webpack实战——手写常用plugin
    自己实现一个大文件切片上传+断点续传
    小程序长列表优化实践
    GitKraken 正體中文
    ruby Sequel 连接 PostgreSQL
    安装 Window Terminal 并连接wsl的Ubuntu系统
    ruby sinatra+puma+Nginx by Ubuntu
    ruby symbol 用法(:变量)
    win10配置子系统Ubuntu子系统(无需通过Windows应用市场)
  • 原文地址:https://www.cnblogs.com/drizzle-xu/p/9766908.html
Copyright © 2020-2023  润新知