Heka 最簡單例子


技術人員學習都是從簡單例子開始的, Heka的應用也是從簡單開始的。

 

需求:

監控一個日志文件的內容, 在標准輸出顯示出來。

 

操作步驟:

使用下載好或者編譯好的 heka

已經編譯好的 release 版本可以在下面地址下載: https://github.com/mozilla-services/heka/releases

注意:

需要把編譯后產生的 lib 文件(dll文件) 放在 system32 目錄下,否則會報下面錯誤:

image

 

 

image

准備一個待監控的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

執行效果如下圖:

當我們監控的文件發生變化時, 這里也是會實時讀取出來的, 下面不同的時間也就標示了這點。

image

 

分析:

 

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 (string, 默認‘/usr/share/heka’ 或者 ‘c:\usr\share\heka’):
share_dir是hekad的靜態資源,比如控制儀表盤(dashboard )的Html/js 源文件,以及各種Lua插件文件。運行hekad的用戶需要對這個目錄有讀權限。

maxprocs (int, 默認 1):
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

http://blog.mozilla.org/services/category/heka/


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM