初识open-falcon

特性: 

  • 强大灵活的数据采集:自动发现,支持falcon-agent、snmp、支持用户主动push、用户自定义插件支持、opentsdb data model like(timestamp、endpoint、metric、key-value tags)
  • 水平扩展能力:支持每个周期上亿次的数据采集、告警判定、历史数据存储和查询
  • 高效率的告警策略管理:高效的portal、支持策略模板、模板继承和覆盖、多种告警方式、支持callback调用
  • 人性化的告警设置:最大告警次数、告警级别、告警恢复通知、告警暂停、不同时段不同阈值、支持维护周期
  • 高效率的graph组件:单机支撑200万metric的上报、归档、存储(周期为1分钟)
  • 高效的历史数据query组件:采用rrdtool的数据归档策略,秒级返回上百个metric一年的历史数据
  • dashboard:多维度的数据展示,用户自定义Screen
  • 高可用:整个系统无核心单点,易运维,易部署,可水平扩展
  • 开发语言: 整个系统的后端,全部golang编写,portal和dashboard使用python编写。

官网架构图 :

安装:

1. 环境准备

安装redis

yum install -y redis

安装mysql

yum install -y mysql-server

注意,请确保redis和MySQL已启动。

初始化MySQL表结构

cd /tmp/ && git clone https://github.com/open-falcon/falcon-plus.git 
cd /tmp/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
rm -rf /tmp/falcon-plus/

如果你是从v0.1.0升级到当前版本v0.2.0,那么只需要执行如下命令:

mysql -h 127.0.0.1 -u root -p < 5_alarms-db-schema.sql

2. 从源码编译

首先,请确保你已经安装好了golang环境,如果没有安装,请参考 https://golang.org/doc/install

cd $GOPATH/src/github.com/open-falcon/falcon-plus/

# make all modules
make all

# pack all modules
make pack

这时候,你会在当前目录下面,得到open-falcon-v0.2.0.tar.gz的压缩包,就表示已经编译和打包成功了。

3. 下载编译好的二进制版本

如果你不想自己编译的话,那么可以下载官方编译好的二进制版本(x86 64位平台)

到这一步,准备工作就完成了。 open-falcon-v0.2.0.tar.gz 这个二进制包,请大家解压到合适的位置,暂时保存,后续步骤需要使用。

启动后端:

创建工作目录

export FALCON_HOME=/home/work
export WORKSPACE=$FALCON_HOME/open-falcon
mkdir -p $WORKSPACE

解压二进制包

tar -xzvf open-falcon-v0.2.1.tar.gz -C $WORKSPACE

在一台机器上启动所有的后端组件

1. 首先确认配置文件中数据库账号密码与实际相同,否则需要修改配置文件。

cd $WORKSPACE
grep -Ilr 3306  ./ | xargs -n1 -- sed -i 's/root:/real_user:real_password/g'

2. 启动

cd $WORKSPACE
./open-falcon start

# 检查所有模块的启动状况
./open-falcon check

更多的命令行工具用法  

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

启动前端 :

创建工作目录

export HOME=/home/work
export WORKSPACE=$HOME/open-falcon
mkdir -p $WORKSPACE
cd $WORKSPACE

克隆前端组件代码

cd $WORKSPACE
git clone https://github.com/open-falcon/dashboard.git

安装依赖包

yum install -y python-virtualenv
yum install -y python-devel
yum install -y openldap-devel
yum install -y mysql-devel
yum groupinstall "Development tools"


cd $WORKSPACE/dashboard/
virtualenv ./env

./env/bin/pip install -r pip_requirements.txt -i https://pypi.douban.com/simple

初始化数据库

请参考环境准备

修改配置

dashboard的配置文件为: 'rrd/config.py',请根据实际情况修改

## API_ADDR 表示后端api组件的地址
API_ADDR = "http://127.0.0.1:8080/api/v1" 

## 根据实际情况,修改PORTAL_DB_*, 默认用户名为root,默认密码为""
## 根据实际情况,修改ALARM_DB_*, 默认用户名为root,默认密码为""

以开发者模式启动

./env/bin/python wsgi.py

open http://127.0.0.1:8081 in your browser.

在生产环境启动

bash control start

open http://127.0.0.1:8081 in your browser.

停止dashboard运行

bash control stop

查看日志

bash control tail

 前端页面:

用户主动push数据到open-falcon: 

{
        "endpoint": "test-endpoint",
        "metric": "test-metric2",
        "timestamp": ts,
        "step": 60,
        "value": 2,
        "counterType": "GAUGE",
        "tags": "idc=lg,loc=beijing",
    },
    •    metric: 最核心的字段,代表这个采集项具体度量的是什么, 比如是cpu_idle呢,还是memory_free, 还是qps
    •    endpoint: 标明Metric的主体(属主),比如metric是cpu_idle,那么Endpoint就表示这是哪台机器的cpu_idle
    •    timestamp: 表示汇报该数据时的unix时间戳,注意是整数,代表的是秒
    •    value: 代表该metric在当前时间点的值,float64
    •    step: 表示该数据采集项的汇报周期,这对于后续的配置监控策略很重要,必须明确指定。
    •    counterType: 只能是COUNTER或者GAUGE二选一,前者表示该数据采集项为计时器类型,后者表示其为原值 (注意大小写)
    ◦    GAUGE:即用户上传什么样的值,就原封不动的存储
    ◦    COUNTER:指标在存储和展现的时候,会被计算为speed,即(当前值 - 上次值)/ 时间间隔
    •    tags: 一组逗号分割的键值对, 对metric进一步描述和细化, 可以是空字符串. 比如idc=lg,比如service=xbox等,多个tag之间用逗号分割

参考:

https://book.open-falcon.org/zh/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值