千家信息网

open-falcon搭建

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,环境准备yum install -y redisyum install -y mysql-server###安装并开机自启### export HOME=/home/workexport WORKSP
千家信息网最后更新 2026年11月01日open-falcon搭建

环境准备

yum install -y redis

yum install -y mysql-server
###安装并开机自启###
 
export HOME=/home/work
export WORKSPACE=$HOME/open-falcon
mkdir -p $WORKSPACE
cd $WORKSPACE
git clone https://github.com/open-falcon/scripts.git
cd ./scripts/
mysql -h localhost -u root --password="" < db_schema/graph-db-schema.sql
mysql -h localhost -u root --password="" < db_schema/dashboard-db-schema.sql
 
mysql -h localhost -u root --password="" < db_schema/portal-db-schema.sql
mysql -h localhost -u root --password="" < db_schema/links-db-schema.sql
mysql -h localhost -u root --password="" < db_schema/uic-db-schema.sql

####数据库密码为空####

mkdir ./tmp

导入安装包open-falcon-v0.1.0.tar.gz

Shell脚本执行

        tar -zxf open-falcon-latest.tar.gz -C ./tmp/
for x in `find ./tmp/ -name "*.tar.gz"`;do \
    app=`echo $x|cut -d '-' -f2`; \
    mkdir -p $app; \
tar -zxf $x -C $app; \
done
 

安装go环境

cd ~
wget http://dinp.qiniudn.com/go1.4.1.linux-amd64.tar.gz
tar zxf go1.4.1.linux-amd64.tar.gz
mkdir -p workspace/src
echo "" >> .bashrc
echo 'export GOROOT=$HOME/go' >> .bashrc
echo 'export GOPATH=$HOME/workspace' >> .bashrc
echo 'export PATH=$GOROOT/bin:$GOPATH/bin:$PATH' >> .bashrc
echo "" >> .bashrc
source .bashrc

接下来clone代码,以备后用

cd $GOPATH/src
mkdir github.com
cd github.com
git clone --recursive https://github.com/open-falcon/of-release.git

安装agent(采集机器监控指标)

cd $GOPATH/src/github.com/open-falcon/agent

###所有组件配置文件必须叫cfg.json,可以基于cfg.example.json修改

./control start 启动进程
./control stop 停止进程
./control restart 重启进程
./control status 查看进程状态
./control tail 用tail -f的方式查看var/app.log
./falcon-agent -check检查是否可以正常跑在当前机器
 
 
安装Transfer(数据转发服务)
Cd transfer
vim cfg.json
 
{
    "debug": false,
    "minStep": 30,
    "http": {
        "enabled": true,
        "listen": "0.0.0.0:6060"
    },
    "rpc": {
        "enabled": true,
        "listen": "0.0.0.0:8433"
    },
    "socket": {
        "enabled": false,
        "listen": "0.0.0.0:4444",
        "timeout": 3600
    },
    "judge": {
        "enabled": true,
        "batch": 200,
        "connTimeout": 1000,
        "callTimeout": 5000,
        "maxConns": 32,
        "maxIdle": 32,
        "replicas": 500,
        "cluster": {
            "judge-00" : "127.0.0.1:6080"
        }
    },
    "graph": {
        "enabled": true,
        "batch": 200,
        "connTimeout": 1000,
        "callTimeout": 5000,
        "maxConns": 32,
        "maxIdle": 32,
        "replicas": 500,
        "cluster": {
            "graph-00" : "127.0.0.1:6070"
        }
    },
    "tsdb": {
        "enabled": true,
        "batch": 200,
        "connTimeout": 1000,
        "callTimeout": 5000,
        "maxConns": 32,
        "maxIdle": 32,
        "retry": 3,
        "address": "127.0.0.1:8088"
    }
}
 
启动
./control start
curl -s "127.0.0.1:6060/health"  校验
 
cd graph
mv cfg.example.json cfg.json
vim cfg.json
{
        "debug": false,
        "http": {
                "enabled": true,
                "listen": "0.0.0.0:6071"
        },
        "rpc": {
                "enabled": true,
                "listen": "0.0.0.0:6070"
        },
        "rrd": {
                "storage": "/home/work/data/6070"
        },
        "db": {
                "dsn": "root:@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"
                }
        }
}
 
