一: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

最新文章

  1. git 提交代码
  2. PHP while使用
  3. centos 下 yum 安装 nginx 平滑切换安装到 Tengine
  4. 修改UISearBar的文字颜色,placehoder颜色及输入框颜色
  5. hibernate spring sturts2配置
  6. poj 2516Minimum Cost
  7. codevs 1733 聪明的打字员 (Bfs)
  8. DOM基础(一)
  9. ecshop获取商品销量函数
  10. logback生成多个不同的日志文件
  11. Fuck me
  12. linux Java项目CPU内存占用高故障排查
  13. Python3学习笔记十八
  14. Java多线程、线程池和线程安全整理
  15. Python学习笔记-循环语句
  16. 步步為營-97-MyMVC3
  17. 内核中的锁机制--RCU
  18. 2018.11.07 NOIP模拟 数独(模拟)
  19. kafka groupid
  20. 【LOJ】#2082. 「JSOI2016」炸弹攻击 2

热门文章

  1. C#通讯框架改写
  2. service程序改为windows窗体展示
  3. ASE19团队项目alpha阶段model组 scrum3 记录
  4. Vue移动端焦点状态跳转页面,焦点和键盘不消失的问题
  5. 为什么有了uwsgi还要nginx这个“前端”服务器
  6. 【异常】ERROR main:com.cloudera.enterprise.dbutil.SqlFileRunner: Exception while executing ddl scripts. com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Table 'ROLES' already exists
  7. Linux ppp 数据收发流程
  8. 使用Barrier分三步将大象放入冰箱
  9. python改成了python3的版本,那么这时候yum就出问题了
  10. Rasterize order group