在Ubuntu下安装open-falcon和Centos下安装的方法有点区别,因为Ubuntu使用的包管理器是apt-get,而Centos下使用的是Yum,建议不要再Ubuntu下使用yum

建议自己下载源码打包二进制包来安装,因为官方给出的二进制包应该是再centos下打包的,再Ubuntu下运行可能会出现问题

1.安装Go,首先去官网下载,需要fq

https://golang.org

顺便安装Goland,注册服务器 http://idea.youbbs.org

2.在/etc/profile中添加,后source /etc/profile

#Go
export GOROOT=/home/lintong/software/go
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin
export GOPATH=/home/lintong/software/gopath

验证是否安装成功

go version
go version go1.10.2 linux/amd64

接下来参考

Ubuntu 16.04 部署 open-falcon

运维监控系统之Open-Falcon

Open-falcon的官方README

3.安装redis和mysql

sudo apt-get install redis-server
sudo apt-get install mysql-server

确保两个服务已经启动

systemctl status mysql redis-server

4.下载open-falcon源码,地址

https://github.com/open-falcon/falcon-plus

初始化MySQL表结构

mkdir -p $GOPATH/src/github.com/open-falcon
cd $GOPATH/src/github.com/open-falcon/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

5. 编译二进制包

cd $GOPATH/src/github.com/open-falcon/falcon-plus/
# make all modules
make all
# make specified module
make agent
# pack all modules
make pack

打包成功,在目录下多了文件open-falcon-v0.2.1.tar.gz

lintong@lintong-B250M-DS3H:~/software/go/src/github.com/open-falcon/falcon-plus$ make all
go build -o bin/agent/falcon-agent ./modules/agent
go build -o bin/aggregator/falcon-aggregator ./modules/aggregator
go build -o bin/graph/falcon-graph ./modules/graph
go build -o bin/hbs/falcon-hbs ./modules/hbs
go build -o bin/judge/falcon-judge ./modules/judge
go build -o bin/nodata/falcon-nodata ./modules/nodata
go build -o bin/transfer/falcon-transfer ./modules/transfer
go build -o bin/gateway/falcon-gateway ./modules/gateway
go build -o bin/api/falcon-api ./modules/api
go build -o bin/alarm/falcon-alarm ./modules/alarm
go build -ldflags "-X main.GitCommit=`git rev-parse --short HEAD` -X main.Version=0.2.1" -o open-falcon
lintong@lintong-B250M-DS3H:~/software/go/src/github.com/open-falcon/falcon-plus$ make agent
go build -o bin/agent/falcon-agent ./modules/agent
lintong@lintong-B250M-DS3H:~/software/go/src/github.com/open-falcon/falcon-plus$ make pack
go build -ldflags "-X main.GitCommit=`git rev-parse --short HEAD` -X main.Version=0.2.1" -o open-falcon
tar -C out -zcf open-falcon-v0.2.1.tar.gz .

6.解压到安装目录

mkdir ~/software/open-falcon-v0.2.1
tar -zxvf open-falcon-v0.2.1.tar.gz -C ~/software/open-falcon-v0.2.1/

7.安装open-falcon的前端框架dashboard

cd ~/software/open-falcon-v0.2.1
git clone https://github.com/open-falcon/dashboard.git

8.修改数据库密码,因为open-falcon需要操作数据库,这一步是官方教程中没有提到的

如果没有进行修改的话,在open-falcon-v0.2.1目录下使用./open-falcon start命令进行启动之后,使用./open-falcon check检查组件的状态,有些使用mysql的组件的状态是down

下面列出了使用mysql的组件,总共有6个:aggregator,graph、hbs、nodata、api、alarm模块

需要对这些组件的配置文件进行修改:

vim ~/software/open-falcon-v0.2.1/aggregator/config/cfg.json

修改成

其他配置文件的修改方式类似

vim graph/config/cfg.json

vim hbs/config/cfg.json

vim nodata/config/cfg.json

vim api/config/cfg.json # 5处全部修改

vim alarm/config/cfg.json

接下来需要在前端组件中,配置数据库密码

cd ~/software/open-falcon-v0.2.1/dashboard/rrd
vim config.py

9.安装Python的依赖,在Ubuntu下不要使用Yum

sudo apt-get install python-pip python-virtualenv
sudo apt-get install python-dev
sudo apt-get install ldap-utils
sudo apt-get install libmysqld-dev

10.安装virtualenv的运行环境,在服务器上是不建议直接pip安装的,因为Python包的冲突可能会影响到别人的服务

~/software/open-falcon-v0.2.1/dashboard
virtualenv ./env
./env/bin/pip install -r pip_requirements.txt -i https://pypi.douban.com/simple

如果出现 Failed building wheel for python-ldap 的问题
请参考      Installing python-ldap in Ubuntu

sudo apt-get install python-dev
sudo apt-get install libldap2-dev
sudo apt-get install libsasl2-dev
# 然后再
./env/bin/pip install python-ldap

请确保每个Python包都安装到位,成功如下

