首页 > 代码库 > heka 那些坑

heka 那些坑

heka 消息处理

1. /usr/local/share/heka/lua_modules/elasticsearch.lua

   貌似使用的是美国时区,比中国时间晚8个小时,不知道heka在哪里修改时间,直接在63行代码,添加时间对齐

   secs = secs + 8 * 60 * 60

 

2. heka的kafkainput功能存在问题,只能读取一个分区,官方应该在修改使用libkafka来读取kafka消息,临时解决方案

   [LogstreamerInput]

  log_directory = "/var/log/nginx-waf/"

  file_match = ‘(?P<Index>\d+-\d+-\d+)?-test\.log‘

  decoder = "NginxNaxsiDecoder"

  priority = ["^Index"]

 

3. process_message处理异常的情况 使用lua的异常处理

function myfunction(n)

    print(n)

--    n = n / nil

    print("yes")

end

function myerrorhandler(err)

    print("ERROR: sssa ", err)

end

status = pcall(myfunction, ‘1‘)

print(status)

 

4. heka HTTPOutput 使用

[EmailAlert]

type = "HttpOutput"

#message_matcher = "TRUE"

message_matcher = "Fields[alert] == ‘send_email‘"

address = "http://messager.com/api/sendMessager"

encoder = "email_alert_encoder"

    [EmailAlert.headers]

    authorization = ["WQUk6QyuM32ob"]

    Content-Type = ["application/x-www-form-urlencoded"]  #设置type 否则接收不到 大坑

 

5. heka 插件中,使用inject_payload 插入payload字段,但是发现这个不准确,后来改成

   msg = {Payload: nil}

  msg.Payload = "test"

  inject_message(msg)

 

6. 将heka 的输出 导入到hdfs 应该可以作为数据仓库备份

https://gowalker.org/github.com/extrame/heka-hdfs 

https://github.com/extrame/heka-hdfs

 

7. 使用heka 解析audit 服务日志的 插件

https://github.com/mozilla/audit-go

heka 那些坑