Heka

3.16使用环境变量

如果你希望在配置文件中使用环境变量作为配置值的方法,可以简单地使用%ENV[VARIABLE_NAME],并且将文本替换为环境变量VARIABLE_NAME的值。
示例:

3.15 hekad.toml示例文件

[hekad]
maxprocs=4

#Hekadashboardforinternalmetricsandtimeseriesgraphs
[Dashboard]
type="DashboardOutput"
address=":4352"
ticker_interval=15

#Emailalertingforanomalydetection
[Alert]
type="SmtpOutput"
message_matcher="Type=='heka.sandbox-output'&&Fields[payload_type]=='alert'"
send_from="acme-alert@example.com"
send_to=["admin@example.com"]
auth="Plain"
user="smtp-user"
password="smtp-pass"
host="mail.example.com:25"
encoder="AlertEncoder"

#Userfriendlyformattingofalertmessages
[AlertEncoder]
type="SandboxEncoder"
filename="lua_encoders/alert.lua"

#Nginxaccesslogreader

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

3.13一起试试

这里看起来像是我们的完整配置,如果我们把它们放在一个单一的文件:

3.12通知

但是,当我们说检测到异常会产生警报时,我们的意思是什么?与Heka中的其他几乎一样,我们真正说的是,消息将被注入消息路由器,然后其他过滤器和输出插件能够监听并用作操作的触发器。
我们在这里不会详细讨论,但是与异常检测模块一起,Heka的Lua环境提供了一个报警模块,用于生成报警消息(通过调节,以确保快速连续的数百个报警实际上不会生成数百个单独的通知)以及注释模块,其使得所述仪表盘基于我们的循环缓冲器数据来对所述图形应用注释。http状态和统计图过滤器都使用这两个过滤器,因此如果你为这些过滤器指定异常配置,那么将输出图形注释,并在检测到异常时生成报警消息。
报警消息不是很有用,如果他们只是流经Heka的消息路由器,但没有什么正在监听他们。因此,让我们设置一个SmtpOutput,当它们通过时发送电子邮件,它将监听报警消息:

页面

Subscribe to RSS - Heka