一、介绍
Open-Falcon 是小米的一款开源的互联网企业级监控系统解决方案。
a.特点
①数据采集免配置:agent自发现、支持Plugin、主动推送模式
②容量水平扩展:生产环境每秒50万次数据收集、告警、存储、绘图,可持续水平扩展。
③告警策略自发现:Web界面、支持策略模板、模板继承和覆盖、多种告警方式、支持回调动作。
④告警设置人性化:支持最大告警次数、告警级别设置、告警恢复通知、告警暂停、不同时段不同阈
值、支持维护周期,支持告警合并。
⑤历史数据高效查询:秒级返回上百个指标一年的历史数据。
⑥Dashboard人性化:多维度的数据展示,用户自定义Dashboard等功能。
⑦架构设计高可用:整个系统无核心单点,易运维,易部署。
b.安装
Open-Falcon,整体可以分为两部分,即绘图组件、告警组件。其中:
①安装绘图组件:负责数据的采集、收集、存储、归档、采样、查询、展示(Dashboard/Screen)等功能,可以单独工作,作为time-series data的一种存储展示方案。
②安装告警组件:负责告警策略配置(portal)、告警判定(judge)、告警处理(alarm/sender)、用户组管理(uic)等,可以单独工作。
注:以下安装操作皆来自于open-falcon book:http://book.open-falcon.org/zh/intro/index.html,可直接前往查看(环境所限并未演示告警部分)。
二、安装(二进制快速安装)
a.环境准备
①安装redis
# yum install -y redis
②安装MariaDB
# yum install -y mariadb*
③创建并进入工作目录
# mkdir open-falcon # cd open-falcon
④初始化MariaDB表结构
# yum install -y git # git clone https://github.com/open-falcon/scripts.git # cd scripts/ # mysql -h localhost -u root --password="" < db_schema/graph-db-schema.sql # mysql -h localhost -u root --password="" < db_schema/dashboard-db-schema.sql # mysql -h localhost -u root --password="" < db_schema/portal-db-schema.sql # mysql -h localhost -u root --password="" < db_schema/links-db-schema.sql # mysql -h localhost -u root --password="" < db_schema/uic-db-schema.sql
⑤下载并解压编译好的二进制组件(只能跑64位Linux)
# DOWNLOAD="https://github.com/open-falcon/of-release/releases/download/v0.1.0/open-falcon-v0.1.0.tar.gz" # cd open-falcon # mkdir tmp # wget $DOWNLOAD -O open-falcon-latest.tar.gz # tar -zxf open-falcon-latest.tar.gz -C tmp/ # for x in `find ./tmp/ -name "*.tar.gz"`;do \ app=`echo $x|cut -d '-' -f2`; \ mkdir -p $app; \ tar -zxf $x -C $app; \ done
b.安装绘图组件
①安装Transfer
transfer默认监听在:8433端口上,agent会通过jsonrpc的方式来push数据上来。
# cd open-falcon # cd transfer/ # mv cfg.example.json cfg.json ##默认下(所有组件都在同一台服务器上),保持cfg.json不变即可 # ./control start ##启动transfer falcon-transfer started..., pid=7447 # curl -s "http://127.0.0.1:7447/health" ##检验服务 # ./control tail ##查看日志 # ./control stop ##停止transfer falcon-transfer stoped...
②安装Agent
每台机器上,都需要部署agent,agent会自动采集预先定义的各种采集项,每隔60秒,push到transfer。
# cd open-falcon/agent/ # mv cfg.example.json cfg.json # cat cfg.json | sed -n 17,22p "transfer": { "enabled": true, ##true,表示开启向transfer发送数据的功能,默认开启 "addrs": [ ##改地址为transfer组件的监听地址, 为列表形式 "127.0.0.1:8433", "127.0.0.1:8433" ], ### 默认情况下(所有组件都在同一台服务器上),保持cfg.json不变即可 # ./control start ##启动agent falcon-agent started..., pid=9067 # ./control tail ##查看日志
③安装Graph
graph组件是存储绘图数据、历史数据的组件。transfer会把接收到的数据,转发给graph。
# cd open-falcon/graph/ # mv cfg.example.json cfg.json ##默认情况下(所有组件都在同一台服务器上),保持配置不变即可 # ./control start ##启动graph start ok, pid=9089 # ./control tail ##查看日志 # curl -s "http://127.0.0.1:9089/health" ##检验服务
④安装Query
query组件,绘图数据的查询接口,query组件收到用户的查询请求后,会从后端的多个graph,查询相应的数据,聚合后,再返回给用户。
# cd open-falcon/query/ # mv cfg.example.json cfg.json ##默认情况下(所有组件都在同一台服务器上),保持配置不变即可 # ./control start ##启动query start ok, pid=9146 # ./control tail ##查看日志
⑤安装Dashboard
dashboard是面向用户的查询界面,在这里,用户可以看到push到graph中的所有数据,并查看其趋势图。
# yum install -y python-virtualenv mariadb-devel gcc # cd open-falcon/dashboard/ # virtualenv ./env New python executable in ./env/bin/python Installing Setuptools..............................................................................................................................................................................................................................done. Installing Pip.....................................................................................................................................................................................................................................................................................................................................done. # ./env/bin/pip install -r pip_requirements.txt # cat rrd/config.py ##默认情况下(所有组件都在同一台服务器上),保持默认配置即可 #-*-coding:utf8-*- import os #-- dashboard db config -- ### dashboard的数据库配置 DASHBOARD_DB_HOST = "127.0.0.1" DASHBOARD_DB_PORT = 3306 DASHBOARD_DB_USER = "root" DASHBOARD_DB_PASSWD = "" DASHBOARD_DB_NAME = "dashboard" #-- graph db config -- ### graph的数据库配置 GRAPH_DB_HOST = "127.0.0.1" GRAPH_DB_PORT = 3306 GRAPH_DB_USER = "root" GRAPH_DB_PASSWD = "" GRAPH_DB_NAME = "graph" #-- app config -- ## dashboard的配置 DEBUG = True SECRET_KEY = "secret-key" SESSION_COOKIE_NAME = "open-falcon" PERMANENT_SESSION_LIFETIME = 3600 * 24 * 30 SITE_COOKIE = "open-falcon-ck" #-- query config -- ### query服务的地址 QUERY_ADDR = "http://127.0.0.1:9966" BASE_DIR = "/home/work/open-falcon/dashboard/" LOG_PATH = os.path.join(BASE_DIR,"log/") try: from rrd.local_config import * except: pass # ./control start ##启动dashboard falcon-dashboard started..., pid=11835 # ./control tail ##查看日志 # ./control stop ##停止dashboard
这时候就可以通过http://localhost:8081访问dashboard主页了;
在dashboard首页的endpoint字段中,搜索机器名并点击“刷新counter列表”就可以看到数据了。
转载于:https://blog.51cto.com/wangzhijian/1833937