-
Notifications
You must be signed in to change notification settings - Fork 255
Senders
Sun Jianbo edited this page Sep 11, 2017
·
12 revisions
Senders的主要作用是将Parser后的数据发送至Sender支持的各类服务,目前支持发送到的服务包括: Pandora、ElasticSearch、File、InfluxDB、MongoDB五种服务。
- Pandora Sender: 发送到Pandora(七牛大数据处理平台)。
- ElasticSearch Sender: 发送到ElasticSearch。
- File Sender: 发送到本地文件。
- InfluxDB Sender: 发送到InfluxDB。
- MongoDB Accumulate Sender: 聚合后发送到MongoDB。
除了上述五种发送到服务之外,logkit还支持一种发送到本地磁盘进行数据发送预处理的模式(fault_tolerant
设置为true,ft_strategy
设置为always_save
),进行了fault_tolerant
模式设置后,数据的reader/parser就和发送异步,数据可以持续读取并解析进入磁盘队列,sender则可以多线程发送,可以有效提升发送效率,并发发送数据。
"senders":[{
"name":"pandora_sender",
"sender_type":"pandora",
"pandora_ak":"",
"pandora_sk":"",
"pandora_host":"https://pipeline.qiniu.com",
"pandora_repo_name":"yourRepoName",
"pandora_region":"nb",
"pandora_schema":"field1 pandora_field1,field2,field3 pandora_field3",
"fault_tolerant":"true",
"ft_sync_every":"5",
"ft_save_log_path":"./ft_log",
"ft_write_limit":"1",
"ft_strategy":"always_save",
"ft_procs":"2"
}]
-
name
: 是sender的标识 -
sender_type
: sender类型,支持file
,mongodb_acc
,pandora
,influxdb
-
fault_tolerant
: 是否用异步容错方式进行发送,默认为false。 -
ft_save_log_path
: 当fault_tolerant
为true时候必填。该路径必须为文件夹,该文件夹会作为本地磁盘队列,存放数据,进行异步容错发送。 -
ft_sync_every
:当fault_tolerant
为true时候必填。多少次发送数据会记录一次本地磁盘队列的offset。 -
ft_write_limit
:选填,为了避免速率太快导致磁盘压力加大,可以根据系统情况自行限定写入本地磁盘的速率,单位MB/s。默认10MB/s -
ft_strategy
: 选填,该选项设置为backup_only
的时候,数据不经过本地队列直接发送到下游,设为always_save
时则所有数据会先发送到本地队列,选concurrent
的时候会直接并发发送,不经过队列。无论该选项设置什么,失败的数据都会加入到重试队列中异步循环重试。默认选项为always_save
。 -
ft_procs
:该选项表示从本地队列获取数据点并向下游发送的并发数,如果ft_strategy设置为backup_only
,则本项设置无效,只有本地队列有数据时,该项配置才有效,默认并发数为1. -
ft_memory_channel
: 选填,默认为"false",不启用。开启该选项会使用memory channel作为fault_tolerant
中disk queue的替代,相当于把fault_tolerant
作为一个队列使用,使得发送和数据读取解析变为异步,加速整个发送的过程。但是使用 memory channel 数据不落磁盘,会有数据丢失的风险。该功能适合与ft_procs
连用,利用内存队列,异步后,在发送端多并发加速。 -
ft_memory_channel_size
: 选填,默认为"100",单位为batch,也就是100代表100个待发送的批次,当ft_memory_channel
启用时有效,设置memory channel的大小。 注意:该选项设置的大小表达的是队列中可存储的元素个数,并不是占用的内存大小
补充说明
- 设置
fault_tolerant
为"true"时,会维持一个本地队列缓存起需要发送的数据。当数据发送失败的时候会在本地队列进行重试,此时如果发送错误,不会影响logkit继续收集日志。 - 设置
fault_tolerant
为"true"时,可以保证每次服务重启的时候都从上次的发送offset继续进行发送。在parse过程中产生中间结果,需要高容错性发送的时候最适合采用此种模式。 - 设置
fault_tolerant
为"true"时,一般希望日志收集程序对机器性能影响较小的时候,建议首先考虑将ft_strategy
设置为backup_only
,配置这个选项会首先尝试发送数据,发送失败的数据才放到备份队列等待下次重试。如果还希望更小的性能影响,并且数据敏感性不高,也可以不使用fault_tolerant
模式。 - 当日志发送的速度已经赶不上日志生产速度时,设置
fault_tolerant
为"true",且ft_strategy
设置为always_save
,通过设置ft_procs
加大并发,ft_procs
设置越大并发度越高,发送越快,对机器性能带来的影响也越大。 - 如果
ft_procs
增加已经不能再加大发送日志速度,那么就需要 加大ft_write_limit
限制,为logkit 的队列提升磁盘的读写速度。 - senders支持多个sender配置,但是我们不推荐在senders中加入多个sender,因为一旦某个sender发送缓慢,就会导致其他sender等待这个sender发送成功后再发。简单来说,配置多个sender会互相影响。
快速开始 | Pandora | Readers | Parsers | Senders | Download | 七牛智能日志管理平台 | logkit-pro专业版