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