3.14 hekad配置

hekad配置文件指定将加载哪些输入、分割器、解码器、过滤器、编码器和输出。配置文件为TOML格式。TOML看起来非常类似于INI配置格式,但具有稍微更丰富的数据结构和嵌套支持。
如果hekad的配置文件被指定为目录,则所有包含以“.toml”结尾的文件将被加载并合并到一个配置中。不以“.toml”结尾的文件将被忽略。合并将按字母顺序排列,稍后在合并序列中指定的设置将赢得冲突。
配置文件被分成几个部分,每个部分代表一个插件的单个实例。部分名称指定插件的名称,“type”参数指定插件类型;这必须匹配通过pipeline.RegisterPlugin函数注册的类型之一。例如,以下部分描述名为“tcp:5565”的插件,Heka的插件类型“TcpInput”的实例:

[tcp:5565]
type="TcpInput"
splitter="HekaFramingSplitter"
decoder="ProtobufDecoder"
address=":5565"

如果选择一个插件名称,也恰好是一个插件类型名称,则可以从部分中省略“type”参数,并将指定的名称用作类型。因此,以下部分描述名为“TcpInput”的插件,也是类型“TcpInput”:

[TcpInput]
address=":5566"
splitter="HekaFramingSplitter"
decoder="ProtobufDecoder"

请注意,拥有多个相同插件类型的实例是可以的,只要它们的配置不会相互干扰。
除了“type”之外的任何值,如上例中的“address”,将被传递到插件进行内部配置(参见插件配置)。
如果插件在启动期间无法加载,hekad将在启动时退出。当hekad运行时,如果插件失败(由于连接丢失,无法写入文件等),那么如果插件支持重新启动,hekad将关闭或重新启动插件。当插件重新启动时,hekad可能会停止接受消息,直到插件恢复操作(这只适用于过滤器/输出插件)。
插件通过实现重新启动界面指定它们支持重新启动(请参阅重启插件)。支持重新启动的插件可以配置重新启动行为。
内部诊断转发器每30秒运行一次,以扫描用于消息的包,以便可以报告并锁定heka插件中可能的错误,以找到无法正确回收包的插件。

3.15全局配置选项

你可以选择在配置文件中声明一个[head]部分,为heka守护进程配置一些全局选项。
配置:

  • cpuprof(string output_file):
    打开hekad CPU分析,输出记录到output_file。
  • max_message_loops(uint):
    消息可以重新注入系统的最大次数。这用于防止从过滤器到过滤器的无限消息循环;默认值为4。
  • max_process_inject(uint):
    沙箱过滤ProcessMessage函数消息的最大数量可以在单个调用中注入;默认值为1。
  • max_process_duration(uint64):
    沙箱过滤器ProcessMessage函数可以在终止前在单个调用中使用的最大纳秒数;默认值为100000。
  • max_timer_inject(uint):
    沙箱过滤器TimerEvent函数可以在单个调用中注入的消息的最大数量;默认值为10。
  • max_pack_idle(string):
    持续时间字符串(e.x.“2s”,“2m”,“2h”),指示消息包在被heka泄露之前可以“idle”多长时间。如果太多的包从过滤器或输出的错误中泄漏,则heka将最终停止。此设置指发生时间。
  • maxprocs(int):
    启用多核使用;默认为1核。更多的核心通常会增加消息吞吐量。最佳性能通常通过将其设置为2x(内核数)来实现。假设每个内核都是超线程的。
  • memprof(string output_file):
    启用内存分析;输出记录到output_file。
  • poolsize(int):
    指定可能存在的最大消息池大小。默认是100。
  • plugin_chansize(int):
    为各种Heka插件指定输入通道的缓冲区大小。默认值为30。
  • base_dir(string):
    基本工作目录Heka将通过进程和服务器重新启动用于持久存储。hekad进程必须具有对此目录的读取和写入权限。默认为/var/cache/hekad(Windows上为orc:\var\cache\hekad)。
  • share_dir(string):
    Heka的“共享目录”的根路径,Heka会期望找到它需要消耗的某些资源。hekad进程应该具有对此目录的只读权限。默认为/usr/share/heka(在Windows上为orc:\usr\share\heka)。
    0.6版本新特性
  • sample_denominator(int):
    指定当计算执行某些操作所需的时间(例如ProtobufDecoder对消息进行解码)或路由器将消息与消息匹配器进行比较时,Heka使用采样率的分母。默认为1000,即1000条消息中的一条消息计算持续时间。
    0.6版本新特性.
  • pid_file(string):
    可选指定pidfile的位置,其中将写入正在运行的hekad进程的进程标识。hekad进程必须对父目录具有读写权限(不会自动创建)。成功退出后,pidfile将被删除。如果路径已经存在,将检查包含的pid是否正在运行进程。如果找到一个,当前进程将退出并出现错误。
    0.9版67新特性.
  • hostname(string):
    指定每当它被要求提供本地主机的主机名时使用的主机名。默认为Go的os.Hostname()调用提供的任何内容。
  • max_message_size(uint32):
    消息的最大值(以字节为单位)可以在处理期间发送。默认为64KiB。
    0.10版本新特性.
  • log_flags(int):
    控制STDOUT和STDERR日志的前缀。公共值为3(日期和时间,默认值)或0(无前缀)。有关详细信息,请参阅‘https://golang.org/pkg/log/#pkg-constantsGo文档’。
  • full_buffer_max_retries(int):
    当Heka由于缓冲器填充到容量而关闭时,下一次Heka启动时,它将暂时延迟启动,以给缓冲器一个排出机会,以减轻压力。此设置指定最大间隔数(持续时间上限为1秒),在决定问题未解决并继续启动(或关闭)之前,Heka应等待缓冲区大小低于容量的90%。

taxonomy: