设为首页 收藏本站
查看: 3147|回复: 0

[经验分享] scribe conf,编译了一天,鬼知道用不用得到,找到的conf解释

[复制链接]

尚未签到

发表于 2015-9-17 10:04:00 | 显示全部楼层 |阅读模式
  Scribe的配置文件由全局的section和一个或多个store的section组成。这篇来了解一下scribe的配置文件,在源码包的examples目录下有多个配置文件实例:
  



?

1
2
3
4
5
6
7
8
9


examples/
├── example1.conf  #模拟服务端
├── example2central.conf  #在同一台机器模拟服务端的配置
├── example2client.conf  #在同一台机器模拟客户端的配置
├── hdfs_example2.conf
├── hdfs_example.conf
├── README
├── scribe_cat  #python客户端
└── scribe_ctrl  #管理scribe实例的工具
  scribe运行时的配置文件可以在命令行用-c指定,默认的配置位置在env_default.h中的DEFAULT_CONF_FILE_LOCATION设置,也就是/usr/local/scribe/scribe.conf。
  Global Configuration Variables
  port  
  设置scribe server监听在哪个端口上,默认是0,可以在命令行通过-p指定。
  max_msg_per_second  
  max_queue_size  
  设置消息队列的大小,用在scribeHandler::Log中,默认值是5,000,000 bytes。
  check_interval  
  设置多长时间检测一次存储,默认值是5秒。
  new_thread_per_category  
  值如果是yes,则会为每一个actegory创建一个线程,如果是no,则所有定义的store只创建一个线程,对于prefix stores或者default store,如果值是no,则会导致所有匹配这个category的消息都由一个单独的存储来处理,否则,将为每一个唯一的category创建存储。
  num_thrift_server_threads  
  监听进入消息的线程数,默认是3。
  Store Configuration
  scribe server根据配置文件中store的定义来记录消息,每一个store必须指定消息category用来处理三种异常情况:
  default store  
  默认category处理任何不能被其他store处理的category,只能有一个默认store,category=default。
  prefix stores  
  如果一个指定的category以*结尾,这个存储将处理所有以指定前缀开头的category 。
  multiple categories  
  在一个store的定义中可以使用'categories='创建多个store。categories=rock paper* scissors
  在上面三种情况下,scribe将为每一个唯一的category创建一个子目录,除非new_thread_per_category被设置为false。
  Store Configuration Variables
  category  
  设置哪些消息被这个store处理。
  type  
  存储类型,有file、buffer、network、bucket、thriftfile、null、mutil。
  target_write_size  
  默认是16,384 bytes,消息在被处理之前,category的消息队列可以增长到多大。
  max_batch_size  
  默认是1,024,000 bytes,在内存存储队列中一次可以被处理的数据量。
  max_write_interval  
  默认是1秒,决定在这些消息处理之前在给定category的消息队列可以用多长时间。
  must_succeed  
  是否必须成功,默认是yes,如果一个store处理消息失败,是否重新进入消息队列排队。如果设置为no,一个store不能处理这些消息的话,消息将被丢弃。建议使用缓存来指一个定二级存储来处理失败的日志。



?

1
2
3
4
5
6


<store>
category=statistics
type=file
target_write_size=20480
max_write_interval=2
</store>
  File Store Configuration
  file store把信息写入文件中。
  file_path  
  默认路径是‘/tmp’。
  base_filename  
  默认category名称。
  use_hostname_sub_directory  
  是否使用server的hostname建立子目录,默认是no。
  sub_directory  
  使用指定的名称创建子目录。
  rotate_period  
  设置多久创建一个文件,周期可以是“hourly”, “daily”, “never”, or number[suffix]; “never”是默认值,suffix可以是“s”, “m”, “h”, “d”, “w”,‘s’是默认值。
  rotate_hour  
  如果rotate_period是daily,设置每天何时创建新文件,值可以是0-23,默认是1。
  rotate_minute  
  如果rotate_period是daily或者hourly,设置一个小时多久后可以创建新文件,值可以是0-59,默认是15。
  max_size  
  在轮转一个文件前,该文件可以增长到多大,默认是1,000,000,000 bytes 。
  write_meta  
  值可以是yes或者其他值,false是默认值,如果文件被轮转,最后一行将包含"scribe_meta",跟着就是下一个文件名。
  fs_type  
  支持两种类型std和hdfs,默认是std。
  chunk_size  
  默认是0,如果一个chunk大小被指定,在文件内没有消息能够跨越chunk的边界,除非有消息的大小超过chunk的大小。
  add_newlines  
  默认是0,如果是1,则在每行后面加入换行符。
  create_symlink  
  默认值是yes,如果是真,则维护一个符号连接到最近被写入的文件。
  write_stats  
  是否对每一个store创建一个scribe_stats文件用来跟踪文件的写入轨迹,默认yes。
  max_write_size