./control start
curl -s "127.0.0.1:6071/health"
 
cd ../queph
mv cfg.example.json cfg.json
vim cfg.json
{
    "debug": "false",
    "http": {
        "enabled":  true,
        "listen":   "0.0.0.0:9966"
    },
    "graph": {
        "connTimeout": 1000,
        "callTimeout": 5000,
        "maxConns": 32,
        "maxIdle": 32,
        "replicas": 500,
        "cluster": {
            "graph-00": "127.0.0.1:6070"
        }
    },
    "api": {
        "query": "http://127.0.0.1:9966",
        "dashboard": "http://127.0.0.1:8081",
        "max": 500
服务启动后,可以通过日志查看服务的运行状态,日志文件地址为./var/app.log。可以通过查询脚本./scripts/query读取绘图数据,如 运行 bash ./scripts/query "ur.endpoint" "ur.counter"可以查询Endpoint="ur.endpoint" & Counter="ur.counter"对应的绘图数据。
 
注意: 请确保 graph.replicas和graph.cluster 的内容与transfer的配置完全一致
 
 
安装dashboard
yum install -y python-virtualenv
cd /path/to/dashboard/
virtualenv ./env
./env/bin/pip install -r pip_requirements.txt
###这里MySQL-Python会出错。在pip_requirements.txt里去掉MySQL-Python单独安装。参考地址:http://blog.csdn.net/winsonyuan/article/details/65447796
 
vim ./gunicorn.conf
vim ./rrd/config.py
 
workers = 4
bind = ':8081'
proc_name = 'falcon-dashboard-opensource'
pidfile = '/tmp/falcon-dashboard-opensource.pid'
limit_request_field_size = 0
limit_request_line = 0
 
#-*-coding:utf8-*-
import os
 
#-- dashboard db config --
DASHBOARD_DB_HOST = "127.0.0.1"
DASHBOARD_DB_PORT = 3306
DASHBOARD_DB_USER = "root"
DASHBOARD_DB_PASSWD = ""
DASHBOARD_DB_NAME = "dashboard"
 
#-- graph db config --
GRAPH_DB_HOST = "127.0.0.1"
GRAPH_DB_PORT = 3306
GRAPH_DB_USER = "root"
GRAPH_DB_PASSWD = ""
GRAPH_DB_NAME = "graph"
 
#-- app config --
DEBUG = True
SECRET_KEY = "secret-key"
SESSION_COOKIE_NAME = "open-falcon"
PERMANENT_SESSION_LIFETIME = 3600 * 24 * 30
SITE_COOKIE = "open-falcon-ck"
 
#-- query config --
QUERY_ADDR = "http://127.0.0.1:9966"
 
BASE_DIR = "/home/work/open-falcon/dashboard/"
LOG_PATH = os.path.join(BASE_DIR,"log/")
 
try:
    from rrd.local_config import *
except:
pass
 
邮件短信接口这里需要单独安装falcon-mail-provider的安装包
{
    "debug": true,
    "http": {
        "listen": "10.0.0.60:4000",
        "token": ""
    },
    "smtp": {
        "addr": "smtp.qq.com:587",
        "username": "XXXX@qq.com",
        "password": "eahqkylmljenbfge",==》这里有个授权码问题。
        "from": "XXXX@qq.com"
    }
}
~  ./control start
 
发送一份测试邮件:curl http://10.0.0.60:4000/sender/mail -d tos=XXXX@qq.com&subject=helloworld&content=test
 
安装sender(调用公司提供的邮件、短信接口)
Cd sender
Vi cfg.json
{
    "debug": true,
    "http": {
        "enabled": true,
        "listen": "0.0.0.0:6066"
    },
    "redis": {
        "addr": "127.0.0.1:6379",
        "maxIdle": 5
    },
    "queue": {
        "sms": "/sms",
        "mail": "/mail"
    },
    "worker": {
        "sms": 10,
        "mail": 50
    },
    "api": {
        "sms": "http://10.0.0.60:8000/sms",
        "mail": "http://10.0.0.60:4000/sender/mail"
    }
}
 
curl 127.0.0.1:6066/health
 
安装FE(UIC  web入口)
Cd fe
Vi cfg.json
{
    "log": "debug",
    "company": "PJwuliu",        ==》这里是公司名称用于生成二维码
    "http": {
        "enabled": true,
        "listen": "0.0.0.0:1234"
    },
    "cache": {
        "enabled": true,
        "redis": "127.0.0.1:6379",
        "idle": 10,
        "max": 1000,
        "timeout": {
            "conn": 10000,
            "read": 5000,
            "write": 5000
        }
    },
    "salt": "fdfdfdsfsdfsfdsfs",
    "canRegister": true,
    "ldap": {
        "enabled": false,
        "addr": "ldap.example.com:389",
        "baseDN": "dc=example,dc=com",
        "bindDN": "cn=mananger,dc=example,dc=com",
        "bindPasswd": "12345678",
        "userField": "uid",
        "attributes": ["sn","mail","telephoneNumber"]
    },
    "uic": {
        "addr": "root:@tcp(127.0.0.1:3306)/uic?charset=utf8&loc=Asia%2FChongqing",
        "idle": 10,
        "max": 100
    },
    "shortcut": {
        "falconPortal": "http://10.0.0.60:5050/",
        "falconDashboard": "http://10.0.0.60:8081/",
        "falconAlarm": "http://10.0.0.60:9912/"
}
 
安装portal(配置报警策略)
# yum install -y python-virtualenv
 
$ cd /path/to/portal/
$ virtualenv ./env
 
$ ./env/bin/pip install -r pip_requirements.txt
vi ../portal/frame/config.py
# -*- coding:utf-8 -*-
__author__ = 'Ulric Qin'
 
# -- app config --
DEBUG = True
 
# -- db config --
DB_HOST = "127.0.0.1"
DB_PORT = 3306
DB_USER = "root"
DB_PASS = ""
DB_NAME = "falcon_portal"
 
# -- cookie config --
SECRET_KEY = "4e.5tyg8-u9iojds"
SESSION_COOKIE_NAME = "falcon-portal"
PERMANENT_SESSION_LIFETIME = 3600 * 24 * 30
 
UIC_ADDRESS = {
    'internal': 'http://10.0.0.60:1234',
    'external': 'http://10.0.0.60:1234',
}
 
UIC_TOKEN = ''
 
MAINTAINERS = ['root']
CONTACT = 'ulric.qin@gmail.com'
 
COMMUNITY = True
 
try:
    from frame.local_config import *
except Exception, e:
    print "[warning] %s" % e
 
cd hbs
 
{
    "debug": true,
    "database": "root:@tcp(127.0.0.1:3306)/falcon_portal?loc=Local&parseTime=true",
    "hosts": "",
    "maxIdle": 100,
    "listen": ":6030",
    "trustable": [""],
    "http": {
        "enabled": true,
        "listen": "0.0.0.0:6031"
    }
}
 
Cd judge~(告警判断)
{
    "debug": true,
    "debugHost": "nil",
    "remain": 11,
    "http": {
        "enabled": true,
        "listen": "10.0.0.60:6081"
    },
    "rpc": {
        "enabled": true,
        "listen": "0.0.0.0:6080"
    },
    "hbs": {
        "servers": ["10.0.0.60:6030"],
        "timeout": 300,
        "interval": 60
    },
    "alarm": {
        "enabled": true,
        "minInterval": 300,
        "queuePattern": "event:p%v",
        "redis": {
            "dsn": "127.0.0.1:6379",
            "maxIdle": 5,
            "connTimeout": 5000,
            "readTimeout": 5000,
            "writeTimeout": 5000
        }
    }
}
 
curl 127.0.0.1:6081/health
 
cd links
virtualenv ./env
 
./env/bin/pip install -r pip_requirements.txt
 
# -*- coding:utf-8 -*-
__author__ = 'Ulric Qin'
 
# -- app config --
DEBUG = True
 
# -- db config --
DB_HOST = "10.0.0.60"
DB_PORT = 3306
DB_USER = "root"
DB_PASS = ""
DB_NAME = "falcon_links"
 
# -- cookie config --
SECRET_KEY = "4e.5tyg8-u9ioj"
SESSION_COOKIE_NAME = "falcon-links"
PERMANENT_SESSION_LIFETIME = 3600 * 24 * 30
 
try:
    from frame.local_config import *
except Exception, e:
print "[warning] %s" % e
 
安装alarm(处理报警event),judge产生的报警event写入redis,alarm从redis读取处理
 
{
    "debug": true,
    "uicToken": "",
    "http": {
        "enabled": true,
        "listen": "10.0.0.60:9912"
    },
    "queue": {
        "sms": "/sms",
        "mail": "/mail"
    },
    "redis": {
        "addr": "127.0.0.1:6379",
        "maxIdle": 5,
        "highQueues": [
            "event:p0",
            "event:p1",
            "event:p2",
            "event:p3",
            "event:p4",
            "event:p5"
        ],
        "lowQueues": [
            "event:p6"
        ],
        "userSmsQueue": "/queue/user/sms",
        "userMailQueue": "/queue/user/mail"
    },
    "api": {
        "portal": "http://10.0.0.60:5050",
        "uic": "http://10.0.0.60:1234",
        "links": "http://10.0.0.60:5090"
    }
}
 
安装task(定时任务)
{
    "debug": false,
    "http": {
        "enable": true,
        "listen": "0.0.0.0:8002"
    },
    "index": {
        "enable": false,
        "dsn": "root:root@tcp(127.0.0.1:3306)/graph?loc=Local&parseTime=true",
        "maxIdle": 4,
        "autoDelete": false,
        "cluster":{
            "test.hostname01:6071" : "0 0 0 ? * 0-5",
            "test.hostname02:6071" : "0 30 0 ? * 0-5"
        }
    },
    "collector" : {
        "enable": true,
        "destUrl" : "http://127.0.0.1:1988/v1/push",
        "srcUrlFmt" : "http://%s/statistics/all",
        "cluster" : [
            "transfer,open-falcon.te:6060",
            "graph,open-falcon.te:6071",
            "task,open-falcon.te:8001"
        ]
    }
}
 
安装nodata(监测监控数据的上报异常)
{
    "debug": true,
    "http": {
        "enabled": true,
        "listen": "0.0.0.0:6090"
    },
    "query":{
        "connectTimeout": 5000,
        "requestTimeout": 30000,
        "queryAddr": "127.0.0.1:9966"
    },
    "config": {
        "enabled": true,
        "dsn": "root:@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": 5000,
        "requestTimeout": 30000,
        "transferAddr": "127.0.0.1:6060",
        "batch": 500,
        "block": {
            "enabled": false,
            "threshold": 32
        }
    }
}
 
安装aggregator  (集群聚合模块)
{
    "debug": true,
    "http": {
        "enabled": true,
        "listen": "0.0.0.0:6055"
    },
    "database": {
        "addr": "root:@tcp(127.0.0.1:3306)/falcon_portal?loc=Local&parseTime=true",
        "idle": 10,
        "ids": [1, -1],
        "interval": 55
    },
    "api": {
        "hostnames": "http://127.0.0.1:5050/api/group/%s/hosts.json",
        "push": "http://127.0.0.1:6060/api/push",
        "graphLast": "http://127.0.0.1:9966/graph/last"
    }
}至此open-falcon已经搭建完成。现在open-falcon刚发布不久plus版,有时间再去看看吧!            祝玩的开心!!!                官网地址:                https://github.com/open-falcon-archive/of-release
数据 进程 地址 邮件 报警 服务 配置 公司 可以通过 接口 文件 日志 机器 状态 环境 短信 脚本 utf-8 处理 查询 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网科技网 世界互联网领先科技成果 撒么互联网科技公司 互联网和高科技公司 北京三清互联网科技 江苏南京365互联网科技 中化能源互联网科技招聘 互联网科技公司有风险吗 深圳市优智互联网科技有限公司 银川新华互联网科技学校联系电话 保险科技服务互联网营销体系 黑科技 体验场景 互联网大会 互联网领先科技宣传片 上海创道互联网络科技有限公司 本届互联网大会上的黑科技 互联网科技手机排行榜 互联网公司属于科技吗 盐城市攀科互联网科技有限公司 杭州科技互联网公司有哪些 平安好医生打造互联网科技医疗 上海喔噻互联网科技有限公司 喔噻互联网科技 美国互联网黑科技 有木互联网科技 受益于互联网科技的高速发展 湖北码尼互联网科技有限公司电话 健康食品互联网创新科技园项目 晋城互联网科技 上海钢联属于互联网科技股吗 广州三三互联网科技有限公司
0