chenjiali 发表于 2015-9-17 10:04:00

scribe conf,编译了一天,鬼知道用不用得到,找到的conf解释

  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; “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]
查看完整版本: scribe conf,编译了一天,鬼知道用不用得到,找到的conf解释