zoukankan      html  css  js  c++  java
  • openfalcon安装及各组件介绍

    环境

    内核: n3.10.0-693.11.6.el7.x86_64
    系统: CentOS Linux release 7.4.1708 (Core)
    falcon: open-falcon-v0.2.x.tar.gz
    go: go1.9.2.linux-amd64.tar.gz

    安装

    安装redis和mysql

    1. yum install -y redis
    2. yum install -y mariadb-server

    导入表结构

    1. cd /tmp/ && git clone https://github.com/open-falcon/falcon-plus.git
    2. cd /tmp/falcon-plus/scripts/mysql/db_schema/
    3. mysql -h 127.0.0.1 -u root -p < 1_uic-db-schema.sql
    4. mysql -h 127.0.0.1 -u root -p < 2_portal-db-schema.sql
    5. mysql -h 127.0.0.1 -u root -p < 3_dashboard-db-schema.sql
    6. mysql -h 127.0.0.1 -u root -p < 4_graph-db-schema.sql
    7. mysql -h 127.0.0.1 -u root -p < 5_alarms-db-schema.sql
    8. rm -rf /tmp/falcon-plus/

    安装golang环境

    1. tar -C /usr/local -xzf go1.9.2.linux-amd64.tar.gz
    2. echo 'export GOROOT=/usr/local/go' >> /etc/profile
    3. echo 'export GOPATH=/root/workspace' >> /etc/profile
    4. echo 'export PATH=$PATH:/usr/local/go/bin
    5. ' >> /etc/profile

    从源码编译

    1. mkdir -p $GOPATH/src/github.com/open-falcon
    2. cd $GOPATH/src/github.com/open-falcon
    3. git clone https://github.com/open-falcon/falcon-plus.git
    4. cd falcon-plus/
    5. make all modules
    6. make pack
    7. ##这时候,你会在当前目录下面,得到open-falcon-v0.2.x.tar.gz的压缩包,就表示已经编译和打包成功了。

    创建工作目录

    1. export FALCON_HOME=/home/work
    2. export WORKSPACE=$FALCON_HOME/open-falcon
    3. mkdir -p $WORKSPACE

    解压二进制包

    1. tar xf open-falcon-v0.2.1.tar.gz -C $WORKSPACE

    根据实际情况修改配置文件中的账号密码

    1. cd $WORKSPACE
    2. grep -Ilr 3306 ./ | xargs -n1 -- sed -i 's/root:password/自己的用户:自己的密码/g')

    启动

    1. cd $WORKSPACE
    2. ./open-falcon start
    3. # 检查所有模块的启动状况
    4. ./open-falcon check

    安装dashboard

    1. export HOME=/home/work
    2. export WORKSPACE=$HOME/open-falcon
    3. mkdir -p $WORKSPACE
    4. cd $WORKSPACE
    5. # 克隆代码
    6. cd $WORKSPACE
    7. git clone https://github.com/open-falcon/dashboard.git
    8. # 安装依赖包
    9. yum install -y python-virtualenv
    10. yum install -y python-devel
    11. yum install -y openldap-devel
    12. yum install -y mysql-devel
    13. yum groupinstall "Development tools"
    14. cd $WORKSPACE/dashboard/
    15. virtualenv ./env
    16. ./env/bin/pip install -r pip_requirements.txt -i https://pypi.douban.com/simple
    17. # 修改配置
    18. dashboard的配置文件为: 'rrd/config.py',请根据实际情况修改
    19. ## API_ADDR 表示后端api组件的地址
    20. API_ADDR = "http://127.0.0.1:8080/api/v1"
    21. ## 根据实际情况,修改PORTAL_DB_*, 默认用户名为root,默认密码为""
    22. ## 根据实际情况,修改ALARM_DB_*, 默认用户名为root,默认密码为""
    23. # 启动
    24. bash control start
    25. # 停止
    26. bash control stop
    27. # 查看日志
    28. bash control tail

    组件介绍

    • falcon-graph
      • graph是存储绘图数据的组件。graph组件 接收transfer组件推送上来的监控数据,同时处理api组件的查询请求、返回绘图数据。
      • 部署完graph组件后,请修改transfer和api的配置,使这两个组件可以寻址到graph。
    • falcon-hbs
      • agent发送心跳信息给HBS的时候,会把hostname、ip、agent version、plugin version等信息告诉HBS,HBS负责更新host表。
      • HBS去获取所有的报警策略缓存在内存里,然后Judge去向HBS请求。
      • 如果你先部署了agent,后部署的hbs,那咱们部署完hbs之后需要回去修改agent的配置,把agent配置中的heartbeat部分enabled设置为true,addr设置为hbs的rpc地址。如果hbs的配置文件维持默认,rpc端口就是6030,http端口是6031,agent中应该配置为hbs的rpc端口,小心别弄错了。
    • falcon-judge
      • Judge用于告警判断,agent将数据push给Transfer,Transfer不但会转发给Graph组件来绘图,还会转发给Judge用于判断是否触发告警。
      • 因为监控系统数据量比较大,一台机器显然是搞不定的,所以必须要有个数据分片方案。Transfer通过一致性哈希来分片,每个Judge就只需要处理一小部分数据就可以了。所以判断告警的功能不能放在直接的数据接收端:Transfer,而应该放到Transfer后面的组件里。
    • falcon-transfer
      • transfer是数据转发服务。它接收agent上报的数据,然后按照哈希规则进行数据分片、并将分片后的数据分别push给graph&judge等组件。
      • 部署完成transfer组件后,请修改agent的配置,使其指向正确的transfer地址。在安装完graph和judge后,请修改transfer的相应配置、使其能够正确寻址到这两个组件。
    • falcon-nodata
      • nodata用于检测监控数据的上报异常。nodata和实时报警judge模块协同工作,过程为: 配置了nodata的采集项超时未上报数据,nodata生成一条默认的模拟数据;用户配置相应的报警策略,收到mock数据就产生报警。采集项上报异常检测,作为judge模块的一个必要补充,能够使judge的实时报警功能更加可靠、完善。
    • falcon-aggregator
      • 集群聚合模块。聚合某集群下的所有机器的某个指标的值,提供一种集群视角的监控体验。
    • falcon-agent
      • agent用于采集机器负载监控指标,比如cpu.idle、load.1min、disk.io.util等等,每隔60秒push给Transfer。agent与Transfer建立了长连接,数据发送速度比较快,agent提供了一个http接口/v1/push用于接收用户手工push的一些数据,然后通过长连接迅速转发给Transfer
    • falcon-gateway
    • falcon-api
      • api组件,提供统一的restAPI操作接口。比如:api组件接收查询请求,根据一致性哈希算法去相应的graph实例查询不同metric的数据,然后汇总拿到的数据,最后统一返回给用户。
      • 部署完成api组件后,请修改dashboard组件的配置、使其能够正确寻址到api组件。
      • 请确保api组件的graph列表 与 transfer的配置 一致。
    • falcon-alarm
      • alarm模块是处理报警event的,judge产生的报警event写入redis,alarm从redis读取处理,并进行不同渠道的发送。
      • alarm是个单点。对于未恢复的告警是放到alarm的内存中的,alarm还需要做报警合并,故而alarm只能部署一个实例。需要对alarm的存活做好监控。
      • 如果某个核心服务挂了,可能会造成大面积报警,为了减少报警短信数量,我们做了报警合并功能。把报警信息写入dashboard模块,然后dashboard返回一个url地址给alarm,alarm将这个url链接发给用户,这样用户只要收到一条短信(里边是个url地址),点击url进去就是多条报警内容。
      • highQueues中配置的几个event队列中的事件是不会做报警合并的,因为那些是高优先级的报警,报警合并只是针对lowQueues中的事件。如果所有的事件都不想做报警合并,就把所有的event队列都配置到highQueues中即可

    监控实现

    端口监控

    1. net.port.listen/port=22
    2. net.port.listen/port=80
    3. net.port.listen/port=443

    进程监控

    1. proc.num/name=ntpd
    2. # 这里的name是cat /proc/ntpd对应的进程id/status中的name字段

    怎么知道我的策略是否同步成功了?

    A: curl -s "judge-hostname:port/strategy/host.test.01/cpu.idle", 这个是查看 机器host.test.01 & metric为 cpu.idle 对应的策略。

    触发器函数:http://book.open-falcon.org/zh_0_2/usage/func.html
    基本上all(#3)就够用了,其他先不用记,先知道有就行。

  • 相关阅读:
    一道华为笔试题--内存块排序
    正则表达式
    Paxos算法的一个简单小故事
    Zookeeper中的Leader选取机制
    CCF201604-2俄罗斯方块
    Mybatis----Mapper.xml中的输入映射
    Mybatis----mybatis的全局配置文件SqlMapConfig.xml的配置
    Mybatis----开发dao
    Mybatis----入门程序
    Spring----面向切面编程和通知类型
  • 原文地址:https://www.cnblogs.com/yangruizeng/p/8376231.html
Copyright © 2011-2022 走看看