ElastAlert 错误 - '找不到 [@timestamp] 的映射以便排序
ElastAlert Error - 'No mapping found for [@timestamp] in order to sort on
我正在使用命令 'elastalert-test-rule' 测试 elastalert。
而且,我收到了错误消息。
elastalert_error - {'message': "Error running query: RequestError(400, 'search_phase_execution_exception', 'No mapping found for [@timestamp]
in order to sort on')",
(omission)
raise HTTP_EXCEPTIONS.get(status_code, TransportError)(', "elasticsearch.exceptions.RequestError: RequestError(400, 'search_phase_execution_exception', 'No mapping found for [@timestamp] in order to sort on')"],
'data': {'rule': 'test',
'query': {'query': {'bool': {'filter': {'bool': {'must': [{'range': {'@timestamp': {'gt': '2022-03-10T09:03:31.454969Z', 'lte': '2022-03-10T09:08:34.454969Z'}}}, \
{'query_string': {'query': '_type: pi_endpointincidentlogdata'}}, \
{'query_string': {'query': 'elog_logtype: 1'}}, {'query_string':
{'query': 'elog_loggroup: 32 OR elog_loggroup: 64'}}, {'query_string': {'query': '_exists_ : elog_patterinfo.elog_patternname'}}, \
{'range': {'elog_createtime': {'gte': '2022-01-03 10:33:00', 'lte': '2022-01-03 10:37:00'}}}]}}}},
'sort': [{'@timestamp': {'order': 'asc'}}]}}}
我无法理解这个错误,因为我没有在过滤器中声明@timestamp 范围和排序。
这是我的规则文件
> name: test
> type: frequency
> index: pi_202202*
> num_events: 1
> timeframe:
> minutes: 5
>
> filter:
> - query:
> query_string:
> query: "_type: pi_endpointincidentlogdata"
> - query:
> query_string:
> query: "elog_logtype: 1"
> - query:
> query_string:
> query: "elog_loggroup: 32 OR elog_loggroup: 64"
> - query:
> query_string:
> query: "_exists_ : elog_patterinfo.elog_patternname"
> - range:
> elog_createtime:
> gte: "2022-01-03 10:33:00"
> lte: "2022-01-03 10:37:00"
>
> alert:
> - "email"
我该如何解决这个问题?
这是因为 ElastAlert 默认使用 @timestamp
field 对数据进行排序。
您可以在 timestamp_field
配置中更改它并使用数据中存在的另一个字段。
我最近遇到了这个问题。
elasticalert 正在尝试加载以下映射 =>
find / -name es_mappings
- elastalert_error.json
- elastalert.json
- elastalert_status.json
- 过去_elastalert.json
- silence.json
问题出在 index_template。当 Elastalert 试图创建自己的映射时,它与 index_template 冲突并且无法添加自己的映射。删除相关的 index_template 和 re-running elasticalert-create-index
命令修复了问题。
我正在使用命令 'elastalert-test-rule' 测试 elastalert。
而且,我收到了错误消息。
elastalert_error - {'message': "Error running query: RequestError(400, 'search_phase_execution_exception', 'No mapping found for [@timestamp]
in order to sort on')",
(omission)
raise HTTP_EXCEPTIONS.get(status_code, TransportError)(', "elasticsearch.exceptions.RequestError: RequestError(400, 'search_phase_execution_exception', 'No mapping found for [@timestamp] in order to sort on')"],
'data': {'rule': 'test',
'query': {'query': {'bool': {'filter': {'bool': {'must': [{'range': {'@timestamp': {'gt': '2022-03-10T09:03:31.454969Z', 'lte': '2022-03-10T09:08:34.454969Z'}}}, \
{'query_string': {'query': '_type: pi_endpointincidentlogdata'}}, \
{'query_string': {'query': 'elog_logtype: 1'}}, {'query_string':
{'query': 'elog_loggroup: 32 OR elog_loggroup: 64'}}, {'query_string': {'query': '_exists_ : elog_patterinfo.elog_patternname'}}, \
{'range': {'elog_createtime': {'gte': '2022-01-03 10:33:00', 'lte': '2022-01-03 10:37:00'}}}]}}}},
'sort': [{'@timestamp': {'order': 'asc'}}]}}}
我无法理解这个错误,因为我没有在过滤器中声明@timestamp 范围和排序。
这是我的规则文件
> name: test
> type: frequency
> index: pi_202202*
> num_events: 1
> timeframe:
> minutes: 5
>
> filter:
> - query:
> query_string:
> query: "_type: pi_endpointincidentlogdata"
> - query:
> query_string:
> query: "elog_logtype: 1"
> - query:
> query_string:
> query: "elog_loggroup: 32 OR elog_loggroup: 64"
> - query:
> query_string:
> query: "_exists_ : elog_patterinfo.elog_patternname"
> - range:
> elog_createtime:
> gte: "2022-01-03 10:33:00"
> lte: "2022-01-03 10:37:00"
>
> alert:
> - "email"
我该如何解决这个问题?
这是因为 ElastAlert 默认使用 @timestamp
field 对数据进行排序。
您可以在 timestamp_field
配置中更改它并使用数据中存在的另一个字段。
我最近遇到了这个问题。 elasticalert 正在尝试加载以下映射 =>
find / -name es_mappings
- elastalert_error.json
- elastalert.json
- elastalert_status.json
- 过去_elastalert.json
- silence.json
问题出在 index_template。当 Elastalert 试图创建自己的映射时,它与 index_template 冲突并且无法添加自己的映射。删除相关的 index_template 和 re-running elasticalert-create-index
命令修复了问题。