`
奔跑的羚羊
  • 浏览: 576922 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Scribe配置

 
阅读更多
https://github.com/facebook/scribe/wiki/Scribe-Configuration

安装目录facebook-scribe-2ee14d3/examples下
examples/
├── example1.conf  #模拟服务端
├── example2central.conf  #在同一台机器模拟服务端的配置
├── example2client.conf  #在同一台机器模拟客户端的配置
├── hdfs_example2.conf
├── hdfs_example.conf
├── README
├── scribe_cat  #python客户端
└── scribe_ctrl  #管理scribe实例的工具


Scribe can be configured with
1.scribe运行时的配置文件可以在命令行用-c指定
2.默认的配置位置在env_default.h中的DEFAULT_CONF_FILE_LOCATION设置(/usr/local/scribe/scribe.conf)

Global Configuration Variables
port 
    1.设置scribe server监听在哪个端口上
    2.默认是0,可以在命令行通过-p指定。

max_msg_per_second
1.used in scribeHandler::throttleDeny
2.default 0
3.the default value is 0 and this parameter is ignored if the value is 0. With recent changes this parameter has become less relevant, and max_queue_size should be the parameter used for throttling business

max_queue_size in bytes
    1.设置消息队列的大小,用在scribeHandler::Log中 
    2.默认值是5,000,000 bytes。

check_interval in seconds
    1.设置多长时间检测一次存储,
    2.默认值是5秒。

new_thread_per_category yes/no
    1.值如果是yes,则会为每一个category创建一个线程,如果是no,则所有定义的store只创建一个线程,
    2.对于prefix stores或者default store,如果值是no,则会导致所有匹配这个category的消息都由一个单独的存储来处理,否则,将为每一个唯一的category创建存储。
    3.默认yes

num_thrift_server_threads 
    1.监听进入消息的线程数
    2.默认是3。

Example:
port=1463
max_msg_per_second=2000000
max_queue_size=10000000
check_interval=3


Store Configuration
scribe server根据配置文件中store的定义来记录消息,每一个store必须指定消息category用来处理三种异常情况:
default store
    默认category处理任何不能被其他store处理的category,只能有一个默认store
   
  • category=default

prefix stores 
    如果一个指定的category以*结尾,这个存储将处理所有以指定前缀开头的category 。
   
  • category=web*

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/no
1.如果一个store处理消息失败,是否重新进入消息队列排队。
2.如果设置为no,一个store不能处理这些消息的话,消息将被丢弃。
3.建议:使用缓存来指一个定二级存储来处理失败的日志。
4.默认是yes

Example:
<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_directoryyes/no, default no 
    是否使用server的hostname建立子目录

sub_directory string 
    使用指定的名称创建子目录。

rotate_period “hourly”, “daily”, “never”, or number[suffix]; “never” by default
    1.设置多久创建一个文件,
    2.suffix可以是“s”, “m”, “h”, “d”, “w”,‘s’是默认值。

rotate_hour0-23, 1 by default 
    如果rotate_period是daily,设置每天何时创建新文件

rotate_minute 0-59, 15 by default
    如果rotate_period是daily或者hourly,设置一个小时多久后可以创建新文件,值可以是0-59,默认是15。

max_size1,000,000,000 bytes by default
    在轮转一个文件前,该文件可以增长到多大

write_meta“yes” or anything else; false by default
    如果文件被轮转,最后一行将包含"scribe_meta",跟着就是下一个文件名。

fs_type
    支持两种类型std和hdfs,默认是std。

chunk_size 
    默认是0,如果一个chunk大小被指定,在文件内没有消息能够跨越chunk的边界,除非有消息的大小超过chunk的大小。

add_newlines 0 or 1, 0 by default
    默认是0,如果是1,则在每行后面加入换行符。

create_symlink   “yes” or anything else; “yes” by default
    默认值是yes,如果是真,则维护一个符号连接到最近被写入的文件。

write_stats   yes/no, yes by default
    是否对每一个store创建一个scribe_stats文件用来跟踪文件的写入轨迹,默认yes。

max_write_size
1000000 bytes by default. The file store will try to flush the data out to the file system in chunks of max_write_size of bytes. max_write_size cannot be more than max_size. Say due to target_write_size a certain number of messages were buffered. And then the file store was called to save these messages. The file-store will save these messages at least max_write_size bytes sized chunks at a time. The last write that the file store will make can be smaller than max_write_size.


Example:
<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。

Example:
<store>
category=default
type=network
remote_host=hal
remote_port=1465
</store>


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 by default
    在check_interval周期内,执行多少次secondary store读出一组消息并且发送到primary store中。

retry_interval 300 seconds by default
    primary store写入失败后,等待多久尝试重新发送primary store。

retry_interval_range 60 seconds by default
    将在retry_interval的区间内随机的选择一个重新发送时间。

replay_buffer yes/no, default yes
    如果设置为no,将不会从secondary store迁移消息到primary store。

Example:
<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_bucketsdefaults to 1 
    1.hash到buckets的个数
    2.不能被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的数量编号生成。

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

Instead of using a single ‘bucket’ definition for all buckets, you can specify each bucket explicitly:
<store>
category=bucket_me
type=bucket
num_buckets=2
bucket_type=key_hash
  <bucket0>
    type=file
    fs_type=std
    file_path=/tmp/scribetest/bucket0
    base_filename=bucket0
  </bucket0>
  <bucket1>
    ...
  </bucket1>
  <bucket2>
    ...
  </bucket2>
</store>

You can also bucket into network stores as well:
<store>
category=bucket_me
type=bucket
num_buckets=2
bucket_type=random
  <bucket0>
    type=file
    fs_type=std
    file_path=/tmp/scribetest/bucket0
    base_filename=bucket0
  </bucket0>
  <bucket1>
    type=network
    remote_host=wopr
    remote_port=1463
  </bucket1>
  <bucket2>
    type=network
    remote_host=hal
    remote_port=1463
  </bucket2>
</store>


Null Store Configuration
Null store告诉scribe对给定的category,忽略所有的消息。
Example:
<store>
category=tps_report*
type=null
</store>


Multi Store Configuration
一个multi store会将消息转发到多个子stores中去
子store以“store0”, “store1”, “store2”命名。

report_success “all” or “any”, defaults to “all”
     是否所有substores或任何substores必须成功地记录消息。

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


Thriftfile Store Configuration
Thriftfile Store 类似与 File store,只是它将消息存储在Thrift的 TFileTransport file.

file_path: defaults to “/tmp”
分享到:
评论

相关推荐

    scribe安装配置文档[汇编].pdf

    Scribe 安装配置文档 Scribe 是 Facebook 开源的日志收集系统,已经在 Facebook 内部得到大量的应用。它能从各种日志源收集日志,存储到一个中央存储系统上,便于进行集中统计分析处理。它为日志的”分布式收集,...

    Scribe日志记录讲解

    在安装配置方面,以 FreeBSD 为例,Scribe 可以通过 pkg_add 命令直接安装二进制包,同时需要安装 thrift 和 fb303 包。在 Ubuntu 系统下,使用 apt-get 命令获取依赖包,而在 CentOS 中,可能需要手动下载依赖并...

    scribe详细安装文档

    **scribe详细安装文档** scribe是一个广泛使用的日志聚合系统,主要设计用于收集、分类和转发分布式系统的日志数据。在大型分布式环境中,如Hadoop或Facebook等,scribe扮演着至关重要的角色,它允许各个节点将日志...

    scribe软件

    - **文档**: 可能包含README文件或wiki页面,介绍如何安装、配置和使用scribe。 在实际应用中,scribe常与其它日志处理工具结合使用,例如Logstash或Fluentd,以实现更复杂的数据处理和分析。同时,它也可以配合...

    scribe客户端所需jar包

    scribe客户端是用于集成日志记录系统的一个开源库,主要针对分布式环境中的日志管理。它支持多种日志接收协议,...确保你正确地安装了所有必要的jar包,并根据示例代码和配置文件进行适当的调整,以适应你的特定需求。

    facebook scribe

    3. **存储与转发**:Scribe Server可以将接收到的日志数据存储在本地,或者根据配置将数据转发到其他Scribe Server,形成多级集群结构。 4. **持久化**:为了防止数据丢失,Scribe支持将日志数据定期写入磁盘,并且...

    VideoScribe.7z

    在压缩包内的文件名称列表中,“使用说明.txt”是为用户提供操作指导的文档,帮助用户了解如何安装、配置和使用VideoScribe;而“VideoScribe2.3.4中文汉化可输入汉字”则意味着这是一个经过汉化的版本,不仅语言...

    Oauth实例(使用Scribe-java)

    - 配置API:首先,你需要配置Scribe-java库,设置服务提供商(如新浪微博)的API键、API密钥、回调URL等信息。 - 创建OAuthService:使用OAuthServiceFactory创建OAuthService对象,传入之前配置的信息。 - 获取...

    scribe+hadoop+log4j+hive+mysql

    - **安装与配置**:文中详细介绍了 Hadoop、Hive 和 MySQL 的安装过程。例如,为了确保 Java 环境正确配置,需要设置 JAVA_HOME 和 PATH 环境变量。对于 MySQL,还需要安装相应的 JDBC 驱动程序以便其他应用程序能够...

    Facebook大量数据处理 Scribe.zip

    1. **Flume**:与Scribe类似,Apache Flume也是用于日志聚合的工具,但它更注重于容错和可配置性,适用于更复杂的日志收集场景。 2. **Kafka**:Kafka是一个消息队列系统,专注于实时数据流处理,通常用于在系统...

    facebook-scribe-63e4824.tar

    - **安装**: 执行`sudo make install`将Scribe安装到系统路径。 - **配置**: 配置`scribe.conf`文件,指定监听端口、日志存储方式以及存储模块的配置。 - **启动Scribe**: 使用`scribe`命令启动服务。 **4. 使用...

    File-Tail-Scribe

    File-Tail-Scribe 提供了解压安装的便捷方式,使得用户能够轻松地集成到自己的工作流程中。 **主要功能:** 1. **实时监控**:File-Tail-Scribe 可以实时跟踪日志文件的变化,一旦有新的日志条目写入,它会立即...

    scribe-ink-jdk-1.5.1.zip

    【标题】"scribe-ink-jdk-1.5.1.zip" 提供的是一个名为 "scribe-ink-jdk-1.5.1" 的软件包,可能是某个特定版本的 JDK (Java Development Kit) 实现,可能由开源社区 "scribe-ink" 开发。JDK 是开发和运行 Java 应用...

    scribe日志系统文档

    1. **日志记录**:通过修改Log4j配置文件的方式,配置将日志信息发送到Scribe服务端的输出方式。 2. **日志读取**:服务端接收到日志后,会进行初步解析并存储起来。 3. **统计日志分析**:定期对存储的日志进行分析...

    Thrift+Scribe分布式日志系统的构建

    1. **配置 log4j**:在 log4j 配置文件中设置一个特殊的目的地,例如一个 SocketAppender,指向 Scribe 客户端的监听地址和端口。 2. **实现 log4j 输出到 Thrift**:编写一个 log4j Appender,它使用 Thrift 库与 ...

    Apache_Flume安装与配置

    Apache Flume是一个分布式、可靠且可用的系统,用于...总体来说,安装和配置Flume涉及多个步骤,需要对系统的网络环境、Java环境和配置文件有详细的了解。正确配置可以保证Flume集群高效地进行数据的采集、传输和聚合。

    乐谱创作、Groove 实验和鼓手练习工具_JavaScript_代码_下载

    Groove Scribe 是一个针对鼓手的 HTML 应用程序。Groove Scribe 是一个点击式创作系统,用于创建鼓乐谱,也是一种用于...配置:无 依赖项 谷歌的 Leto 字体 谷歌的 url 缩短 api 部署说明 将文件部署到 HTTP 服务器。

    开源日志系统比较:scribe、chukwa、kafka、flume.pdf

    scribe agent负责接收并发送数据,scribe server则根据配置将不同主题的数据转发至相应的存储系统,支持多种存储类型如HDFS、文件系统等。 2. Apache的Chukwa Chukwa是Apache基金会的一个项目,与Hadoop生态系统...

    ddth-log2scribe:Log4j & Slf4j 适配器将日志写入 scribe 服务器

    安装 最新发布版本: 0.1.0 。 请参阅 。 Maven 依赖: &lt; groupId&gt;com.github.ddth&lt;/ groupId&gt; &lt; artifactId&gt;ddth-log2scribe &lt; version&gt;0.1.0 用法 Log4j 配置 log4j.appender.X=...

    Hadoop 0.20.1 配置手册-高清pdf文字版

    1. **Hadoop环境搭建**:包括安装Java环境、配置Hadoop环境变量、设置Hadoop的安装目录和数据存储路径等。理解这些步骤是部署Hadoop集群的基础。 2. **Hadoop配置文件详解**:如`core-site.xml`、`hdfs-site.xml`、...

Global site tag (gtag.js) - Google Analytics