Open-Falcon是小米公司研发并开源的企业级监控解决方案,旨在解决中等大小公司的运维问题。
监控系统可以说是整个运维系统中最重要的一环。故障发生时及时告警,降低损失;故障解决后,提供完备的信息有利于问题的追踪定位;还可以对采集到的数据进行分析等。目前国内的中小型IT公司多数采用Zabbix等开源监控系统,但Zabbix不能横向扩展,当需要监控的资源逐渐增多时,Zabbix有些力不从心。如BAT级别的大厂可以投入大量资源自研监控系统,可是多数公司并不具备这样的条件,于是很多中等体量的公司一直陷入“开源系统不够用”和“自研系统投入太大”的两难选择中。
Open-Falcon正是为了解决这个问题而生的。它的横向扩展能力很好的解决了中等规模IT公司资源监控的问题,而简单友好的使用方式也使它很快被广大公司所接受。目前除了小米之外,Open-Falcon在滴滴、美团、京东、360等国内著名IT公司均有使用。
下面我们来在单机安装一下Open-Falcon。关于Open-Falcon的安装,官网的文档给出了详尽的说明,但是安装过程中仍然会有一些“坑”,需要我们自己踩过。
服务器采用 CentOS 7 minimal方式安装。我们跟着官方文档一步步搭建Open-Falcon。
一、环境准备
官网地址:https://book.open-falcon.org/zh_0_2/quick_install/prepare.html
安装Redis
yum install -y redis
执行这个命令时可能会发生找不到redis包的状况,这是因为redis不在CentOS 7默认的源当中,需要我们手动安装EPEL,这里我们使用epel-release-6-8.noarch.rpm:
wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
如果找不到 wget 命令,需要先安装 wget:
yum install wget
安装完成后,就可以使用最开始的命令安装 redis 了。如果安装之后使用redis-cli
命令不能连接到 redis 服务器上,说明 redis-server 没有启动??梢允侄舳?redis-server:
nohup redis-server > /dev/null 2>&1 &
安装MySQL
yum install -y mysql-server
这一步容易出现与上一步相同的问题,即找不到 mysql-server 包,这是因为CentOS 7 中移除了默认的mysql包,改为了mariadb。为了安装mysql,我们同样需要手动下载。
wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
然后手动安装:
rpm -ivh mysql-community-release-el7-5.noarch.rpm
安装完成后启动mysql:
mysql -uroot -p
发现没有密码,我们可以手动设置root的密码:
set password for 'root'@'localhost'=password('your_pwd');
初始化MySQL表结构
这一节与官网相同,不会遇到什么大的问题。唯一的一个小问题现在5个.sql
文件的名字略微改动了一下,前面加上了序号。
二、启动后端
官网地址:https://book.open-falcon.org/zh_0_2/quick_install/backend.html
这一节没太多可说的,按照官网步骤一步步来即可。唯一需要注意的一点是,Open-Falcon中各个组件的配置文件中,MySQL和Redis的地址默认都是本地,即127.0.0.1,并且MySQL是root用户不带密码,如果你不是采用与默认配置文件相同的方式则需要修改每个模块的配置文件,每个模块对应的配置文件地址在 $WorkDir/$moduleName/config/cfg.json
中,默认MySQL的配置项为:
"database": "root:@tcp(127.0.0.1:3306)/falcon_portal?loc=Local&parseTime=true"
需要自行加入密码,加在用户名的“:”后面:
"database": "root:your_pwd@tcp(127.0.0.1:3306)/falcon_portal?loc=Local&parseTime=true"
start
和check
命令官网有详细的解释。
三、安装前端
官网地址:https://book.open-falcon.org/zh_0_2/quick_install/frontend.html
由于Open-Falcon的dashboard??槭褂胮ython开发,所以前端安装这一节基本都是在安装python相关的依赖。注意官网给出的安装命令都是基于CentOS的,如果是Ubuntu系统,请参考:https://github.com/open-falcon/dashboard#install-dependency。
前端安装时会遇到一些小问题。第一个问题是如果在前面安装redis时安装了epel-release-6-8.noarch.rpm包,在安装python依赖时可能会遇到源冲突的问题,解决办法就是把之前安装的epel-release-6-8.noarch.rpm包卸载掉:
yum -y remove epel-release-6-8.noarch
另外如果在最后安装Flask框架时(执行./env/bin/pip install -r pip_requirements.txt
命令)出现由于安全问题不能连接到服务器,可以使用:
./env/bin/pip install -r pip_requirements.txt -i http://pypi.doubanio.com/simple
命令进行安装即可。前端启动后会看到页面:
注册并登录即可。
四、参考
open-falcon "Dashboard" 报SSL错:http://shadowhk.blog.51cto.com/2903709/1889234