首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Elastalert没有通过电子邮件提醒吗?

Elastalert没有通过电子邮件提醒吗?
EN

Stack Overflow用户
提问于 2016-08-09 11:50:32
回答 1查看 1.5K关注 0票数 0

我正在尝试使用Elastalert使用一个简单的规则,但它似乎不能正常工作。我的规则是:

代码语言:javascript
复制
name: termrule
 type: Any
 index: logstash-*
fields:
- "ip"
filter:
- term:
 _type: "log"
- term:
   agentip: 1.2.3.4
  alert:
 email:
- "myemail@company.com "

 ##remote mailserver
smtp_host:
- "remote mailserver_ip"

我的config.yaml

代码语言:javascript
复制
es_host: 1.2.3.4
es_port: 9200
rules_folder: rules
run_every:
minutes: 1
buffer_time:
 minutes: 15
writeback_index: elastalert_status
alert_time_limit:
days: 2
es_conn_timeout: 20

调试日志:

代码语言:javascript
复制
INFO:elastalert:Note: In debug mode, alerts will be logged to console but NOT actually sent. To send them, use --verbose.
Traceback (most recent call last):
File "/usr/lib/python2.7/runpy.py", line 162, in _run_module_as_main
"__main__", fname, loader, pkg_name)
 File "/usr/lib/python2.7/runpy.py", line 72, in _run_code
exec code in run_globals
 File "/home/george/elastalert/elastalert/elastalert.py", line 1408, in       <module>
sys.exit(main(sys.argv[1:]))
File "/home/george/elastalert/elastalert/elastalert.py", line 1403, in main
client = ElastAlerter(args)
File "/home/george/elastalert/elastalert/elastalert.py", line 94, in __init__
self.conf = load_rules(self.args)
File "elastalert/config.py", line 400, in load_rules
raise EAException('Error loading file %s: %s' % (rule_file, e))
elastalert.util.EAException: Error loading file ./rules/term_rule.yaml:  Invalid Rule: termrule
{'index': 'logstash-*', 'name': 'termrule', 'fields': ['agentip'], 'smtp_host': ['X.X.X.X'], 'alert': ['email'], 'filter': [{'term': {'_type': 'log'}}, {'term': {'agentip': '1.2.3.4'}}], 'rule_file': './rules/term_rule.yaml', 'type': 'Any', 'email': ['myemail@company.com']} is not valid under any of the given schemas

但是当我使用命令运行时

代码语言:javascript
复制
 #sudo python -m elastalert.elastalert --config ./config.yaml --rule ./rules/term_rule.yaml --es_debug_trace ./elastalert.log

我刚刚运行了Kibana查询,以验证我的过滤器返回了5个命中,但我的elastalert.log是空的,并且我没有收到任何警报电子邮件,如果规则是' any‘,那么任何查询命中都应该得到警报,但正如你所看到的,它不是。有什么想法吗?

任何帮助都将不胜感激。谢谢

EN

回答 1

Stack Overflow用户

发布于 2018-04-11 23:58:01

YAML区分空格。我不确定复制和粘贴是否出错,但一些字段看起来没有对齐:

代码语言:javascript
复制
  alert:
 email:
- "myemail@company.com 

我会改成

代码语言:javascript
复制
alert:
- "email"
email:
- "myemail@company.com"

你也有

代码语言:javascript
复制
smtp_host:
- "remote mailserver_ip"

在您的输出错误消息中将其转换为数组。我不认为您可以拥有SMTP中继的列表,因此它可能与可以处理它的模式不匹配。尝试将其更改为

代码语言:javascript
复制
smtp_host: "remote mailserver_ip"
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38841727

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档