Heka 最简单例子
技术人员学习都是从简单例子开始的, Heka的应用也是从简单开始的。
需求:
监控一个日志文件的内容, 在标准输出显示出来。
操作步骤:
使用下载好或者编译好的 heka
已经编译好的 release 版本可以在下面地址下载: https://github.com/mozilla-services/heka/releases
注意:
需要把编译后产生的 lib 文件(dll文件) 放在 system32 目录下,否则会报下面错误:
准备一个待监控的log文件, 我这里是放在 D:\tmp\log 目录下的 auth.log 文件, 内容随便输入。
编写一个名叫 sanity_check.toml 的 toml 配置文件 ,内容如下, 具体配置含义,后面分析:
[LogstreamerInput]
log_directory = "D:\\tmp\\log"
file_match = 'auth\.log'
[PayloadEncoder]
append_newlines = false
[LogOutput]
message_matcher = "TRUE"
encoder = "PayloadEncoder"
这里我把这个文件保存在 D:\tmp\heka 目录下。
在 hekad.exe 目录下执行 命令:
D:\mycodes\golang\src\github.com\mozilla-services\heka\build\heka\bin>hekad.exe -config=D:\tmp\heka\sanity_check.toml
执行效果如下图:
当我们监控的文件发生变化时, 这里也是会实时读取出来的, 下面不同的时间也就标示了这点。
分析:
Heka 最重要组件为 hekad,一个适用于任何主机的轻量级守护程序, 我们这里就是对他进行配置。
Heka 使用的的 TOML格式的配置文件,一般依赖一个或者多个TOML格式的配置文件。 TOML是类似 INI 配置的语法,http://www.tuicool.com/articles/7JZRbq3
除了启动应用是,配置的配置文件的位置外,运行hekad有两个重要的目录, 这里这几个参数我们都没有配置,我们用的都是默认值:
base_dir (string, 默认‘/var/cache/hekad’ 或者 ‘c:\var\cache\hekad’):
base_dir是hekad运行的工作目录(存储hekad工作信息,如查询日志文件的seek位置等信息),运行hekad的用户需要对这个目录有写权限。
share_dir是hekad的静态资源,比如控制仪表盘(dashboard )的Html/js 源文件,以及各种Lua插件文件。运行hekad的用户需要对这个目录有读权限。
golang的GOMAXPROCS环境变量,用于控制几个CPU内核参与到运算。
最佳实践:Heka aggregator 机器(最好是CPU核数,或者核数减一,处理数据的Heka机则是1到2。)
[LogstreamerInput] 配置节
log_directory = "D:\\tmp\\log" 需要监控的目录
file_match = 'auth\.log' 需要监控的文件,
[LogOutput] 配置节
LogOutput 是标示只需要将数据写出到Heka进程的标准输出。
message_matcher = "TRUE" 标示我们这个输出应该捕获途径Heka管道的每一个消息。
encoder = "PayloadEncoder" 标示我们捕获的每个消息,都作为原始数据进行输出发送。
[PayloadEncoder] 配置节
append_newlines = false 标示,我们输出时,是否在每行后面补加换行符。
参考资料:
Heka logstreamer 说明文档
http://hekad.readthedocs.org/en/latest/pluginconfig/logstreamer.html#logstreamerplugin
Heka inputs 说明文档
http://hekad.readthedocs.org/en/latest/config/inputs/index.html
Heka getting started
https://hekad.readthedocs.org/en/latest/getting_started.html
Heka:Go编写,来自Mozilla,高效、灵活的插件式数据挖掘工具
http://www.csdn.net/article/2013-05-02/2815116-introduce-from-mozilla-heka-go
http://blog.mozilla.org/services/2013/04/30/introducing-heka/
PPT介绍
https://cdn.rawgit.com/gophercon/2014-talks/master/rob_miller_heka/index.html#/
Heka, 一个高可扩展的实时数据收集和处理工具
http://skoo.me/system/2014/04/02/hekad/
Heka插件开发
http://skoo.me/system/2014/04/30/heka-plugin-devel/
http://youngsterxyf.github.io/sphinx/work_note/operations/heka.html#id1
最新文章
- android onCreate中获取view宽高为0的解决方法
- ubuntu 下安装mysql,以及配置远程登录
- 51nod 循环数组最大子段和
- Http的请求对象
- struts2 学习记录 过滤器 国际化
- 使用Notepad++编码编译时报错(已解决?)
- .Net大文件上传(转--待验证)
- TList,TObjectList 使用——资源释放
- div+css(ul li)实现图片上文字下列表布局
- edx 配置smtp发送邮件
- Swift - 16 - String.Index和Range
- <;转载>;linux gcc编译器中使用gdb单步调试程序,程序不是顺序执行的。
- Linux入门基础 #8:Linux拓展权限
- 关于QuartusII对ram块的综合
- linux命令英文缩写的含义(方便记忆)
- SQLyog 连接主机的时候出现错误
- C++ 中利用 Opencv 得到不规则的ROI 区域(已知不规则区域)
- 使用 $(function(){}) 时遇到的一个小bug及解决方法
- poj3335
- Mac 下 Gradle 环境配置