二、运维监控系统之——Open-Falcon

12 篇文章 0 订阅
5 篇文章 0 订阅

运维监控系统之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 有关参考资料

官方网址:http://open-falcon.org/

中英文档:https://book.open-falcon.org

软件下载:https://github.com/open-falcon/falcon-plus/releases

1.7 Zabbix、Nagios、Open-Falcon这3大开源运维监控工具的比较

 

二、Open-Falcon编写的整个脑洞历程

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效果图:

解决falcon不能注册的问题
打开chrom后,注册账号并没有反应,参考文章所说的启动前端命令"bash control start",然后 停止dashboard,"以开发者模式启动",启动后可以看到打印的日志信息, 在chrom中注册没有反应,查看linux命令行的日志是"ConnectionError: HTTPConnectionPool(host='127.0.0.1', port=18080): Max retries exceeded with url: /api/v1/user/create (Caused by <class 'socket.error'>: [Errno 111] Connection refused)",

"dashboard  里面有一个配置文件    然后里面端口是 127.0.0.1:18080  改成 127.0.0.1:8080",重启前端就可以正常注册。 

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值