当前位置: 首页 > 工具软件 > open-rest > 使用案例 >

open-falcon开放式运维监控系统官方docker部署与二次开发,调试,部署

闻人嘉悦
2023-12-01

open-falcon官方推荐docker部署说明

the latest version in docker hub is v0.2.1

1.在第一次运行之前启动mysql并初始化mysql表

    ## start mysql in container
    docker run -itd \
        --name falcon-mysql \
        -v /home/work/mysql-data:/var/lib/mysql \
        -e MYSQL_ROOT_PASSWORD=test123456 \
        -p 3306:3306 \
        mysql:5.7

    ## init mysql table before the first running
    cd /tmp && \
    git clone --depth=1 https://github.com/open-falcon/falcon-plus && \
    cd /tmp/falcon-plus/ && \
    for x in `ls ./scripts/mysql/db_schema/*.sql`; do
        echo init mysql table $x ...;
        docker exec -i falcon-mysql mysql -uroot -ptest123456 < $x;
    done

    rm -rf /tmp/falcon-plus/

2.在容器中启动redis

docker run --name falcon-redis -p6379:6379 -d redis:4-alpine3.8

3.在一个容器中启动falcon-plus模块(后端服务)

    ## pull images from hub.docker.com/openfalcon
    docker pull openfalcon/falcon-plus:v0.2.1
    
    ## 启动容器
    docker run -itd --name falcon-plus \
         --link=falcon-mysql:db.falcon \
         --link=falcon-redis:redis.falcon \
         -p 8433:8433 \
         -p 8080:8080 \
         -e MYSQL_PORT=root:test123456@tcp\(db.falcon:3306\) \
         -e REDIS_PORT=redis.falcon:6379  \
         -v /home/work/open-falcon/data:/open-falcon/data \
         -v /home/work/open-falcon/logs:/open-falcon/logs \
         openfalcon/falcon-plus:v0.2.1
    
    ## 执行容器命令,启动相应组件服务模块
    ## grah 绘图
    ## hbs 数据存储
    ## judge 告警判断
    ## transfer 数据转发服务。它接收agent上报的数据,然后按照哈希规则进行数据分片、
    并将分片后的数据分别push给graph&judge等组件
    ## nodata 用于检测监控数据的上报异常。nodata和实时报警judge模块协同工
    ## aggregator 集群聚合模块。聚合某集群下的所有机器的某个指标的值,提供一种集群视角的监控体验    
    ## agent 用于采集机器负载监控指标,比如cpu.idle、load.1min、disk.io.util等等,
    每隔60秒push给Transfer。agent与Transfer建立了长连接    
    ## gateway 如果您没有遇到机房分区问题,请直接忽略此组件   
    ## api 提供统一的restAPI操作接口。比如:api组件接收查询请求,
    根据一致性哈希算法去相应的graph实例查询不同metric的数据,然后汇总拿到的数据,最后统一返回给用户。   
    ## alarm 处理报警event的,judge产生的报警event写入redis,
    alarm从redis读取处理,并进行不同渠道的发送。  
   
    docker exec falcon-plus sh ctrl.sh start \
            graph hbs judge transfer nodata aggregator agent gateway api alarm

    ## 你可以启动/停止/重新启动特异性模块
    docker exec falcon-plus sh ctrl.sh start/stop/restart xxx(组件模块名)

    ## 后端模块状态检查
    docker exec falcon-plus ./open-falcon check
    
    ## 你可以检查在/家庭/工作/日志/日志/目录下查看日志信息
    ls -l /home/work/open-falcon/logs/      

