heka配置

heka配置详解

[LogstreamerInput]
log_directory = "/var/log"
file_match = 'auth\.log'

[PayloadEncoder]
append_newlines = false

[LogOutput]
message_matcher = "TRUE"
encoder = "PayloadEncoder"

简单配置

LogstreamerInput指的是要监测的源
LogOutput指的是输出

encoder是解析器
这里可以在输出指定译码器

全局变量设置

全局变量放在[hekad]下
典型配置

[hekad]
maxprocs=2
share_dir="mysharepath"

maxprocs指的是hekad 进程中cpu可以使用的核心数,实际设定该参数需要结合机器的情况
默认值为1
base_dir是heka工作的路径,会持久化一些数据在该目录下
在unix系统下的默认值是/var/cache/hekad
在win下是C:\var\cache\hekad
share_dir则是依赖的库路径
在unix系统下的默认值是/usr/share/heka
在win下是C:\usr\share\heka

获取Statsd Data

我们设置从statsd clients中获取数据的参数涉及到两个插件,一个是Statsd_input接收来自网络的数据并解析,另一个Stat_Accumulator_input则以第一个插件为输入做必要的聚合和统计
典型配置

[statsd_input]
type = "StatsInput"
stat_accum_name="stat_accmulator"

[statsd_input_8125]
type = "StatsdInput"
stat_accum_name = "stat_accumulator"

[statsd_input_8126]
type = "StatsdInput"
stat_accum_name = "stat_accumulator"
address = "127.0.0.1:8126"

[stat_accumulator]
type = "StatAccumInput"
ticker_interval = 1
emit_in_fields = true

[StatsInput]
stat_accum_name="StatAccumInput"


[StatAccumInput]
ticker_interval=5
emit_in_fields=true

ticker_interval指的是每秒产生一次消息,默认值为5
emit_in_fields则是是否动态的嵌入统计数据到产生的statmetric消息中
stat_accum_name指定统计聚合插件
其中statsd_input默认端口为8125
其中提供了细粒度的控制

解码器

我们可以自己实现插件进行解析,将接收的消息转化为下游可以解析的消息

导入ElasticSearch

本来打算用elk的,由于logstash是cpu怪兽,所以打算换成heka,所以这一块也是我最看重的地方
先上典型配制

[ESJsonEncoder]
es_index_from_timestamp = true
type_name = "%{Type}"

[ElasticSearchOutput]
server = "elasticsearch.example.com:9200"
message_matcher = "Type == 'nginx.access'"
encoder = "ESJsonEncoder"
flush_interval = 50

flush_interval则是刷新到ElasticSearch的时间,50ms一次
解码器则是ESJsonEncoder
server则是指定输入

你可能感兴趣的:(heka)