注:本次安装为测试环境,使用CentOS 6.5的系统,所装软件均为直接yum,若是线上部署,请使用公司提供的软件版本。前端
监控系统是整个运维环节,乃至整个产品生命周期中最重要的一环,事前及时预警发现故障,过后提供翔实的数据用于追查定位问题。监控系统做为一个成熟的运维产品,业界有不少开源的实现可供选择。当公司刚刚起步,业务规模较小,运维团队也刚刚创建的初期,选择一款开源的监控系统,是一个省时省力,效率最高的方案。以后,随着业务规模的持续快速增加,监控的对象也愈来愈多,愈来愈复杂,监控系统的使用对象也从最初少数的几个SRE,扩大为更多的DEVS,SRE。这时候,监控系统的容量和用户的“使用效率”成了最为突出的问题。python
亮点和功能mysql
强大灵活的数据采集:自动发现,支持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编写linux
Open-Falcon采用server-agent方式来实现监控。下面是具体的部署状况:git
本次测试环境,进行单机部署,全部模块都放在一台主机上,若是有须要分布式部署,请参考官方文档https://book.open-falcon.org/zh_0_2/distributed_install/,分布式只须要将模块迁移到其它服务器,修改配置文件便可,十分简单。github
2.1.一、环境准备golang
open-falcon的后端组件都是使用Go语言编写的,因此咱们须要先安装Go语言开发环境redis
yum install golang -y ##须要epel源 export GOROOT=/usr/lib/golang export GOPATH=/home
安装redissql
yum install -y redis1
安装mysql并启动数据库
yum install -y mysql-server /etc/init.d/mysqld start
##测试机是centos6的,其他系统自行更改启动命令
初始化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/
2.1.二、安装
建立工做目录
export FALCON_HOME=/home/work export WORKSPACE=$FALCON_HOME/open-falcon mkdir -p $WORKSPACE
下载编译好的二进制包并解压
wget https://github.com/open-falcon/falcon-plus/releases/download/v0.2.1/open-falcon-v0.2.1.tar.gz tar -xzvf open-falcon-v0.2.1.tar.gz -C $WORKSPACE
2.1.三、配置文件
在启动以前,须要修改各模块的配置文件,保证数据库的用户名和密码正确。下面是各个模块的配置文件路径。
aggregator /home/work/aggregator/config/cfg.json graph /home/work/graph/config/cfg.json hbs /home/work/hbs/config/cfg.json nodata /home/work/nodata/config/cfg.json api /home/work/api/config/cfg.json alarm /home/work/alarm/config/cfg.json
2.1.四、启动
cd $WORKSPACE ./open-falcon start
# 检查全部模块的启动情况
./open-falcon check falcon-graph UP 3020 falcon-hbs UP 3030 falcon-judge UP 3039 falcon-transfer UP 3045 falcon-nodata UP 3051 falcon-aggregator UP 3058 falcon-agent UP 3067 falcon-gateway UP 3073 falcon-api UP 3079 falcon-alarm UP 3092
克隆前端组件代码
cd $WORKSPACE git clone https://github.com/open-falcon/dashboard.git12
安装依赖包
yum install -y python-virtualenv yum install -y python-devel yum install -y openldap-devel yum install -y mysql-devel yum groupinstall "Development tools"
安装python依赖环境
#下载ez_setup.py
wget --no-check-certificate https://bootstrap.pypa.io/ez_setup.py python ez_setup.py --insecure
#下载pip
wget https://pypi.python.org/packages/11/b6/abcb525026a4be042b486df43905d6893fb04f05aac21c32c638e939e447/pip-9.0.1.tar.gz
#解压并安装
tar xf pip-9.0.1.tar.gz cd pip-9.0.1 python setup.py install
#测试,查看版本
pip -V
#pip安装软件
cd /home/work/open-falcon/dashboard pip install -r pip_requirements.txt
修改dashboard配置文件,修改数据库的用户名和密码,保证dashboard能链接数据库。
vim /home/work/open-falcon/dashboard/rrd/config.py
启动
bash control start
访问网站 http://IP:8081 ,刚登录须要注册用户,注册的第一个用户名为root的账号会被认为是超级管理员,超级管理员能够设置其余用户为管理员。