我试图调整适合我的时区的返回日期时间值。我的通知如下:
An abnormally low number of events occurred around 2016-09-28 22:49 CEST.
这是适合我的时区的正确日期。 在通知I的字段中,我获得了UTC-0区域的时间:
@timestamp: 2016-09-28T20:49:44.711696Z
我试过这种方式使用Enhancement,
文件..\elastalert\elastalert_modules
from datetime import datetime
from elastalert.enhancements import BaseEnhancement
class TimeEnhancement(BaseEnhancement):
def process(self, match):
if '@timestamp' in match:
now = datetime.now()
hours2 = datetime(0, 0, 0, 2, 0, 0)
match['@timestamp'] = now + hours2
我还在规则中添加用法:
match_enhancements:
- "elastalert_modules.my_enhancements.TimeEnhancement"
它仅用于测试,而不是用于最终解决方案
答案 0 :(得分:0)
在github上有一些帮助我设法得到了一些有效的东西(我认为它将日期时间格式化为服务器运行的同一时区)
from elastalert.util import pretty_ts
from elastalert.enhancements import BaseEnhancement
class TimeEnhancement(BaseEnhancement):
def process(self, match):
for k, v in match.items():
if isinstance(v, basestring) and v.endswith('Z'):
try:
match[k] = pretty_ts(v)
except:
pass
答案 1 :(得分:0)
@Peter的替代方法,因为我只需要一个具有本地时间的字段。
Suggestion