1

特定のメッセージでアラートを出すように Elasticsearch Watcher Watch を構成しようとしていますが、検索入力を機能させることができません。Sense とelasticsearch-watcher-py の両方を使用してみましたが、Watcher は常に「parse_exception」を返します。

est.watcher.put_watch(
    id='a1b_error',
    body={
        # run the watch every night at midnight
        'trigger': { 'schedule': { 'daily': { 'at': 'midnight' }}},
        'condition': { 'script': { 'inline': 'ctx.payload.hits.total > 0' } },
        'input': {
            'search': {
                'requests': {
                    'indices': ['logstash-*'],
                    'body': {
                        'query': {
                            'bool': {
                                'must': [
                                    { 'match': { 'Projekt': 'ourproject' }},
                                    { 'match': { 'Modus': 'production' }},
                                    { 'match': { 'facility': 'somebackend.log' }},
                                    { 'wildcard': { 'message': 'SOMEERROR*' }},
                                    { 'range': { '@timestamp' : { 'gte': 'now-30d', 'lt': 'now' }}}
                                ]
                            }
                        }
                    }
                }
            }
        },
        'actions': {
            'log' : {
                'logging' : {
                    'test': 'Watch triggered!'
                }
            }
        }
    }
)

elasticsearch-py とまったく同じ検索クエリを使用すると、186 件の結果が返されますが、Watcher はステータス 400 と parse_exception を返し続け、理由は「watch [testwatch] の [search] 入力を解析できませんでした。予期しないトークン [START_OBJECT]」です。

4

1 に答える 1

2

エラスティック フォーラムの誰かが私に指摘したように、それは単なるタイプミスでした。

'requests': {

本当にあるべき

'request': {

また、完全を期すために、私のアクションにはエラーがあります。次は正しいでしょう。

'actions': {
    'log' : {
        'logging' : {
            'text': 'Watch triggered!'
        }
    }
}
于 2016-08-12T05:13:29.390 に答える