原创

open falcon监控部署-单机部署(一)

介绍

监控系统是整个运维环节,乃至整个产品生命周期中最重要的一环,事前及时预警发现故障,事后提供翔实的数据用于追查定位问题。监控系统作为一个成熟的运维产品,业界有很多开源的实现可供选择。当公司刚刚起步,业务规模较小,运维团队也刚刚建立的初期,选择一款开源的监控系统,是一个省时省力,效率最高的方案。之后,随着业务规模的持续快速增长,监控的对象也越来越多,越来越复杂,监控系统的使用对象也从最初少数的几个SRE,扩大为更多的DEVS,SRE。这时候,监控系统的容量和用户的“使用效率”成了最为突出的问题。

监控系统业界有很多杰出的开源监控系统。我们在早期,一直在用zabbix,不过随着业务的快速发展,以及互联网公司特有的一些需求,现有的开源的监控系统在性能、扩展性、和用户的使用效率方面,已经无法支撑了。

因此,我们在过去的一年里,从互联网公司的一些需求出发,从各位SRE、SA、DEVS的使用经验和反馈出发,结合业界的一些大的互联网公司做监控,用监控的一些思考出发,设计开发了小米的监控系统:open-falcon。

一、环境准备

操作系统:Centos7.4

1、安装redis

编译安装、yum安装二选一:

  • yum安装:
    yum install -y redis


2、安装mysql

编译安装、yum安装二选一:

  • 编译安装:编译安装mysql5.7

  • yum安装:
    # 配置源
    wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm
    yum -y install mysql57-community-release-el7-10.noarch.rpm
    
    # 安装mysql
    yum install -y mysql-server
    # 查找默认密码
    grep "password" /var/log/mysqld.log
    # 进入数据库配置密码
    [root@bogon dashboard]# mysql -uroot -p
    Enter password: 
    # 修改root密码
    ALTER USER 'root'@'localhost' IDENTIFIED BY 'new password';

二、后端安装

1、创建安装目录

mkdir -p /data/env/open-falcon && cd /data/env/open-falcon

2、下载二进制包

cd /data/
wget https://github.com/open-falcon/falcon-plus/releases/download/v0.2.1/open-falcon-v0.2.1.tar.gz
# 解压
tar xf open-falcon-v0.2.1.tar.gz -C /data/env/open-falcon

3、修改配置文件

# 进入解压目录
cd /data/env/open-falcon
# 需要修改配置文件(password是数据库的密码)
sed -i "s/root:@tcp/root:password@tcp/g" aggregator/config/cfg.json
sed -i "s/root:@tcp/root:password@tcp/g" alarm/config/cfg.json
sed -i "s/root:@tcp/root:password@tcp/g" api/config/cfg.json
sed -i "s/root:@tcp/root:password@tcp/g" graph/config/cfg.json
sed -i "s/root:@tcp/root:password@tcp/g" hbs/config/cfg.json
sed -i "s/root:@tcp/root:password@tcp/g" nodata/config/cfg.json

4、启动openfalcon

# 执行启动脚本
[root@bogon open-falcon]# ./open-falcon start
[falcon-graph] 43881
[falcon-hbs] 43891
[falcon-judge] 43899
[falcon-transfer] 43905
[falcon-nodata] 43912
[falcon-aggregator] 43918
[falcon-agent] 43926
[falcon-gateway] 43934
[falcon-api] 43941
[falcon-alarm] 43949
# 检查服务是否全部启动
root@bogon open-falcon]# ./open-falcon check
        falcon-graph         UP           43881 
          falcon-hbs         UP           43891 
        falcon-judge         UP           43899 
     falcon-transfer         UP           43905 
       falcon-nodata         UP           43912 
   falcon-aggregator         UP           43918 
        falcon-agent         UP           43926 
      falcon-gateway         UP           43934 
          falcon-api         UP           43941 
        falcon-alarm         UP           43949 

# 如上已经全部启动,如果有Down的检查对应服务的日志:如下
root@bogon open-falcon]# ./open-falcon check
        falcon-graph         UP           43881 
          falcon-hbs         UP           43891 
        falcon-judge         UP           43899 
     falcon-transfer         UP           43905 
       falcon-nodata         UP           43912 
   falcon-aggregator         Down         43918 
        falcon-agent         UP           43926 
      falcon-gateway         UP           43934 
          falcon-api         UP           43941 
        falcon-alarm         UP           43949 

[root@bogon open-falcon]# cd aggregator/logs/
[root@bogon logs]# cat aggregator.log

# 服务没有启动可能是数据库密码不正确导致的,检查一下配置文件

三、falcon前端安装

1、安装环境依赖

yum install -y python-virtualenv
yum install -y python-devel
yum install -y openldap-devel
yum install -y mysql-devel
yum groupinstall "Development tools"

2、拉取前端代码

# 切换到falcon安装目录
cd /data/env/open-falcon
# 拉取代码
git clone https://github.com/open-falcon/dashboard.git

3、修改配置文件(修改参数如下)

# 修改配置文件
[root@bogon open-falcon]# vim dashboard/rrd/config.py

API_ADDR = os.environ.get("API_ADDR","http://127.0.0.1:8080/api/v1")

# portal database
# TODO: read from api instead of db
PORTAL_DB_HOST = os.environ.get("PORTAL_DB_HOST","127.0.0.1")
PORTAL_DB_PORT = int(os.environ.get("PORTAL_DB_PORT",3306))
PORTAL_DB_USER = os.environ.get("PORTAL_DB_USER","root")
PORTAL_DB_PASS = os.environ.get("PORTAL_DB_PASS","连接密码")
PORTAL_DB_NAME = os.environ.get("PORTAL_DB_NAME","falcon_portal")

# alarm database
# TODO: read from api instead of db
ALARM_DB_HOST = os.environ.get("ALARM_DB_HOST","127.0.0.1")
ALARM_DB_PORT = int(os.environ.get("ALARM_DB_PORT",3306))
ALARM_DB_USER = os.environ.get("ALARM_DB_USER","root")
ALARM_DB_PASS = os.environ.get("ALARM_DB_PASS","连接密码")
ALARM_DB_NAME = os.environ.get("ALARM_DB_NAME","alarms")

4、创建虚拟环境

# 切换到前端代码目录
cd /data/env/open-falcon/dashboard
# 创建虚拟环境
virtualenv ./env
# 安装依赖包
./env/bin/pip install -r pip_requirements.txt -i https://pypi.douban.com/simple

5、启动前端

Debug模式启动,方便调试;

访问地址:IP+8081端口

[root@bogon dashboard]# ./env/bin/python wsgi.py
[warning] no local config file
 * Serving Flask app "rrd" (lazy loading)
 * Environment: production
   WARNING: Do not use the development server in a production environment.
   Use a production WSGI server instead.
 * Debug mode: off
2022-01-04 18:41:41 INFO: * Running on http://0.0.0.0:8081/ (Press CTRL+C to quit)

默认是没有用户的,需要在sign up注册一个用户才可以登录

访问没有问题就用生产模式启动,直接Ctrl+C结束掉

启动:

[root@bogon dashboard]# bash control start
falcon-dashboard started..., pid=44055

停止:

[root@bogon dashboard]# bash control stop
falcon-dashboard quit...


官方文档:https://book.open-falcon.org/zh_0_2/quick_install/

正文到此结束
评论

登录后才能发表评论 登录/注册

0评论
  • 还没有评论,快来抢沙发吧!