美文网首页
Open-Falcon部署

Open-Falcon部署

作者: TaoBeier | 来源:发表于2015-10-14 00:21 被阅读20204次

    本文并不分析Open-Falcon的架构或者选用它的原因,官方的文档在这里,虽然还不够完善。不过这也是我写这篇的原因,官方文档并没能把整个部署过程连在一起,而且个别地方有点问题。我在这篇文章中就不介绍各个组件的作用和功能了,只是单纯的介绍如何从零部署。

    安装

    下载

    wget https://github.com/XiaoMi/open-falcon/releases/download/0.0.5/open-falcon-0.0.5.tar.gz -O open-falcon.tar.gz

    
    #### 解压
    > ```
      mkdir tmp
      tar -zxvf open-falcon.tar.gz -C ./tmp
    

    基础环境

    sudo apt-get install redis-server
    sudo apt-get install mysql-server
    pip install virtualenv

    数据库初始化的代码来源于官方文档

    git clone https://github.com/open-falcon/scripts.git
    cd scripts
    mysql -h localhost -u root -p < db_schema/graph-db-schema.sql
    mysql -h localhost -u root -p < db_schema/dashboard-db-schema.sql
    mysql -h localhost -u root -p < db_schema/portal-db-schema.sql
    mysql -h localhost -u root -p < db_schema/links-db-schema.sql
    mysql -h localhost -u root -p < db_schema/uic-db-schema.sql

    
    ## 配置
    
    **数据库连接的配置格式是:** `username:password@tcp(path:port)/xxxx`
    
    
    ### agent
    > `mv cfg.example.json cfg.json && ./control start && ./control tail`
    > 开始监听1988端口,查看log.
    > 默认端口是1988, 可以打开 [http://127.0.0.1:1988](http://127.0.0.1:1988) 查看一个比较简单的web dashboard. 没什么特殊需要的话, 可以使用默认配置.
    
    ### hbs
    > `mv cfg.example.json cfg.json && ./control start && ./control tail`
    > 心跳服务默认http端口是6030, rpc 端口 6031
    
    ### transfer
    > `mv cfg.example.json cfg.json && ./control start && ./control tail`
    > 默认http端口是6060, rpc端口8433
    
    ### judge
    > `mv cfg.example.json cfg.json && ./control start && ./control tail`
    > http端口6081, rpc端口 6080
    > 配置项中注意alarm的 redis链接 和hbs的server地址,如果修改过请记得对应.
    
    ### graph
    > `mv cfg.example.json cfg.json && ./control start && ./control tail`
    > rpc端口 6070,  http端口 6071
    > 数据库文件存储在`/home/work/data/6070` 启动报错的话, 换sudo 或者 root 用户启动.
    > 注意修改数据库连接.
    
    上面的服务配置完成数据就开始采集了. 
    
    ### dashboard
    > ```
      virtualenv env
      source env/bin/activate
      ./env/bin/pip install -r pip_requirements.txt
      # 使用
      ./env/bin/python wsgi.py
      # 或者用
      deactivate && ./control start && ./control tail
    

    可以更改为自定义端口.这里可以查看Endpoints 的相关数据并绘图.

    query

    mv cfg.example.json cfg.json && ./control start && ./control tail
    只要修改cfg.json 文件即可, 注意还有 graph_backends.txt 文件

    fe

    mv cfg.example.json cfg.json && ./control start && ./control tail
    注意配置项目中的数据库连接, 以及下面的shortcut 中需要配置外网可以访问的地址,如果不是在服务器部署的话,这里默认也没有关系.

    portal

    这里要注意一个坑. 如果使用./control start 启动服务, 并且更改了默认端口的, 请配置 gunicorn.conf 中的bind项. 如果是使用python wsgi.py启动的话, 修改wsgi.py中的端口即可.
    同时在配置 frame/config.py 的时候, 要注意所谓UIC_ADDRESS 选项的配置, 其实就是填写上面fe 模块的地址.

    UIC_ADDRESS = {
    'internal': 'http://127.0.0.1:port', #你的内网地址
    'external': 'http://your_fe_name', #外网访问的地址, 如果是本地部署,这里可以和内网地址一样
    }

    > 这里确实想对web界面的操作吐槽一下,相当不人性化.而且配置告警的时候,真的没有把整个流程联系在一起啊喂!这里的配置可以创建一个`template` 然后再创建监控主机,进行绑定.
    > 在模板中配置的`callback()` 非常好用.可以在这里直接写告警消息的推送接口,使用第三方服务也ok.
    
    ### alarm
    > `mv cfg.example.json cfg.json && ./control start && ./control tail`
    > 需要配置的就是自定义的端口监控地址, 和下面的api, 其他部分保持默认即可.
    > 在[它的文档](http://book.open-falcon.com/zh/install_from_src/alarm.html)中写着下面这样的说明
    > ```
    {...
      "api": {
          "portal": "http://falcon.example.com", # 内网可访问的portal的地址
          "uic": "http://uic.example.com", # 内网可访问的uic(或fe)的地址
          "links": "http://link.example.com" # 外网可访问的links的地址
      }     
    }
    

    但是如果按照这样配的话,所有东西就只能在内网访问了.这明显是不符合我们的期望的. 所以这里要全部配置成外网可以访问的地址,防止踩坑.

    sender

    这个组件用于调用自己提供的短信和邮件接口, 编辑 cfg.json 添加

    {...
    'api': {
    'sms': 'http://your_send_sms_api',
    'mail': 'http://your_send_mail_api'
    }
    }

    > 在调用的时候, 会把消息先写入redis队列中, 之后再调用接口,进行消息发送. 
    > worker 参数是对队列的配置.
    
    ### links
    > `mv cfg.example.json cfg.json && ./control start && ./control tail`
    > 告警合并组件, python应用, 记得修改默认端口即可.
    
    ## 其他
    
    ### task
    > 监控自检程序
    
    ### gateway
    > 没有跨机房问题可以忽略.(hhah
    
    ### redis-monitor.py
    > scripts 文件夹中一个很简单的脚本, 把redis info 中的数据读出,写入数据库, 供监控使用.
    
    最后附图一张,前几天我启动这个服务时候的终端。
    ![2015-10-09-172438_1911x1160_scrot.png](https://img.haomeiwen.com/i1043453/97069b3fb183a2c6.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
    
    其他相关内容可以移步至[我的博客](http://moelove.info/)查看

    相关文章

      网友评论

          本文标题:Open-Falcon部署

          本文链接:https://www.haomeiwen.com/subject/zbmocttx.html