源码编译安装open-falcon-v0.2

整天被nagios、zabbix折腾,今天来折腾一下open-falcon

目的

研究学习open-falcon系统,部署一套可以使用的监控监控主机系统资源,收集信息-展示图形-判断告警-触发邮件。
了解分布式系统基本结构和实现方法,下一篇文章分析

open-falcon 0.2版本前后端单机部署

  1. 操作系统安装
    操作系统使用centos7.2 最小化安装,安装在vmware workstation上,磁盘空间10G,默认分区。
  2. 系统初始化

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    systemctl disable firewalld
    systemctl stop firewalld
    sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
    sed -i '$a\proxy=http://192.168.x.x:8888' /etc/yum.conf #配置yum代理
    yum install wget tree
    sed -i '$a\http_proxy=http://192.168.x.x:8888' /etc/wgetrc #配置wget代理
    cd /tmp/
    wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
    rpm -ivh mysql-community-release-el7-5.noarch.rpm
    wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
    yum makecache
    yum groupinstall "Development tools"
    yum update
    yum install golang
  3. 安装并配置redis、mysql

    1
    2
    3
    4
    5
    6
    7
    8
    9
    yum install git redis mysql-server
    service mysqld start
    mysql -u root -p #使用root登录测试,show databases; 查看是否能显示数据库。
    grep ^daemon /etc/redis.conf #查看配置
    sed -i 's/^daemon.*/daemonize yes/g' /etc/redis.conf #修改redis配置为后端启动
    redis-cli #连接redis数据库执行ping 返回pong证明启动ok
    sed -i '$a\redis-server /etc/redis.conf' /etc/rc.local #设置redis开机自启动
    systemctl enable mysqld #mysql开机自启动
    reboot #重启测试两个数据库是否启动正常
  4. 创建go编译环境,下载项目并初始化数据库

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    echo 'export GOPATH="$HOME/workspace"' ~/.bashrc
    source ~/.bashrc
    mkdir -p $GOPATH/src/github.com/open-falcon
    cd $GOPATH/src/github.com/open-falcon
    git clone https://github.com/open-falcon/falcon-plus.git
    #确保mysql启动状态下初始化数据库
    cd $GOPATH/src/github.com/open-falcon/falcon-plus/scripts/mysql/db_schema/
    mysql -h 127.0.0.1 -u root -p < 1_uic-db-schema.sql
    mysql -h 127.0.0.1 -u root -p < 2_portal-db-schema.sql
    mysql -h 127.0.0.1 -u root -p < 3_dashboard-db-schema.sql
    mysql -h 127.0.0.1 -u root -p < 4_graph-db-schema.sql
    mysql -h 127.0.0.1 -u root -p < 5_alarms-db-schema.sql
  5. 编译

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    cd $GOPATH/src/github.com/open-falcon/falcon-plus/

    # make all modules
    make all

    # make specified module
    make agent

    # pack all modules
    make pack
  6. 解压和部署后端

    1
    2
    3
    4
    5
    6
    export WorkDir="$HOME/open-falcon"
    mkdir -p $WorkDir
    tar -xzvf open-falcon-v0.2.1.tar.gz -C $WorkDir
    cd $WorkDir
    ./open-falcon start
    ./open-falcon check
  7. 部署前端
    使用浏览器打开http://ip:8081 ,注册一个用户即可登录前端。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    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 $HOME/open-falcon
    git clone https://github.com/open-falcon/dashboard.git
    cd $HOME/open-falcon/dashboard/
    virtualenv ./env
    # github上部署文档使用豆瓣源出错,这里使用阿里源,虚拟机无法联网使用代理链接
    ./env/bin/pip install -r pip_requirements.txt -i http://mirrors.aliyun.com/pypi/simple --proxy 192.168.13.1:8888
    ./control start #启动前端
  8. 编译部署邮件服务
    由于open-falcon使用api发送邮件,公司没有就需要自己部署一个邮件发送api,open-falcon项目中提供了源码,需要自己编译。
    测试邮件端口
    curl http://127.0.0.1:4000/sender/mail -d "tos=abcd@qq.com&subject=from-falcon&content=sdfdfs" 返回success,登录邮箱有发送的邮件则测试成功。
    编译好的包下载地址https://pan.baidu.com/s/1i5h7GLv
    在alarm 模块的配置文件中,mail处写‘http://127.0.0.1:4000/sender/mail’重启alarm模块即可于监控系统集成。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    cd $GOPATH/src/github.com/open-falcon/
    git clone https://github.com/open-falcon/mail-provider.git
    cd mail-provider
    go get ./...
    #拉取编译需要的工具,如果拉取失败可以从https://github.com/toolkits项目拉取file,web,smtp 3个仓库文件到 $GOPATH/src/github.com/toolkits/
    ./control build
    ./control pack #编译打包生成falcon-mail-provider-0.0.1.tar.gz,可复制到有外网的机器运行,作为邮件发送api,需要机器有mail命令。“yum install mailx”
    vi cfg.json #在里面填写自己126或其他公网邮箱帐号后
    ./control start #启用邮件发送api,会在本地起一个4000端口
  9. 配置微信报警
    暂时未配置,很有必要

系统使用

系统使用参考官方文档

遇到问题

  1. 启动agent,在主机的1899端口无数据
    原因是开启了防火墙,关闭即可
  2. 启用agent,访问1899端口提示404页面不存在
    问题原因还未找到

资源链接

项目文档:https://book.open-falcon.org/zh_0_2/index.html
编译好的包:包括后端所有模块、邮件发送模块、项目文档pdf https://pan.baidu.com/share/link?shareid=646776913&uk=1728541809