当前位置: 首页 > news >正文

分布式监控-open-falcon

一、环境准备

操作系统:centos7(minimal,www.centos.org下载的包是CentOS-7-x86_64-Minimal-1611.iso)

1.1 更换阿里yum(个人习惯)

     步骤:

     1)下载wget                   

yum install -y wget

      2)备份默认的yum

mv /etc/yum.repos.d /etc/yum.repos.d.backup

      3)设置新的yum目录

mkdir /etc/yum.repos.d

      4)下载阿里yum配置到该目录中

wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

       5)重建缓存

yum clean all
yum makecache

       6)升级所有包(改变软件设置和系统设置,系统版本内核都升级,故需要几分钟耐心等待)

yum update -y

1.2 安装vim(个人习惯)

yum install -y vim

 

1.3 安装git

yum install -y git

 

安装结束后安全起见,确认是否满足官方要求的Git >= 1.7.5

git version

 

1.4 安装go语言环境(因为官方yum和阿里yum都没有go的安装包,故只能通过fedora的epel仓库来安装)

yum install -y epel-release
yum install golang -y

 

安装结束后安全起见,确认是否满足官方要求的Go >= 1.6

go version

 

1.5 安装redis

由于部署go时已经安装了epel,故直接执行下面的安装命令(如果没有装epel,会提示No package redis available,也就是没有安装包可用,因为官方yum和阿里yum都没有redis,故只能通过fedora的epel仓库来安装)

yum install redis -y

启动redis

systemctl start redis

设置redis开机启动 

systemctl enable redis

可以用下面的语句查看redis是否开启

systemctl status redis

 

1.6 安装mysql

      步骤:

      1)下载repo源

wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm

      2)安装该rpm包(安装这个包后,会获得两个mysql的yum repo源:/etc/yum.repos.d/mysql-community.repo,/etc/yum.repos.d/mysql-community-source.repo)

rpm -ivh mysql-community-release-el7-5.noarch.rpm

      3)安装mysql

yum install mysql-server -y

      4)启动mysql

systemctl start mysql

可以用下面的语句查看mysql是否开启

systemctl status mysql

   

1.7 设置环境变量GOROOT和GOPATH

export GOROOT=/usr/lib/golang
export GOPATH=/home

 

1.8 将open-falcon的源码从github上get下来

      步骤:

      1)创建GOPATH下的一个本地的路径

mkdir -p $GOPATH/src/github.com/open-falcon

      2)进入该路径

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

      3)将源码get到本地

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

 

1.9 初始化数据库

复制代码
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
复制代码

 再运行“mysql -h..................”时会提示“Enter password”,如果mysql的root没有设置密码,回车即可。

 

1.10 编译源码并打包

       步骤:

       1)进入本地源码路径下

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

       2)使用go get获取rrdtool工具包(make过程卡壳的一个点) 

go get github.com/open-falcon/rrdlite

这一步是官方教程没有提到的内容,如果不获取该工具包make的时候会报错。

       3)编译所有模块

make all

       4)打包

make pack

 在$GOPATH/src/github.com/open-falcon/falcon-plus/目录下就多了刚才的压缩包“open-falcon-v0.2.0.tar.gz”。

 

1.11 官方提供的安装包

https://book.open-falcon.org/zh_0_2/quick_install/prepare.html中官方有提供编译包,如果编译过程不顺利可以直接下载编译包。


 

二、部署后端

2.1 创建工作目录

export WORKSPACE=/home/work
mkdir -p $WORKSPACE

 

2.2 解压二进制包(包名根据实际进行修改) 

由于我是根据本教程编译源码获得的压缩包,故需要切换到“$GOPATH/src/github.com/open-falcon/falcon-plus/”路径下。

包名由于make pack的时候就是open-falcon-v0.2.0.tar.gz,具体根据实际情况(17/12/6再部署时发现官方已有0.2.1)。

cd $GOPATH/src/github.com/open-falcon/falcon-plus/
tar -xzvf open-falcon-v0.2.0.tar.gz -C $WORKSPACE

 

2.3 修改配置文件cfg.json

猜测部分模块依赖连接数据库,因为如果不修改配置文件,aggregator模块会出现无法启动,graph、hbs、nodata、api、alarm模块会出现开启不报错但是状态为开启失败的情况。(个人认为这块的设计值得作为open-falcon优化的一个点,连接本机mysql如果失败是可以收到错误提示的,第一时间有报错提示总比什么都不显示或显示开启但实际开启失败强,如果别人服务都不知道怎么开起来,系统功能再强大有多少人硬着头皮部署下去而不是选择换个系统试试呢)

 

如果需要每个模块都能正常启动,需要将上面模块的cfg.json的数据库信息进行修改。根据本教程的配置,需要修改配置文件所在的目录: 

模块配置文件所在路径
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

1)修改aggregator的配置文件

vim /home/work/aggregator/config/cfg.json

mysql的root密码为空,则去掉“password”,若不为空,则用root密码替换“password”。

 

2)修改graph的配置文件

vim /home/work/graph/config/cfg.json

mysql的root密码为空,则去掉“password”,若不为空,则用root密码替换“password”。

 

3)修改hbs的配置文件

vim /home/work/hbs/config/cfg.json

 

mysql的root密码为空,则去掉“password”,若不为空,则用root密码替换“password”。

 

4)修改nodata的配置文件

vim /home/work/nodata/config/cfg.json

 

