二、运维监控系统之——Open-Falcon
运维监控系统之Open-Falcon
一、Open-Falcon介绍
1.1 监控系统,可以从运营级别(基本配置即可),以及应用级别(二次开发,通过端口进行日志上报),对服务器、操作系统、中间件、应用进行全面的监控,及报警,对我们的系统正常运行的作用非常重要。
1.2 基础监控
CPU、Load、内存、磁盘、IO、网络相关、内核参数、ss 统计输出、端口采集、核心服务的进程存活信息采集、关键业务进程资源消耗、NTP offset采集、DNS解析采集,这些指标,都是open-falcon的agent组件直接支持的。
Linux运维基础采集项:http://book.open-falcon.org/zh/faq/linux-metrics.html
对于这些基础监控选项全部理解透彻的时刻,也就是对Linux运行原理及命令进阶的时刻。
1.3 第三方监控
术业有专攻,运行在OS上的应用甚多,Open-Falcon的开发团队不可能把所有的第三方应用的监控全部做完,这个就需要开源社区提供更多的插件,当前对于很多常用的第三方应用都有相关插件了。
1.4 JVM监控
对于Java作为主要开发语言的大多数公司,对于JVM的监控不可或缺。
每个JVM应用的参数,比如GC、类加载、JVM内存、进程、线程,都可以上报给Falcon,而这些参数的获得,都可以通过MxBeans实现。
使用 Java 平台管理 bean:http://www.ibm.com/developerworks/cn/java/j-mxbeans/
1.5 业务应用监控
对于业务需要监控的接口,比如响应时间等。可以根据业务的需要,上报相关数据到Falcon,并通过Falcon查看结果。
1.6 有关参考资料
中英文档:https://book.open-falcon.org
软件下载:https://github.com/open-falcon/falcon-plus/releases
1.7 Zabbix、Nagios、Open-Falcon这3大开源运维监控工具的比较
二、Open-Falcon编写的整个脑洞历程
三、环境准备
3.1 安装redis
yum install -y redis
#CentOS7安装redis 报错,解决没有可用软件包;请参考:https://blog.csdn.net/qq_36326332/article/details/107290697
3.2 安装mysql
yum install -y mariadb mariadb-server
#CentOS7启动MySQL报错,解决Failed to start mariadb-service.service: Unit not found;请参考:https://blog.csdn.net/qq_36326332/article/details/107290812
3.3 启动、开机自启动Redis和mysql
MySQL:
[root@localhost ~]# systemctl start mariadb-service #启动MySQL
[root@localhost ~]# systemctl enable mariadb.service #设置MySQL开机自启动
[root@localhost ~]# systemctl status mariadb.service #查看MySQL状态
[root@localhost ~]# mysql_secure_installation #设置数据库用户名、密码以及其他选项
...
Enter current password for root (enter for none): #直接回车
...
Set root password?[Y/n] Y #配置文件默认密码是1234
New password:1234
Re-enter new password:1234
...
Remove anonymous users?[Y/n]Y
...
Disallow root login remotely?[Y/n]n
...
Reload privilege tables now?[Y/n]Y
...
Thanks for using MariaDB!
Redis:
[root@localhost ~]# systemctl start redis #启动Redis
[root@localhost ~]# systemctl enable redis #设置Redis开机自启动
[root@localhost ~]# systemctl status redis #查看Redis状态
注意,请确保redis和MySQL已启动。
3.4 初始化MySQL表结构
[root@localhost ~]#cd /tmp/ && git clone https://github.com/open-falcon/falcon-plus.git
[root@localhost ~]#cd /tmp/falcon-plus/scripts/mysql/db_schema/
[root@localhost db_schema]#mysql -h 127.0.0.1 -u root -p1234 < 1_uic-db-schema.sql
[root@localhost db_schema]#mysql -h 127.0.0.1 -u root -p1234 < 2_portal-db-schema.sql
[root@localhost db_schema]#mysql -h 127.0.0.1 -u root -p1234 < 3_dashboard-db-schema.sql
[root@localhost db_schema]#mysql -h 127.0.0.1 -u root -p1234 < 4_graph-db-schema.sql
[root@localhost db_schema]#mysql -h 127.0.0.1 -u root -p1234 < 5_alarms-db-schema.sql
[root@localhost db_schema]#cd /tmp/
[root@localhost tmp]#rm -rf /tmp/falcon-plus
如果你是从v0.1.0升级到当前版本v0.2.0,那么只需要执行如下命令:
mysql -h 127.0.0.1 -u root -p < 5_alarms-db-schema.sql
四、编译成压缩包【两张方式:官方下载和源码编译】
4.1 官方下载【编译好的压缩包】方式
如果你不想自己编译的话,直接下载编译好的二进制版本【建议下载使用官方编译好的,因为源码编译生成时可能会遇到各种问题令人头大】
下载地址:https://github.com/open-falcon/falcon-plus/releases
wget https://github.com/open-falcon/falcon-plus/releases/download/v0.3/open-falcon-v0.3.tar.gz
4.2 源码编译方式
4.2.1 首先,请确保你已经安装好了golang环境,以及安装gcc。
[root@localhost ~]#yum install -y gcc
[root@localhost ~]#yum install -y wget
4.2.2 安装go环境
[root@localhost ~]#wget https://studygolang.com/dl/golang/go1.14.4.linux-amd64.tar.gz#下载go环境
[root@localhost ~]# ll
-rw-r--r-- 1 root root 123711003 6月 2 05:50 go1.14.4.linux-amd64.tar.gz
[root@localhost ~]#tar -zxvf go1.14.4.linux-amd64.tar.gz #解压
[root@localhost ~]# ll
drwxr-xr-x 10 root root 272 6月 2 03:43 go
-rw-r--r-- 1 root root 123711003 6月 2 05:50 go1.14.4.linux-amd64.tar.gz
[root@localhost ~]#vim .bash_profile #配置go环境变量
export GOROOT=/root/go
export GOPATH=/root/gopath
PATH=$GOROOT/bin:$GOPATH/bin:$PATH:$HOME/bin
[root@localhost ~]#source .bash_profile #配置文件立马生效
4.2.3 配置工作目录
[root@localhost ~]#mkdir -p $GOPATH/src/github.com/open-falcon/ #创建目录
[root@localhost ~]#cd $GOPATH/gopath/src/github.com/open-falcon/ #进入新创建的目录下
4.2.4 使用git克隆源项目 进行编译和打包
[root@localhost open-falcon]# git clone https://github.com/open-falcon/falcon-plus.git #git克隆Nightingale源代码
正克隆到 'falcon-plus'...
remote: Enumerating objects: 1, done.
remote: Counting objects: 100% (1/1), done.
remote: Total 9637 (delta 0), reused 0 (delta 0), pack-reused 9636
接收对象中: 100% (9637/9637), 16.34 MiB | 4.62 MiB/s, done.
处理 delta 中: 100% (5198/5198), done.
[root@localhost falcon-plus]# ll
drwxr-xr-x 15 root root 4096 7月 11 21:32 falcon-plus
[root@localhost falcon-plus]# cd falcon-plus/
[root@localhost falcon-plus]# pwd
/root/gopath/src/github.com/open-falcon/falcon-plus
[root@localhost falcon-plus]# ll
总用量 100
-rw-r--r-- 1 root root 6210 7月 11 21:33 api-standard.md
drwxr-xr-x 2 root root 106 7月 11 21:33 cmd
-rw-r--r-- 1 root root 5479 7月 11 21:33 CODE_OF_CONDUCT.md
drwxr-xr-x 8 root root 132 7月 11 21:33 common
drwxr-xr-x 2 root root 211 7月 11 21:33 config
-rw-r--r-- 1 root root 1587 7月 11 21:33 CONTRIBUTING.md
drwxr-xr-x 4 root root 124 7月 11 21:33 docker
-rw-r--r-- 1 root root 895 7月 11 21:33 Dockerfile
-rwxr-xr-x 1 root root 1250 7月 11 21:33 docker_test.sh
drwxr-xr-x 6 root root 205 7月 11 21:33 docs
drwxr-xr-x 2 root root 53 7月 11 21:33 g
-rw-r--r-- 1 root root 11358 7月 11 21:33 LICENSE
-rw-r--r-- 1 root root 30112 7月 11 21:33 logo.png
drwxr-xr-x 2 root root 112 7月 11 21:33 logos
-rw-r--r-- 1 root root 1578 7月 11 21:33 main.go
-rw-r--r-- 1 root root 3429 7月 11 21:33 Makefile
drwxr-xr-x 12 root root 143 7月 11 21:33 modules
-rw-r--r-- 1 root root 462 7月 11 21:33 NOTICE
-rw-r--r-- 1 root root 5190 7月 11 21:33 README.md
drwxr-xr-x 3 root root 19 7月 11 21:33 scripts
drwxr-xr-x 2 root root 23 7月 11 21:33 test
drwxr-xr-x 2 root root 25 7月 11 21:33 vagrant
drwxr-xr-x 5 root root 77 7月 11 21:33 vendor
-rw-r--r-- 1 root root 6 7月 11 21:33 VERSION
-rw-r--r-- 1 root root 714 7月 11 21:33 version.go
[root@localhost falcon-plus]# make all #缺失gcc环境报错:exec: "gcc": executable file not found in $PATH;make: *** [agent] 错误 2
if [ agent = "gateway" ]; then \
go build -ldflags "-X main.BinaryName=gateway -X main.GitCommit=`git rev-parse --short HEAD` -X main.Version=0.3.x" \
-o bin/gateway/falcon-gateway ./modules/transfer ; \
else \
go build -ldflags "-X main.BinaryName=agent -X main.GitCommit=`git rev-parse --short HEAD` -X main.Version=0.3.x" \
-o bin/agent/falcon-agent ./modules/agent ; \
fi
# github.com/open-falcon/falcon-plus/vendor/github.com/mindprince/gonvml
exec: "gcc": executable file not found in $PATH
make: *** [agent] 错误 2
[root@localhost falcon-plus]# yum install -y gcc
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
* base: mirrors.163.com
* elrepo: ftp.ne.jp
* epel: mirrors.njupt.edu.cn
* extras: mirrors.163.com
* updates: mirrors.163.com
正在解决依赖关系
--> 正在检查事务
---> 软件包 gcc.x86_64.0.4.8.5-39.el7 将被 安装
--> 正在处理依赖关系 cpp = 4.8.5-39.el7,它被软件包 gcc-4.8.5-39.el7.x86_64 需要
--> 正在处理依赖关系 glibc-devel >= 2.2.90-12,它被软件包 gcc-4.8.5-39.el7.x86_64 需要
--> 正在处理依赖关系 libmpfr.so.4()(64bit),它被软件包 gcc-4.8.5-39.el7.x86_64 需要
--> 正在处理依赖关系 libmpc.so.3()(64bit),它被软件包 gcc-4.8.5-39.el7.x86_64 需要
--> 正在检查事务
---> 软件包 cpp.x86_64.0.4.8.5-39.el7 将被 安装
---> 软件包 glibc-devel.x86_64.0.2.17-307.el7.1 将被 安装
--> 正在处理依赖关系 glibc-headers = 2.17-307.el7.1,它被软件包 glibc-devel-2.17-307.el7.1.x86_64 需要
--> 正在处理依赖关系 glibc-headers,它被软件包 glibc-devel-2.17-307.el7.1.x86_64 需要
---> 软件包 libmpc.x86_64.0.1.0.1-3.el7 将被 安装
---> 软件包 mpfr.x86_64.0.3.1.1-4.el7 将被 安装
--> 正在检查事务
---> 软件包 glibc-headers.x86_64.0.2.17-307.el7.1 将被 安装
--> 正在处理依赖关系 kernel-headers >= 2.2.1,它被软件包 glibc-headers-2.17-307.el7.1.x86_64 需要
--> 正在处理依赖关系 kernel-headers,它被软件包 glibc-headers-2.17-307.el7.1.x86_64 需要
--> 正在检查事务
---> 软件包 kernel-headers.x86_64.0.3.10.0-1127.13.1.el7 将被 安装
--> 解决依赖关系完成
依赖关系解决
==========================================================================================================================================================================
Package 架构 版本 源 大小
==========================================================================================================================================================================
正在安装:
gcc x86_64 4.8.5-39.el7 base 16 M
为依赖而安装:
cpp x86_64 4.8.5-39.el7 base 5.9 M
glibc-devel x86_64 2.17-307.el7.1 base 1.1 M
glibc-headers x86_64 2.17-307.el7.1 base 689 k
kernel-headers x86_64 3.10.0-1127.13.1.el7 updates 9.0 M
libmpc x86_64 1.0.1-3.el7 base 51 k
mpfr x86_64 3.1.1-4.el7 base 203 k
事务概要
==========================================================================================================================================================================
安装 1 软件包 (+6 依赖软件包)
总下载量:33 M
安装大小:60 M
Downloading packages:
(1/7): glibc-devel-2.17-307.el7.1.x86_64.rpm | 1.1 MB 00:00:00
(2/7): gcc-4.8.5-39.el7.x86_64.rpm | 16 MB 00:00:02
(3/7): kernel-headers-3.10.0-1127.13.1.el7.x86_64.rpm | 9.0 MB 00:00:02
(4/7): glibc-headers-2.17-307.el7.1.x86_64.rpm | 689 kB 00:00:02
(5/7): libmpc-1.0.1-3.el7.x86_64.rpm | 51 kB 00:00:00
(6/7): mpfr-3.1.1-4.el7.x86_64.rpm | 203 kB 00:00:00
(7/7): cpp-4.8.5-39.el7.x86_64.rpm | 5.9 MB 00:00:03
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------
总计 9.9 MB/s | 33 MB 00:00:03
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
正在安装 : mpfr-3.1.1-4.el7.x86_64 1/7
正在安装 : libmpc-1.0.1-3.el7.x86_64 2/7
正在安装 : cpp-4.8.5-39.el7.x86_64 3/7
正在安装 : kernel-headers-3.10.0-1127.13.1.el7.x86_64 4/7
正在安装 : glibc-headers-2.17-307.el7.1.x86_64 5/7
正在安装 : glibc-devel-2.17-307.el7.1.x86_64 6/7
正在安装 : gcc-4.8.5-39.el7.x86_64 7/7
验证中 : kernel-headers-3.10.0-1127.13.1.el7.x86_64 1/7
验证中 : glibc-headers-2.17-307.el7.1.x86_64 2/7
验证中 : glibc-devel-2.17-307.el7.1.x86_64 3/7
验证中 : mpfr-3.1.1-4.el7.x86_64 4/7
验证中 : libmpc-1.0.1-3.el7.x86_64 5/7
验证中 : cpp-4.8.5-39.el7.x86_64 6/7
验证中 : gcc-4.8.5-39.el7.x86_64 7/7
已安装:
gcc.x86_64 0:4.8.5-39.el7
作为依赖被安装:
cpp.x86_64 0:4.8.5-39.el7 glibc-devel.x86_64 0:2.17-307.el7.1 glibc-headers.x86_64 0:2.17-307.el7.1 kernel-headers.x86_64 0:3.10.0-1127.13.1.el7
libmpc.x86_64 0:1.0.1-3.el7 mpfr.x86_64 0:3.1.1-4.el7
完毕!
[root@localhost falcon-plus]# make all
if [ agent = "gateway" ]; then \
go build -ldflags "-X main.BinaryName=gateway -X main.GitCommit=`git rev-parse --short HEAD` -X main.Version=0.3.x" \
-o bin/gateway/falcon-gateway ./modules/transfer ; \
else \
go build -ldflags "-X main.BinaryName=agent -X main.GitCommit=`git rev-parse --short HEAD` -X main.Version=0.3.x" \
-o bin/agent/falcon-agent ./modules/agent ; \
fi
if [ aggregator = "gateway" ]; then \
go build -ldflags "-X main.BinaryName=gateway -X main.GitCommit=`git rev-parse --short HEAD` -X main.Version=0.3.x" \
-o bin/gateway/falcon-gateway ./modules/transfer ; \
else \
go build -ldflags "-X main.BinaryName=aggregator -X main.GitCommit=`git rev-parse --short HEAD` -X main.Version=0.3.x" \
-o bin/aggregator/falcon-aggregator ./modules/aggregator ; \
fi
if [ graph = "gateway" ]; then \
go build -ldflags "-X main.BinaryName=gateway -X main.GitCommit=`git rev-parse --short HEAD` -X main.Version=0.3.x" \
-o bin/gateway/falcon-gateway ./modules/transfer ; \
else \
go build -ldflags "-X main.BinaryName=graph -X main.GitCommit=`git rev-parse --short HEAD` -X main.Version=0.3.x" \
-o bin/graph/falcon-graph ./modules/graph ; \
fi
if [ hbs = "gateway" ]; then \
go build -ldflags "-X main.BinaryName=gateway -X main.GitCommit=`git rev-parse --short HEAD` -X main.Version=0.3.x" \
-o bin/gateway/falcon-gateway ./modules/transfer ; \
else \
go build -ldflags "-X main.BinaryName=hbs -X main.GitCommit=`git rev-parse --short HEAD` -X main.Version=0.3.x" \
-o bin/hbs/falcon-hbs ./modules/hbs ; \
fi
if [ judge = "gateway" ]; then \
go build -ldflags "-X main.BinaryName=gateway -X main.GitCommit=`git rev-parse --short HEAD` -X main.Version=0.3.x" \
-o bin/gateway/falcon-gateway ./modules/transfer ; \
else \
go build -ldflags "-X main.BinaryName=judge -X main.GitCommit=`git rev-parse --short HEAD` -X main.Version=0.3.x" \
-o bin/judge/falcon-judge ./modules/judge ; \
fi
if [ nodata = "gateway" ]; then \
go build -ldflags "-X main.BinaryName=gateway -X main.GitCommit=`git rev-parse --short HEAD` -X main.Version=0.3.x" \
-o bin/gateway/falcon-gateway ./modules/transfer ; \
else \
go build -ldflags "-X main.BinaryName=nodata -X main.GitCommit=`git rev-parse --short HEAD` -X main.Version=0.3.x" \
-o bin/nodata/falcon-nodata ./modules/nodata ; \
fi
if [ transfer = "gateway" ]; then \
go build -ldflags "-X main.BinaryName=gateway -X main.GitCommit=`git rev-parse --short HEAD` -X main.Version=0.3.x" \
-o bin/gateway/falcon-gateway ./modules/transfer ; \
else \
go build -ldflags "-X main.BinaryName=transfer -X main.GitCommit=`git rev-parse --short HEAD` -X main.Version=0.3.x" \
-o bin/transfer/falcon-transfer ./modules/transfer ; \
fi
if [ gateway = "gateway" ]; then \
go build -ldflags "-X main.BinaryName=gateway -X main.GitCommit=`git rev-parse --short HEAD` -X main.Version=0.3.x" \
-o bin/gateway/falcon-gateway ./modules/transfer ; \
else \
go build -ldflags "-X main.BinaryName=gateway -X main.GitCommit=`git rev-parse --short HEAD` -X main.Version=0.3.x" \
-o bin/gateway/falcon-gateway ./modules/gateway ; \
fi
if [ api = "gateway" ]; then \
go build -ldflags "-X main.BinaryName=gateway -X main.GitCommit=`git rev-parse --short HEAD` -X main.Version=0.3.x" \
-o bin/gateway/falcon-gateway ./modules/transfer ; \
else \
go build -ldflags "-X main.BinaryName=api -X main.GitCommit=`git rev-parse --short HEAD` -X main.Version=0.3.x" \
-o bin/api/falcon-api ./modules/api ; \
fi
if [ alarm = "gateway" ]; then \
go build -ldflags "-X main.BinaryName=gateway -X main.GitCommit=`git rev-parse --short HEAD` -X main.Version=0.3.x" \
-o bin/gateway/falcon-gateway ./modules/transfer ; \
else \
go build -ldflags "-X main.BinaryName=alarm -X main.GitCommit=`git rev-parse --short HEAD` -X main.Version=0.3.x" \
-o bin/alarm/falcon-alarm ./modules/alarm ; \
fi
go build -ldflags "-X main.BinaryName=Open-Falcon -X main.GitCommit=`git rev-parse --short HEAD` -X main.Version=0.3.x" -o open-falcon
[root@localhost falcon-plus]# make pack
go build -ldflags "-X main.BinaryName=Open-Falcon -X main.GitCommit=`git rev-parse --short HEAD` -X main.Version=0.3.x" -o open-falcon
tar -C out -zcf open-falcon-v0.3.x.tar.gz .
[root@localhost falcon-plus]# ll
总用量 75140
-rw-r--r-- 1 root root 6210 7月 11 21:33 api-standard.md
drwxr-xr-x 12 root root 143 7月 11 21:36 bin
drwxr-xr-x 2 root root 106 7月 11 21:33 cmd
-rw-r--r-- 1 root root 5479 7月 11 21:33 CODE_OF_CONDUCT.md
drwxr-xr-x 8 root root 132 7月 11 21:33 common
drwxr-xr-x 2 root root 211 7月 11 21:33 config
-rw-r--r-- 1 root root 1587 7月 11 21:33 CONTRIBUTING.md
drwxr-xr-x 4 root root 124 7月 11 21:33 docker
-rw-r--r-- 1 root root 895 7月 11 21:33 Dockerfile
-rwxr-xr-x 1 root root 1250 7月 11 21:33 docker_test.sh
drwxr-xr-x 6 root root 205 7月 11 21:33 docs
drwxr-xr-x 2 root root 53 7月 11 21:33 g
-rw-r--r-- 1 root root 11358 7月 11 21:33 LICENSE
-rw-r--r-- 1 root root 30112 7月 11 21:33 logo.png
drwxr-xr-x 2 root root 112 7月 11 21:33 logos
-rw-r--r-- 1 root root 1578 7月 11 21:33 main.go
-rw-r--r-- 1 root root 3429 7月 11 21:33 Makefile
drwxr-xr-x 12 root root 143 7月 11 21:33 modules
-rw-r--r-- 1 root root 462 7月 11 21:33 NOTICE
-rwxr-xr-x 1 root root 4465296 7月 11 21:38 open-falcon
-rw-r--r-- 1 root root 72369548 7月 11 21:38 open-falcon-v0.3.x.tar.gz #这时候,你会在当前目录下面,得到open-falcon-v0.2.0.tar.gz的压缩包,就表示已经编译和打包成功了。
-rw-r--r-- 1 root root 5190 7月 11 21:33 README.md
drwxr-xr-x 3 root root 19 7月 11 21:33 scripts
drwxr-xr-x 2 root root 23 7月 11 21:33 test
drwxr-xr-x 2 root root 25 7月 11 21:33 vagrant
drwxr-xr-x 5 root root 77 7月 11 21:33 vendor
-rw-r--r-- 1 root root 6 7月 11 21:33 VERSION
-rw-r--r-- 1 root root 714 7月 11 21:33 version.go
到这一步,准备工作就完成了。 open-falcon-v0.3.tar.gz 这个二进制包,请大家解压到合适的位置,暂时保存,后续步骤需要使用。
五、开始安装
说明:Open-Falcon部署分为前端(客户端)和后端(服务端)
5.1 Open-Falcon后端
5.1.1 创建工作目录
export FALCON_HOME=/home/work
export WORKSPACE=$FALCON_HOME/open-falcon
mkdir -p $WORKSPACE
5.1.2 解压二进制包
[root@localhost falcon-plus]# tar -xzvf open-falcon-v0.2.1.tar.gz -C $WORKSPACE
5.1.3 在一台机器上启动所有的后端组件
5.1.4 首先确认配置文件中数据库账号密码与实际相同,否则需要修改配置文件。
模块 | 文件路径 |
aggregator | /home/work/open-falcon/aggregator/config/cfg.json |
graph | /home/work/open-falcon/graph/config/cfg.json |
hbs | /home/work/open-falcon/hbs/config/cfg.json |
nodata | /home/work/open-falcon/nodata/config/cfg.json |
api | /home/work/open-falcon/api/config/cfg.json |
alarm | /home/work/open-falcon/alarm/config/cfg.json |
[root@localhost falcon-plus]# cd $WORKSPACE
[root@localhost open-falcon]# ll
总用量 3896
drwxrwxr-x 7 501 501 67 8月 15 2017 agent
drwxrwxr-x 5 501 501 40 8月 15 2017 aggregator
drwxrwxr-x 5 501 501 40 8月 15 2017 alarm
drwxrwxr-x 6 501 501 51 8月 15 2017 api
drwxrwxr-x 5 501 501 40 8月 15 2017 gateway
drwxrwxr-x 6 501 501 51 8月 15 2017 graph
drwxrwxr-x 5 501 501 40 8月 15 2017 hbs
drwxrwxr-x 5 501 501 40 8月 15 2017 judge
drwxrwxr-x 5 501 501 40 8月 15 2017 nodata
-rwxrwxr-x 1 501 501 3987469 8月 15 2017 open-falcon
lrwxrwxrwx 1 501 501 16 8月 15 2017 plugins -> ./agent/plugins/
lrwxrwxrwx 1 501 501 15 8月 15 2017 public -> ./agent/public/
drwxrwxr-x 5 501 501 40 8月 15 2017 transfer
5.1.5 配置数据库的用户名和密码
1.全局配置
[root@localhost falcon-plus]# grep -Ilr 3306 ./ | xargs -n1 -- sed -i 's/root:/root:1234/g'
或者
2.手动单独修改模块配置文件:cfg.json
坑:部分模块依赖连接数据库,因为如果不修改配置文件,aggregator模块会出现无法启动,graph、hbs、nodata、api、alarm模块会出现开启不报错但是状态为开启失败的情况。
mysql的root密码为空,则去掉“password”,若不为空,则用root密码替换“password”。
[root@open_falcon open-falcon]# vim /home/work/open-falcon/aggregator/config/cfg.json
{
"debug": true,
"http": {
"enabled": true,
"listen": "0.0.0.0:6055"
},
"database": {
"addr": "root:1234@tcp(127.0.0.1:3306)/falcon_portal?loc=Local&parseTime=true",
"idle": 10,
"ids": [1, -1],
"interval": 55
},
"api": {
"connect_timeout": 500,
"request_timeout": 2000,
"plus_api": "http://127.0.0.1:8080",
"plus_api_token": "default-token-used-in-server-side",
"push_api": "http://127.0.0.1:1988/v1/push"
}
}
[root@open_falcon open-falcon]# vim /home/work/open-falcon/alarm/config/cfg.json
{
"log_level": "debug",
"http": {
"enabled": true,
"listen": "0.0.0.0:9912"
},
"redis": {
"addr": "127.0.0.1:6379",
"maxIdle": 5,
"highQueues": [
"event:p0",
"event:p1",
"event:p2"
],
"lowQueues": [
"event:p3",
"event:p4",
"event:p5",
"event:p6"
],
"userIMQueue": "/queue/user/im",
"userSmsQueue": "/queue/user/sms",
"userMailQueue": "/queue/user/mail"
},
"api": {
"im": "http://127.0.0.1:10086/wechat",
"sms": "http://127.0.0.1:10086/sms",
"mail": "http://127.0.0.1:10086/mail",
"dashboard": "http://127.0.0.1:8081",
"plus_api":"http://127.0.0.1:8080",
"plus_api_token": "default-token-used-in-server-side"
},
"falcon_portal": {
"addr": "root:1234@tcp(127.0.0.1:3306)/alarms?charset=utf8&loc=Asia%2FChongqing",
"idle": 10,
"max": 100
},
"worker": {
"im": 10,
"sms": 10,
"mail": 50
},
"housekeeper": {
"event_retention_days": 7,
"event_delete_batch": 100
}
}
[root@open_falcon open-falcon]# vim /home/work/open-falcon/api/config/cfg.json
{
"log_level": "debug",
"db": {
"falcon_portal": "root:1234@tcp(127.0.0.1:3306)/falcon_portal?charset=utf8&parseTime=True&loc=Local",
"graph": "root:1234@tcp(127.0.0.1:3306)/graph?charset=utf8&parseTime=True&loc=Local",
"uic": "root:1234@tcp(127.0.0.1:3306)/uic?charset=utf8&parseTime=True&loc=Local",
"dashboard": "root:1234@tcp(127.0.0.1:3306)/dashboard?charset=utf8&parseTime=True&loc=Local",
"alarms": "root:1234@tcp(127.0.0.1:3306)/alarms?charset=utf8&parseTime=True&loc=Local",
"db_bug": true
},
"graphs": {
"cluster": {
"graph-00": "127.0.0.1:6070"
},
"max_conns": 100,
"max_idle": 100,
"conn_timeout": 1000,
"call_timeout": 5000,
"numberOfReplicas": 500
},
"metric_list_file": "./api/data/metric",
"web_port": "0.0.0.0:8080",
"access_control": true,
"signup_disable": true,
"salt": "",
"skip_auth": false,
"default_token": "default-token-used-in-server-side",
"gen_doc": false,
"gen_doc_path": "doc/module.html"
}
[root@open_falcon open-falcon]# vim /home/work/open-falcon/graph/config/cfg.json
{
"debug": false,
"http": {
"enabled": true,
"listen": "0.0.0.0:6071"
},
"rpc": {
"enabled": true,
"listen": "0.0.0.0:6070"
},
"rrd": {
"storage": "./data/6070"
},
"db": {
"dsn": "root:1234@tcp(127.0.0.1:3306)/graph?loc=Local&parseTime=true",
"maxIdle": 4
},
"callTimeout": 5000,
"migrate": {
"enabled": false,
"concurrency": 2,
"replicas": 500,
"cluster": {
"graph-00" : "127.0.0.1:6070"
}
}
}
[root@open_falcon open-falcon]# vim /home/work/open-falcon/hbs/config/cfg.json
{
"debug": true,
"database": "root:1234@tcp(127.0.0.1:3306)/falcon_portal?loc=Local&parseTime=true",
"hosts": "",
"maxConns": 20,
"maxIdle": 15,
"listen": ":6030",
"trustable": [""],
"http": {
"enabled": true,
"listen": "0.0.0.0:6031"
}
}
[root@open_falcon open-falcon]# vim /home/work/open-falcon/nodata/config/cfg.json
{
"debug": true,
"http": {
"enabled": true,
"listen": "0.0.0.0:6090"
},
"plus_api":{
"connectTimeout": 500,
"requestTimeout": 2000,
"addr": "http://127.0.0.1:8080",
"token": "default-token-used-in-server-side"
},
"config": {
"enabled": true,
"dsn": "root:1234@tcp(127.0.0.1:3306)/falcon_portal?loc=Local&parseTime=true&wait_timeout=604800",
"maxIdle": 4
},
"collector":{
"enabled": true,
"batch": 200,
"concurrent": 10
},
"sender":{
"enabled": true,
"connectTimeout": 500,
"requestTimeout": 2000,
"transferAddr": "0.0.0.0:6060",
"batch": 500
}
}
5.1.6 启动后端服务
[root@localhost open-falcon]# ./open-falcon start #启动后端服务
[falcon-graph] 5583
[falcon-hbs] 5592
[falcon-judge] 5600
[falcon-transfer] 5606
[falcon-nodata] 5613
[falcon-aggregator] 5620
[falcon-agent] 5628
[falcon-gateway] 5635
[falcon-api] 5641
[falcon-alarm] 5653
[root@localhost open-falcon]# ./open-falcon check #检查服务启动状态
falcon-graph UP 61235
falcon-hbs UP 61246
falcon-judge UP 61261
falcon-transfer UP 61270
falcon-nodata UP 61278
falcon-aggregator UP 61286
falcon-agent UP 61297
falcon-gateway UP 61306
falcon-api UP 87514
falcon-alarm UP 61328
#更多命令行工具用法
# ./open-falcon [start|stop|restart|check|monitor|reload] module
[root@localhost open-falcon]# ./open-falcon --help
Usage:
open-falcon [flags]
open-falcon [command]
Available Commands:
check Check the status of Open-Falcon modules
help Help about any command
monitor Display an Open-Falcon module's log
reload Reload an Open-Falcon module's configuration file
restart Restart Open-Falcon modules
start Start Open-Falcon modules
stop Stop Open-Falcon modules
Flags:
-v, --version show version
Use "open-falcon [command] --help" for more information about a command.
至此后端部署完成。
其它用法
#重载配置(备注:修改vi cfg.json配置文件后,可以用下面命令重载配置)
curl 127.0.0.1:1988/config/reload
5.2 Open-Falcon前端
5.2.1 创建工作目录【此步骤是前端和后端不在同一台机器上时的操作;部署到同一台机器上时,忽略此步骤】
export HOME=/home/work
export WORKSPACE=$HOME/open-falcon
mkdir -p $WORKSPACE
cd $WORKSPACE
5.2.2 克隆前端组件代码
cd $WORKSPACE
git clone https://github.com/open-falcon/dashboard.git
5.2.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"
cd $WORKSPACE/dashboard/
virtualenv ./env
./env/bin/pip install -r pip_requirements.txt -i https://pypi.douban.com/simple
5.2.4 修改配置
dashboard的配置文件为: '/home/work/open-falcon/dashboard/rrd/config.py',请根据实际情况修改
## API_ADDR 表示后端api组件的地址
API_ADDR = "http://127.0.0.1:8080/api/v1"
## 根据实际情况,修改PORTAL_DB_*, 默认用户名为root,默认密码为""
## 根据实际情况,修改ALARM_DB_*, 默认用户名为root,默认密码为""
5.2.5 以开发者模式启动
./env/bin/python wsgi.py
open http://127.0.0.1:8081 in your browser.
5.2.6 在生产环境启动
bash control start
open http://127.0.0.1:8081 in your browser.
5.2.7 停止dashboard运行
bash control stop
5.2.8 查看日志
bash control tail
5.2.9 dashbord用户管理
dashbord没有默认创建任何账号包括管理账号,需要你通过页面进行注册账号。
想拥有管理全局的超级管理员账号,需要手动注册用户名为root的账号(第一个帐号名称为root的用户会被自动设置为超级管理员)。
超级管理员可以给普通用户分配权限管理。
小提示:注册账号能够被任何打开dashboard页面的人注册,所以当给相关的人注册完账号后,需要去关闭注册账号功能。只需要去修改api组件的配置文件cfg.json,将signup_disable配置项修改为true,重启api即可。当需要给人开账号的时候,再将配置选项改回去,用完再关掉即可。
六、访问网站
6.1访问路径:http://ip:8081
6.2效果图:
本文地址:https://blog.csdn.net/qq_36326332/article/details/107372706