欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2022-04-15 20:56:52
运维监控系统之Open-Falcon一、Open-Falcon介绍1、监控系统,可以从运营级别(基本配置即可),以及应用级别(二次开发,通过端口进行日志上报),对服务器、操作系统、中间件、应用进行全面的监控,及报警,对我们的系统正常运行的作用非常重要。2、基础监控CPU、Load、内存、磁盘、IO、网络相关、内核参数、ss 统计输出、端口采集、核心服务的进程存活信息采集、关键业务进程资源消耗、NTP offset采集、DNS解析采集,这些指标,都是open-falcon的agent组件直接支...

运维监控系统之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编写的整个脑洞历程

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

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

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

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

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

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

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

本文地址:https://blog.csdn.net/qq_36326332/article/details/107372706