mysql的root密码为空,则去掉“password”,若不为空,则用root密码替换“password”。

 

5)修改api的配置文件

vim /home/work/api/config/cfg.json

 

mysql的root密码为空,则去掉“password”,若不为空,则用root密码替换“password”。

 

6)修改alarm的配置文件

vim /home/work/alarm/config/cfg.json

 

mysql的root密码为空,则去掉“password”,若不为空,则用root密码替换“password”。 

 

2.4 启动后端模块

cd $WORKSPACE
./open-falcon start

可以用下面的命令检查各个模块的启动情况

./open-falcon check

更多命令的用法(命令的例子是启动agent模块)

复制代码
# ./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
复制代码

 


 

三、部署前端

3.1 创建工作目录

export FRONTSPACE=/home/front/open-falcon
mkdir -p $FRONTSPACE

 

3.2 获取前端代码

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

3.3 安装依赖包

复制代码
yum install -y python-virtualenv
yum install -y python-devel
yum install -y openldap-devel
yum install -y mysql-devel
yum groupinstall "Development tools" -y

cd $FRONTSPACE/dashboard/
virtualenv ./env

./env/bin/pip install -r pip_requirements.txt
复制代码

 

3.4 修改配置

根据本次记录的配置,dashboard的配置文件在/home/front/open-falcon/dashboard/rrd/config.py,需要根据实际情况对内部配置进行修改。

由于前端后台搭在一台虚拟机里,且暂时不接入LDAP,且数据库root的密码为空,故先不修改配置文件。

  

3.5 开启8081端口

1)防火墙添加8081端口永久开放

firewall-cmd --add-port=8081/tcp --permanent

2)重新载入防火墙配置

firewall-cmd --reload

 

3.6 在生产环境启动

bash control start

由于虚拟机ip配置为192.168.3.1,故在浏览器中输入192.168.3.1:8081后跳转。

 

3.7 以开发者模式启动 

./env/bin/python wsgi.py

 

相关文章:

  • PV PVC - 每天5分钟玩转 Docker 容器技术(150)
  • 阿里九年架构师教你如何学会阅读源码
  • Viewpager+FragmentStatePagerAdapter动态添加,删除,移动位置,(局部)更新页面(Fragment)不闪屏,不错位解决方案...
  • Kubernetes日志分析利器:Elassandra部署使用指南
  • 可汗学院
  • 泛在电力物联网有项核心技术 你听过没有?
  • 2018华为ICT大赛企业网络方向初赛大纲(来源自华为官方)
  • 安卓应用安全指南 5.6.2 密码学 规则书
  • 网络安全笔记
  • Association, Composition and Aggregation in UI5, CRM, S/4HANA and C4C
  • iOS 组件化开发(三):加载资源文件
  • swift中利用系统线程实现异步加载数据同步更新UI
  • T56
  • pyqt5的下载进度条 实现模板
  • 用servlet校验密码2
  • JavaScript-如何实现克隆(clone)函数
  • 【干货分享】SpringCloud微服务架构分布式组件如何共享session对象
  • Java的Interrupt与线程中断
  • Laravel Telescope:优雅的应用调试工具
  • MySQL的数据类型
  • Object.assign方法不能实现深复制
  • OSS Web直传 (文件图片)
  • Redis中的lru算法实现
  • 基于MaxCompute打造轻盈的人人车移动端数据平台
  • 记一次和乔布斯合作最难忘的经历
  • 简单基于spring的redis配置(单机和集群模式)
  • 警报:线上事故之CountDownLatch的威力
  • 前端面试之闭包
  • 深入 Nginx 之配置篇
  • 适配mpvue平台的的微信小程序日历组件mpvue-calendar
  • 在electron中实现跨域请求,无需更改服务器端设置
  • 白色的风信子
  • Semaphore
  • 哈罗单车融资几十亿元,蚂蚁金服与春华资本加持 ...
  • ​ ​Redis(五)主从复制:主从模式介绍、配置、拓扑(一主一从结构、一主多从结构、树形主从结构)、原理(复制过程、​​​​​​​数据同步psync)、总结
  • ​【C语言】长篇详解,字符系列篇3-----strstr,strtok,strerror字符串函数的使用【图文详解​】
  • ### Error querying database. Cause: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException
  • #Linux(Source Insight安装及工程建立)
  • #传输# #传输数据判断#
  • $(selector).each()和$.each()的区别
  • (C语言)二分查找 超详细
  • (delphi11最新学习资料) Object Pascal 学习笔记---第8章第5节(封闭类和Final方法)
  • (java)关于Thread的挂起和恢复
  • (SpringBoot)第七章:SpringBoot日志文件
  • (ZT)出版业改革:该死的死,该生的生
  • (定时器/计数器)中断系统(详解与使用)
  • (二)构建dubbo分布式平台-平台功能导图
  • (非本人原创)史记·柴静列传(r4笔记第65天)
  • (十一)手动添加用户和文件的特殊权限
  • (原創) X61用戶,小心你的上蓋!! (NB) (ThinkPad) (X61)
  • (转)GCC在C语言中内嵌汇编 asm __volatile__
  • (转)linux自定义开机启动服务和chkconfig使用方法
  • (转)VC++中ondraw在什么时候调用的
  • . ./ bash dash source 这五种执行shell脚本方式 区别
  • .\OBJ\test1.axf: Error: L6230W: Ignoring --entry command. Cannot find argumen 'Reset_Handler'