4.在容器中启动falcon-dashboard(前端服务)

    docker run -itd --name falcon-dashboard \
        -p 8081:8081 \
        --link=falcon-mysql:db.falcon \
        --link=falcon-plus:api.falcon \
        -e API_ADDR=http://api.falcon:8080/api/v1 \
        -e PORTAL_DB_HOST=db.falcon \
        -e PORTAL_DB_PORT=3306 \
        -e PORTAL_DB_USER=root \
        -e PORTAL_DB_PASS=test123456 \
        -e PORTAL_DB_NAME=falcon_portal \
        -e ALARM_DB_HOST=db.falcon \
        -e ALARM_DB_PORT=3306 \
        -e ALARM_DB_USER=root \
        -e ALARM_DB_PASS=test123456 \
        -e ALARM_DB_NAME=alarms \
        -w /open-falcon/dashboard openfalcon/falcon-dashboard:v0.2.1  \
       './control startfg'

从源代码构建open-falcon图像

建立猎鹰加

    cd /tmp && \
    git clone https://github.com/open-falcon/falcon-plus && \
    cd /tmp/falcon-plus/ && \
    docker build -t falcon-plus:v0.2.1 .

建立猎鹰仪表板

    cd /tmp && \
    git clone https://github.com/open-falcon/dashboard  && \
    cd /tmp/dashboard/ && \
    docker build -t falcon-dashboard:v0.2.1 .

 

关于open-falcon项目的二次开发

1.安装gcc编译器

apt-get update

apt-get install gcc

2.搭建go编译环境

下载go-linux环境包 https://studygolang.com/dl

推荐 go1.10.4.linux-amd64.tar.gz

配置go环境变量,GO-ROOT,GO-PATH

$ vim /etc/profile

export PATH=$PATH:/opt/go/bin
export GOPATH=/root/go-project

$ source /etc/profile

查看go版本

$ go version

3.安装goland(强大的go项目编译器)

JetBrains GoLand v2018.1.3 (2018.v1版本即可,可以破解,其他的破解不了)

配置goland的SDK,Go-Path等

4.从github上下载项目源码

open-falcon/falcon-plus后端服务:https://github.com/open-falcon/falcon-plus.git(go语言编写)

open-falcon/dashhboard前端服务:https://github.com/open-falcon/dashboard.git(python语言编写)

5..对open-falcon/falcon-plus/modules/下各个组件服务进行二次开发如(api,agent,alarm,judge,graph等)

6.配置各个组件服务中的config文件,不赘述

7.go项目依赖打包工具(makefile)

make build: 编译
make vendor: 下载依赖
make api: 生成协议代码
make json: easyjson 代码生成
make test: 运行单元测试
make benchmark: 运行性能测试
make stat: 代码复杂度统计,代码行数统计
make clean: 清理 build 目录
make deep_clean: 清理所有代码以外的其他文件
make third: 下载所有依赖的第三方工具
make protoc: 下载 protobuf 工具
make glide: 下载 glide 依赖管理工具
make golang: 下载 golang 环境
make cloc: 下载 cloc 统计工具
make gocyclo: 下载 gocyclo 圈复杂度计算工具
make easyjson: 下载 easyjson 工具

8.二次开发的open-falcon镜像构建

cd到open-falcon项目源码项目的falcon-plus目录下

使用docker build命令构建镜像  例: docker build -t "open-falcon-test:0.10" .

3.启动二次开发的open-falcon容器等组件服务

同官方docker部署启动基本一致,修改容器名,映射端口号,数据挂载目录,日志挂载目录等

4.启动二次开发的open-falcon容器并在Goland中对某个组件服务进行代码调试

同上操作,注意:启动falcon-plus容器后,只开启指定几个组件服务,然后在Goland中开启自己想要调试的组件服务进行操作
例:(我们对api组件模块进行二次开发与调试)

falcon-plus容器开启graph hbs judge transfer nodata aggregator gateway alarm这些组件服务并映射出graph 服务的端口号6070,并删除原先api服务映射的端口号8080,再在Goland中开启falcon-plus/modules中api组件服务(配置cfg.json中api服务占用端口号8080,数据库连接地址3306,graph组件连接端口号6070)

 类似资料: