一:openfalcon组件

1.falcon-agent

数据采集组件

  agent内置了一个http接口,会自动采集预先定义的各种采集项,每隔60秒,push到transfer。

2.transfer

agent与transfer建立长连接,将数据汇报给tarnsfer

transfer默认监听在:8433端口上,agent会通过jsonrpc的方式来push数据上来

transfer将数据发送给judge和graph

3.graph

graph组件是存储绘图数据、历史数据的组件。transfer会把接收到的数据,转发给graph。

  监听端口为6071,校验方法如下,返回ok表示服务正常。

#url -s "http://127.0.0.1:6071/health"

4.query

绘图数据的查询接口,因为graph是分片存储的,如果要传输给dashboard,就需要query组件收集用户的数据进行聚合再返回给用户。

5.dashboard

 dashboard是面向用户的查询界面,在这里,用户可以看到push到graph中的所有数据,并查看其趋势图。

6.judge

  告警判断

7.alarm

  alarm模块是处理报警事件的,judge产生的报警事件写入redis,alarm从redis读取数据。

8.sender

  调用各个公司提供的mail-privider和sms-privider,按照某个并发度,从redis读取邮件,短信并发送,

alarm生成的报警短信和报警邮件是直接写入redis即可,由sender来发送。

9.mail-privider&&sms-provider

  发送邮件短信接口

10.protal

  配置报警策略的地方

11.HBS

  Heartbeat Server心跳服务,只依赖Protal的DB

二:相关服务配置详解

1.falcon-agent

1.进程管理

1
2
3
./open-falcon start agent  启动进程
./open-falcon stop agent  停止进程
./open-falcon monitor agent  查看日志

2.配置文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
{
    "debug"true,  # 控制一些debug信息的输出,生产环境通常设置为false
    "hostname""", # agent采集了数据发给transfer,endpoint就设置为了hostname,默认通过`hostname`获取,如果配置中配置了hostname,就用配置中的
    "ip""", # agent与hbs心跳的时候会把自己的ip地址发给hbs,agent会自动探测本机ip,如果不想让agent自动探测,可以手工修改该配置
    "plugin": {
        "enabled"false, # 默认不开启插件机制
        "dir""./plugin",  # 把放置插件脚本的git repo clone到这个目录
        "git""https://github.com/open-falcon/plugin.git", # 放置插件脚本的git repo地址
        "logs""./logs" # 插件执行的log,如果插件执行有问题,可以去这个目录看log
    },
    "heartbeat": {
        "enabled"true,  # 此处enabled要设置为true
        "addr""127.0.0.1:6030", # hbs的地址,端口是hbs的rpc端口
        "interval": 60, # 心跳周期,单位是秒
        "timeout": 1000 # 连接hbs的超时时间,单位是毫秒
    },
    "transfer": {
        "enabled"true,
        "addrs": [
            "127.0.0.1:18433"
        ],  # transfer的地址,端口是transfer的rpc端口, 可以支持写多个transfer的地址,agent会保证HA
        "interval": 60, # 采集周期,单位是秒,即agent一分钟采集一次数据发给transfer
        "timeout": 1000 # 连接transfer的超时时间,单位是毫秒
    },
    "http": {
        "enabled"true,  # 是否要监听http端口
        "listen"":1988",
        "backdoor"false
    },
    "collector": {
        "ifacePrefix": ["eth""em"], # 默认配置只会采集网卡名称前缀是eth、em的网卡流量,配置为空就会采集所有的,lo的也会采集。可以从/proc/net/dev看到各个网卡的流量信息
        "mountPoint": []
    },
    "default_tags": {
    },
    "ignore": {  # 默认采集了200多个metric,可以通过ignore设置为不采集
        "cpu.busy"true,
        "df.bytes.free"true,
        "df.bytes.total"true,
        "df.bytes.used"true,
        "df.bytes.used.percent"true,
        "df.inodes.total"true,
        "df.inodes.free"true,
        "df.inodes.used"true,
        "df.inodes.used.percent"true,
        "mem.memtotal"true,
        "mem.memused"true,
        "mem.memused.percent"true,
        "mem.memfree"true,
        "mem.swaptotal"true,
        "mem.swapused"true,
        "mem.swapfree"true
    }
}

  

2.Transfer

1.进程管理

1
2
3
4
5
6
7
8
# 校验服务,这里假定服务开启了6060的http监听端口。检验结果为ok表明服务正常启动。
curl -s "127.0.0.1:6060/health"
# 启动服务
./open-falcon start transfer
# 停止服务
./open-falcon stop transfer
# 查看日志
./open-falcon monitor transfer

  

2.配置文件

部署完成transfer组件后,请修改agent的配置,使其指向正确的transfer地址。在安装完graph和judge后,请修改transfer的相应配置、使其能够正确寻址到这两个组件。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
debug: true/false, 如果为true,日志中会打印debug信息
 
minStep: 30, 允许上报的数据最小间隔,默认为30秒
 
http
    - enabled: true/false, 表示是否开启该http端口,该端口为控制端口,主要用来对transfer发送控制命令、统计命令、debug命令等
    - listen: 表示监听的http端口
 
rpc
    - enabled: true/false, 表示是否开启该jsonrpc数据接收端口, Agent发送数据使用的就是该端口
    - listen: 表示监听的http端口
 
socket #即将被废弃,请避免使用
    - enabled: true/false, 表示是否开启该telnet方式的数据接收端口,这是为了方便用户一行行的发送数据给transfer
    - listen: 表示监听的http端口
 
judge
    - enabled: true/false, 表示是否开启向judge发送数据
    - batch: 数据转发的批量大小,可以加快发送速度,建议保持默认值
    - connTimeout: 单位是毫秒,与后端建立连接的超时时间,可以根据网络质量微调,建议保持默认
    - callTimeout: 单位是毫秒,发送数据给后端的超时时间,可以根据网络质量微调,建议保持默认
    - pingMethod: 后端提供的ping接口,用来探测连接是否可用,必须保持默认
    - maxConns: 连接池相关配置,最大连接数,建议保持默认
    - maxIdle: 连接池相关配置,最大空闲连接数,建议保持默认
    - replicas: 这是一致性hash算法需要的节点副本数量,建议不要变更,保持默认即可
    - cluster: key-value形式的字典,表示后端的judge列表,其中key代表后端judge名字,value代表的是具体的ip:port
 
graph
    - enabled: true/false, 表示是否开启向graph发送数据
    - batch: 数据转发的批量大小,可以加快发送速度,建议保持默认值
    - connTimeout: 单位是毫秒,与后端建立连接的超时时间,可以根据网络质量微调,建议保持默认
    - callTimeout: 单位是毫秒,发送数据给后端的超时时间,可以根据网络质量微调,建议保持默认
    - pingMethod: 后端提供的ping接口,用来探测连接是否可用,必须保持默认
    - maxConns: 连接池相关配置,最大连接数,建议保持默认
    - maxIdle: 连接池相关配置,最大空闲连接数,建议保持默认
    - replicas: 这是一致性hash算法需要的节点副本数量,建议不要变更,保持默认即可
    - cluster: key-value形式的字典,表示后端的graph列表,其中key代表后端graph名字,value代表的是具体的ip:port(多个地址用逗号隔开, transfer会将同一份数据发送至各个地址,利用这个特性可以实现数据的多重备份)
 
tsdb
    - enabled: true/false, 表示是否开启向open tsdb发送数据
    - batch: 数据转发的批量大小,可以加快发送速度
    - connTimeout: 单位是毫秒,与后端建立连接的超时时间,可以根据网络质量微调,建议保持默认
    - callTimeout: 单位是毫秒,发送数据给后端的超时时间,可以根据网络质量微调,建议保持默认
    - maxConns: 连接池相关配置,最大连接数,建议保持默认
    - maxIdle: 连接池相关配置,最大空闲连接数,建议保持默认
    - retry: 连接后端的重试次数和发送数据的重试次数
    - address: tsdb地址或者tsdb集群vip地址, 通过tcp连接tsdb.

  

3.graph

1.进程管理

1
2
3
4
5
6
7
8
# 启动服务
./open-falcon start graph
 
# 停止服务
./open-falcon stop graph
 
# 查看日志
./open-falcon monitor graph

2.配置文件

     部署完graph组件后,请修改transfer和api的配置,使这两个组件可以寻址到graph。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
{
    "debug"false//true or false, 是否开启debug日志
    "http": {
        "enabled"true//true or false, 表示是否开启该http端口,该端口为控制端口,主要用来对graph发送控制命令、统计命令、debug命令
        "listen""0.0.0.0:6071" //表示监听的http端口
    },
    "rpc": {
        "enabled"true//true or false, 表示是否开启该rpc端口,该端口为数据接收端口
        "listen""0.0.0.0:6070" //表示监听的rpc端口
    },
    "rrd": {
        "storage""./data/6070" // 历史数据的文件存储路径(如有必要,请修改为合适的路)
    },
    "db": {
        "dsn""root:@tcp(127.0.0.1:3306)/graph?loc=Local&parseTime=true"//MySQL的连接信息,默认用户名是root,密码为空,host为127.0.0.1,database为graph(如有必要,请修改)
        "maxIdle": 4  //MySQL连接池配置,连接池允许的最大连接数,保持默认即可
    },
    "callTimeout": 5000,  //RPC调用超时时间,单位ms
    "migrate": {  //扩容graph时历史数据自动迁移
        "enabled"false,  //true or false, 表示graph是否处于数据迁移状态
        "concurrency": 2, //数据迁移时的并发连接数,建议保持默认
        "replicas": 500, //这是一致性hash算法需要的节点副本数量,建议不要变更,保持默认即可(必须和transfer的配置中保持一致)
        "cluster": { //未扩容前老的graph实例列表
            "graph-00" "127.0.0.1:6070"
        }
    }
}

 

4.Api(query)

1.进程管理

1
2
3
4
5
6
7
8
# 启动服务
./open-falcon start api
 
# 停止服务
./open-falcon stop api
 
# 查看日志
./open-falcon monitor api

  

2.相关配置

  • 部署完成api组件后,请修改dashboard组件的配置、使其能够正确寻址到api组件。
  • 请确保api组件的graph列表 与 transfer的配置 一致。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
{
    "log_level""debug",
    "db": {  //数据库相关的连接配置信息
        "faclon_portal""root:@tcp(127.0.0.1:3306)/falcon_portal?charset=utf8&parseTime=True&loc=Local",
        "graph""root:@tcp(127.0.0.1:3306)/graph?charset=utf8&parseTime=True&loc=Local",
        "uic""root:@tcp(127.0.0.1:3306)/uic?charset=utf8&parseTime=True&loc=Local",
        "dashboard""root:@tcp(127.0.0.1:3306)/dashboard?charset=utf8&parseTime=True&loc=Local",
        "alarms""root:@tcp(127.0.0.1:3306)/alarms?charset=utf8&parseTime=True&loc=Local",
        "db_bug"true
    },
    "graphs": {  // graph模块的部署列表信息
        "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"":8080",  // http监听端口
    "access_control"true// 如果设置为false,那么任何用户都可以具备管理员权限
    "salt""pleaseinputwhichyouareusingnow",  //数据库加密密码的时候的salt
    "skip_auth"false//如果设置为true,那么访问api就不需要经过认证
    "default_token""default-token-used-in-server-side",  //用于服务端各模块间的访问授权
    "gen_doc"false,
    "gen_doc_path""doc/module.html"
}

  

5.Dashboard

1.进程管理

1
2
3
4
5
6
7
8
9
10
11
12
#以开发者模式启动
./env/bin/python wsgi.py
 
#以生产环境启动
bash control start
 
#停止dashboard运行
 
bash control stop
 
#查看日志
bash control tail

2,.相关配置文件

dashbord没有默认创建任何账号包括管理账号,需要你通过页面进行注册账号。
想拥有管理全局的超级管理员账号,需要手动注册用户名为root的账号(第一个帐号名称为root的用户会被自动设置为超级管理员)。
超级管理员可以给普通用户分配权限管理。
1
2
3
4
5
6
7
dashboard的配置文件为: 'rrd/config.py',请根据实际情况修改
 
## API_ADDR 表示后端api组件的地址
API_ADDR = "http://127.0.0.1:8080/api/v1"
 
## 根据实际情况,修改PORTAL_DB_*, 默认用户名为root,默认密码为""
## 根据实际情况,修改ALARM_DB_*, 默认用户名为root,默认密码为""

  

6.HBS

1.进程管理

1
2
3
4
5
6
7
8
# 启动
./open-falcon start hbs
 
# 停止
./open-falcon stop hbs
 
# 查看日志
./open-falcon monitor hbs

  

2.相关配置

如果你先部署了agent,后部署的hbs,那咱们部署完hbs之后需要回去修改agent的配置,把agent配置中的heartbeat部分enabled设置为true,addr设置为hbs的rpc地址。

如果hbs的配置文件维持默认,rpc端口就是6030,http端口是6031,agent中应该配置为hbs的rpc端口,小心别弄错了。

1
2
3
4
5
6
7
8
9
10
11
12
{
    "debug"true,
    "database""root:password@tcp(127.0.0.1:3306)/falcon_portal?loc=Local&parseTime=true", # Portal的数据库地址
    "hosts""", # portal数据库中有个host表,如果表中数据是从其他系统同步过来的,此处配置为sync,否则就维持默认,留空即可
    "maxIdle": 100,
    "listen"":6030", # hbs监听的rpc地址
    "trustable": [""],
    "http": {
        "enabled"true,
        "listen""0.0.0.0:6031" # hbs监听的http地址
    }
}

  

7.Judge

1.进程管理

1
2
3
4
5
6
7
8
# 启动
./open-falcon start judge
 
# 停止
./open-falcon stop judge
 
# 查看日志
./open-falcon monitor judge

2.相关配置文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
{
    "debug"true,
    "debugHost""nil",
    "remain": 11,
    "http": {
        "enabled"true,
        "listen""0.0.0.0:6081"
    },
    "rpc": {
        "enabled"true,
        "listen""0.0.0.0:6080"
    },
    "hbs": {
        "servers": ["127.0.0.1:6030"], # hbs最好放到lvs vip后面,所以此处最好配置为vip:port
        "timeout": 300,
        "interval": 60
    },
    "alarm": {
        "enabled"true,
        "minInterval": 300, # 连续两个报警之间至少相隔的秒数,维持默认即可
        "queuePattern""event:p%v",
        "redis": {
            "dsn""127.0.0.1:6379", # 与alarm、sender使用一个redis
            "maxIdle": 5,
            "connTimeout": 5000,
            "readTimeout": 5000,
            "writeTimeout": 5000
        }
    }
}

  

8.Alarm

1.进程管理

1
2
3
4
5
6
7
8
# 启动
./open-falcon start alarm
 
# 停止
./open-falcon stop alarm
 
# 查看日志
./open-falcon monitor alarm

2.相关配置文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
{
    "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",  //dashboard模块的运行地址
        "plus_api":"http://127.0.0.1:8080",   //falcon-plus api模块的运行地址
        "plus_api_token""default-token-used-in-server-side" //用于和falcon-plus api模块服务端之间的通信认证token
    },
    "falcon_portal": {
        "addr""root:@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
    }
}

转自: https://www.cnblogs.com/yaohong/p/9218400.html#_label1_0

openfalcon架构及相关服务配置详解(转)的更多相关文章

  1. openfalcon架构及相关服务配置详解

    一:openfalcon组件 1.falcon-agent 数据采集组件 agent内置了一个http接口,会自动采集预先定义的各种采集项,每隔60秒,push到transfer. 2.transfe ...

  2. tomcat架构分析及配置详解

    浏览器访问服务器的流程 请求发起的过程: 注意:浏览器访问服务器使用的是http协议,http是应用层协议,而具体传输还是使用的TCP/IP协议 Tomcat系统总架构 2.1 Tomcat请求处理过 ...

  3. mysql高可用架构之mysql-mmm配置详解

    实验系统:CentOS 6.6_x86_64 实验前提:防火墙和selinux都关闭 实验说明:本实验共有5台主机,IP分配如拓扑 实验软件:mariadb-10.0.20 mysql-mmm-2.2 ...

  4. 华为ensp模拟某公司网络架构及配置详解

    1.先晒下架构图,二层设备省略..... 2.下面开始具体配置详解 2.1.从路由器开始配置,先用远程工具远程AR1220F-S路由,secureCRT ,putty,xshell任选其中一个均可,功 ...

  5. babel 用法及其 .babelrc 的配置详解,想做前端架构,拒绝一知半解...

    Babel 官方介绍:将 ECMAScript 2015 及其版本以后的 javascript 代码转为旧版本浏览器或者是环境中向后兼容版本的  javascript 代码. 简而言之,就是把不兼容的 ...

  6. 日志分析工具ELK配置详解

    日志分析工具ELK配置详解 一.ELK介绍 1.1 elasticsearch 1.1.1 elasticsearch介绍 ElasticSearch是一个基于Lucene的搜索服务器.它提供了一个分 ...

  7. WebsitePanel(wsp)配置详解(安装指南)

    WebsitePanel(wsp)配置详解(安装指南) 铁卫士原创 估计很多同学都还不知道WebsitePanel是什么东东吧,WebsitePanel简称wsp是微软旗下,开源免费的虚拟主机系统,我 ...

  8. java web.xml配置详解(转)

    源出处:java web.xml配置详解 1.常规配置:每一个站的WEB-INF下都有一个web.xml的设定文件,它提供了我们站台的配置设定. web.xml定义: .站台的名称和说明 .针对环境参 ...

  9. Nginx+Tomcat的服务器端环境配置详解

    这篇文章主要介绍了Nginx+Tomcat的服务器端环境配置详解,包括Nginx与Tomcat的监控开启方法,需要的朋友可以参考下 Nginx+tomcat是目前主流的Javaweb架构,如何让ngi ...

随机推荐

  1. winfrom_动态添加按钮button(设置颜色,大小,按钮字体大小、颜色,位置,事件)

    List<string> strColor = new List<string>(); strColor.Add("#e67817"); strColor. ...

  2. 复杂度n求数组的第K大值

    利用快速排序的方法进行: #include<iostream> using namespace std; int test() { ; return a; } int quickSort( ...

  3. 记录一次SourceTree无法push问题排查及解决

    1.push代码卡住,一直转圈2.试了下拉取代码也拉不到3.试了使用git命令行push可以4.使用Sourcetree新建项目,一直在检查url.5.初步判断原因,SourceTree无法联网.6. ...

  4. Vue-img-preload

    预加载页面上的图片资源,提高用户体验 效果预览 使用方法 下载vue-img-preload插件 npm install vue-img-preload 配置参数 eachLoaded(functio ...

  5. js-回文数

    回文数 设n是一任意自然数.若将n的各位数字反向排列所得自然数n1与n相等,则称n为一回文数. //回文数 let readline = require("readline-sync&quo ...

  6. sql server 语句书写注意事项

    1  Between在某些时候比IN 2 在必要是对全局或者局部临时表创建索引,有时能够提高速度,但不是一定会这样,因为索引也耗费大量的资源.他的创建同是实际表一样 3 尽量少用视图,它的效率低.对视 ...

  7. Navicat for MySQL 设置定时任务(事件)

    1.查询界面输入命令,查看定时任务是否开启,未开始时OFF: show variables like '%event_scheduler%'; 2. 查询界面输入命令,开启定时任务: set glob ...

  8. Django restfulframework 开发相关知识 整理

    目录 目录 前言 前后端分离 实现前后端分离的方法 前后端分离带来的优点 RESTful十大规范 协议规范 域名规范 版本表示规范 url使用名词 http请求动词 过滤条件 状态码 错误信息 请求方 ...

  9. WebLogic 12c Linux 命令行 静默安装

    CentOS 6.3安装配置Weblogic 10  http://www.linuxidc.com/Linux/2014-02/96918.htm Oracle WebLogic 11g 安装部署文 ...

  10. linux 使用 rz 上传和 sz下载 命令

    linux系统 root权限 lrzsz安装包 ①.在线安装-执行命令 yum install lrzsz  离线安装-需要提前准备好安装包 编译安装 root 账号登陆后,依次执行以下命令: tar ...