?

1
2
3
4
5
6
7
8
9
10
11
12


<store>
category=sprockets
type=file
file_path=/tmp/sprockets
base_filename=sprockets_log
max_size=1000000
add_newlines=1
rotate_period=daily
rotate_hour=0
rotate_minute=10
max_write_size=4096
</store>
  
Network Store Configuration
  network store向其它scribe server发送消息,Scribe保持持久的链接打开以至于它能够发送消息。在正常运行的情况下,scribe会基于当前缓存中存在多少条消息等待发送而分批次的发送。
  remote_host  
  远程主机的ip或者名称。
  remote_port  
  远程主机的端口。
  timeout  
  socket超时时间,默认为default_socket_timeout_ms,在store.h中设定默认为5000毫秒。
  use_conn_pool  
  是否使用连接池代替为每一个远程主机打开的链接,默认是false。

Buffer Store Configuration
  buffer store中包含两个子store:primary和secondary。日志会先尝试写到primary store中,如果primary store出现故障,则scribe会将日志暂存到secondary store中,待primary store恢复性能后,再将secondary store中的数据拷贝到primary store中(除非replay_buffer=no)。其中,secondary store仅支持两种store:file和null。
  buffer_send_rate  
  默认是1,在check_interval周期内,执行多少次secondary store读出一组消息并且发送到primary store中。
  retry_interval  
  默认是300秒,primary store写入失败后,等待多久尝试重新发送primary store。
  retry_interval_range  
  默认是60秒,将在retry_interval的区间内随机的选择一个重新发送时间。
  replay_buffer  
  默认是yes,如果设置为no,将不会从secondary store迁移消息到primary store。
  



?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18


<store>
category=default
type=buffer
buffer_send_rate=1
retry_interval=30
retry_interval_range=10
  <primary>
    type=network
    remote_host=wopr
    remote_port=1456
  </primary>
  <secondary>
    type=file
    file_path=/tmp
    base_filename=thisisoverwritten
    max_size=10000000
  </secondary>
</store>
  Bucket Store Configuration
  bucket stores使用消息前缀作为key,将消息hash到多个文件中去
num_buckets  
  默认值是1,hash到buckets的个数,不能被hash进bucket的消息将被放入一个特别的0号bucket。
  bucket_type  
  “key_hash”, “key_modulo”, or “random”。
  delimiter  
  值必须是1~255之间的ascii,默认是':',第一次出现在消息前缀中的delimiter在‘hash/modulo’中将被用作key。
  remove_key  
  是否移除key的前缀,默认是no。
  bucket_subdir  
  如果使用一个单独定义的bucket,则每一个子目录的名称根据bucket的数量编号生成。
  



?

1
2
3
4
5
6
7
8
9
10
11
12
13
14


<store>
category=bucket_me
type=bucket
num_buckets=5
bucket_subdir=bucket
bucket_type=key_hash
delimiter=58
  <bucket>
    type=file
    fs_type=std
    file_path=/tmp/scribetest
    base_filename=bucket_me
  </bucket>
</store>
  Null Store Configuration
  Null store告诉scribe对给定的category,忽略所有的消息。



?

1
2
3
4


<store>
category=tps_report*
type=null
</store>
  
Multi Store Configuration
  一个multi store会将消息转发到多个子stores中去,子store以“store0”, “store1”, “store2”命名。
  report_success  
  值可以是all或者any,默认是any,是否所有substores或任何substores必须成功地记录消息。



?

1
2
3
4
5
6
7
8
9
10
11
12
13
14


<store>
category=default
type=multi
target_write_size=20480
max_write_interval=1
  <store0>
    type=file
    file_path=/tmp/store0
  </store0>
  <store1>
    type=file
    file_path=/tmp/store1
  </store1>
</store>

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-114811-1-1.html 上篇帖子: [转载] Scribe应用实例 下篇帖子: Scribe在CentOS 5.8和6.4上编译不过的解决办法
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表