我在Docker镜像上设置弹性警报,并尝试通过gmail smtp服务器发送电子邮件,但一直收到错误
我的config.yaml文件是:
...
smtp_auth_file: /usr/local/bin/elastalert/rules/email_auth.yaml
我的电子邮件验证文件是:
smtp_host: smtp.gmail.com
from_addr: some_random_addr@gmail.com
user: "username"
password: "password"
但我得到的错误是:
util.EAException: Error loading file /usr/local/bin/elastalert/rules/email_auth.yaml: Invalid Rule: None
{'from_addr': 'some_rand_addr@gmail.com', 'smtp_ssl': True, 'smtp_host': 'smtp.gmail.com', 'user': 'username', 'rule_file': '/usr/local/bin/elastalert/rules/email_auth.yaml', 'password': 'password'} is valid under each of {'properties': {'type': {'pattern': '[.]'}}, 'title': 'Custom Rule from Module'}, {'properties': {'type': {'enum': ['any']}}, 'title': 'Any'}
Failed validating 'oneOf' in schema:
{'$schema': 'http://json-schema.org/draft-04/schema#',
'definitions': {'arrayOfStrings': {'items': {'type': 'string'},
'type': ['string', 'array']},
'arrayOfStringsOrOtherArrays': {'items': {'type': ['string',
'array']},
'type': ['string',
'array']},
'filter': {},
'timeFrame': {'additionalProperties': False,
'properties': {'days': {'type': 'number'},
'hours': {'type': 'number'},
'milliseconds': {'type': 'number'},
'minutes': {'type': 'number'},
'schedule': {'type': 'string'},
'seconds': {'type': 'number'},
'weeks': {'type': 'number'}},
'type': 'object'}},
'oneOf': [{'properties': {'type': {'enum': ['any']}},
'title': 'Any'},
{'properties': {'blacklist': {'items': {'type': 'string'},
'type': 'array'},
'compare_key': {'type': 'string'},
'type': {'enum': ['blacklist']}},
'required': ['blacklist', 'compare_key'],
'title': 'Blacklist'},
{'properties': {'compare_key': {'type': 'string'},
'ignore_null': {'type': 'boolean'},
'type': {'enum': ['whitelist']},
'whitelist': {'items': {'type': 'string'},
'type': 'array'}},
'required': ['whitelist', 'compare_key', 'ignore_null'],
'title': 'Whitelist'},
{'properties': {'compare_key': {'type': 'string'},
'ignore_null': {'type': 'boolean'},
'timeframe': {'additionalProperties': False,
'properties': {'days': {'type': 'number'},
'hours': {'type': 'number'},
'milliseconds': {'type': 'number'},
'minutes': {'type': 'number'},
'schedule': {'type': 'string'},
'seconds': {'type': 'number'},
'weeks': {'type': 'number'}},
'type': 'object'},
'type': {'enum': ['change']}},
'required': ['query_key', 'compare_key', 'ignore_null'],
'title': 'Change'},
我检查了elastalert / config.py和schma.yaml,发现在schma.yaml中甚至没有定义smtp_auth_file,user和password属性。这是什么原因导致验证错误?谁知道我的设置出了什么问题?感谢
答案 0 :(得分:0)
我发现了问题。我把我的email_authentication.yaml放在我的rule_folder的同一个文件夹中。一旦我把它移出,这个错误就解决了。