./env/bin/pip install -r pip_requirements.txt -i https://pypi.douban.com/simple
Looking in indexes: https://pypi.douban.com/simple
Requirement already satisfied: Flask==0.10.1 in ./env/lib/python2.7/site-packages (from -r pip_requirements.txt (line 1)) (0.10.1)
Requirement already satisfied: Flask-Babel==0.9 in ./env/lib/python2.7/site-packages (from -r pip_requirements.txt (line 2)) (0.9)
Requirement already satisfied: Jinja2==2.7.2 in ./env/lib/python2.7/site-packages (from -r pip_requirements.txt (line 3)) (2.7.2)
Requirement already satisfied: Werkzeug==0.9.4 in ./env/lib/python2.7/site-packages (from -r pip_requirements.txt (line 4)) (0.9.4)
Requirement already satisfied: gunicorn==19.1.1 in ./env/lib/python2.7/site-packages (from -r pip_requirements.txt (line 5)) (19.1.1)
Requirement already satisfied: python-dateutil==2.2 in ./env/lib/python2.7/site-packages (from -r pip_requirements.txt (line 6)) (2.2)
Requirement already satisfied: requests==2.3.0 in ./env/lib/python2.7/site-packages (from -r pip_requirements.txt (line 7)) (2.3.0)
Requirement already satisfied: mysql-python in ./env/lib/python2.7/site-packages (from -r pip_requirements.txt (line 8)) (1.2.5)
Requirement already satisfied: python-ldap in ./env/lib/python2.7/site-packages (from -r pip_requirements.txt (line 9)) (3.0.0)
Requirement already satisfied: itsdangerous>=0.21 in ./env/lib/python2.7/site-packages (from Flask==0.10.1->-r pip_requirements.txt (line 1)) (0.24)
Requirement already satisfied: speaklater>=1.2 in ./env/lib/python2.7/site-packages (from Flask-Babel==0.9->-r pip_requirements.txt (line 2)) (1.3)
Requirement already satisfied: Babel>=1.0 in ./env/lib/python2.7/site-packages (from Flask-Babel==0.9->-r pip_requirements.txt (line 2)) (2.5.3)
Requirement already satisfied: markupsafe in ./env/lib/python2.7/site-packages (from Jinja2==2.7.2->-r pip_requirements.txt (line 3)) (1.0)
Requirement already satisfied: six in ./env/lib/python2.7/site-packages (from python-dateutil==2.2->-r pip_requirements.txt (line 6)) (1.11.0)
Requirement already satisfied: pyasn1-modules>=0.1.5 in ./env/lib/python2.7/site-packages (from python-ldap->-r pip_requirements.txt (line 9)) (0.2.1)
Requirement already satisfied: pyasn1>=0.3.7 in ./env/lib/python2.7/site-packages (from python-ldap->-r pip_requirements.txt (line 9)) (0.4.2)
Requirement already satisfied: pytz>=0a in ./env/lib/python2.7/site-packages (from Babel>=1.0->Flask-Babel==0.9->-r pip_requirements.txt (line 2)) (2018.4)

11.启动open-falcon的后端,注意check的时候,每个组件需要都是up状态,down状态说明出了问题

cd ~/software/open-falcon-v0.2.1
./open-falcon start [falcon-graph] 16736
[falcon-hbs] 16749
[falcon-judge] 16763
[falcon-transfer] 16774
[falcon-nodata] 16786
[falcon-aggregator] 16797
[falcon-agent] 16809
[falcon-gateway] 16819
[falcon-api] 16829
[falcon-alarm] 16844 ./open-falcon check falcon-graph UP 16736
falcon-hbs UP 16749
falcon-judge UP 16763
falcon-transfer UP 16774
falcon-nodata UP 16786
falcon-aggregator UP 16797
falcon-agent UP 16809
falcon-gateway UP 16819
falcon-api UP 16829
falcon-alarm UP 16844

以开发者模式启动前端组件

./env/bin/python wsgi.py

12.访问 127.0.0.1:8081,注册一个自己的账号和密码,然后登录,成功

最新文章

  1. MySql 死锁时的一种解决办法
  2. 解决手机浏览器上input 输入框导致页面放大的问题(记录)
  3. layzr.js新版使用方法
  4. ios 根据文字数量计算UILabel高度(已修改)
  5. php中的常用数组函数(四)(数组中是否有某个键名或索引)
  6. Hibernate SQL Dialect 方言
  7. UVa 11181 条件概率
  8. 运行eclipse提示 The requested resource () is not available.
  9. ubuntu下解压zip文件乱码
  10. JavaWeb之Servlet: ServletConfig 与 ServletContext
  11. rsyslog 不打印日志到/var/log/messages
  12. loadrunner必用函数web_reg_save_param获取多个符合边界值条件的使用方法
  13. pe and elf
  14. leetcode1035
  15. siteServer创建网站中Mysql和SqlServer的区别
  16. python time模块总结
  17. mybatis框架下物理分页的实现(整个工程采用的是springmvc、spring、mybatis框架,数据库是mysql数据库)
  18. gradle build scan
  19. 雷林鹏分享:C# 特性(Attribute)
  20. Git使用1

热门文章

  1. Linux vi/vim命令高效助记图
  2. XX.exe 系统找不到指定文件
  3. django之模板继承以和模板导入
  4. C#_02.12_基础二_.NET类型存储和变量
  5. ninja-build环境安装
  6. BIM轻量化助力建筑业迈向BIM+时代
  7. Java+Selenium3框架设计篇5-如何实现邮件发送测试报告
  8. Centos7中ss命令安装
  9. js 将图片文件转换成base64
  10. 在windows命令行批量ping局域网内IP