Как позвонить asticsearch - ELK - API от elastalert?

Возможно, это не то место, где можно задать этот вопрос. Но я не мог найти статьи для этого. У меня есть пакеты ниже, установленные на CentOS.

Elasticsearch (мне это не нужно, так как я пытаюсь поговорить с кластером стека ELK с помощью API. Я не хочу, чтобы ealsticsearch запускался локально на коробке, где у меня есть elastalert.)
Данные с меткой времени ISO8601 или Unix
Python 2.6 или 2.7
Пип, см. require.txt

Но как мне сделать вызов кластеру эластичного поиска, используя API. У меня есть API и служебная учетная запись для этого. Вот что я ищу. Какой файл в elastalert-master/example_rules я должен изменить?

Я также попытался изменить config.yaml.example, но он продолжает вызывать auth py файлы и ошибки. Я знаю, что мне не нужно ничего авторизовать, так как у меня есть API и учетная запись службы. Я просто должен использовать elastakert как cron для этого.

Пожалуйста, предложите.

1 ответ

Я знаком с Python, поэтому позвольте мне ответить на Python. Я использую запросы модуля.

In [1]: import requests
In [2]: from requests.auth import HTTPBasicAuth

In [3]: url = 'http://es-server:9200/my_log*/_count'
In [4]: data = '''{
   ....:   "query": {
   ....:     "bool": {
   ....:       "must": [
   ....:         {
   ....:           "term": {
   ....:             "deployment": "testapp"
   ....:           }
   ....:         }
   ....:       ]
   ....:     }
   ....:   }
   ....: }'''

In [5]: resp = requests.get(url, auth = HTTPBasicAuth('esuser', 'espwd'), data = data)

In [6]: j = resp.json()

In [7]: j
Out[7]: 
{u'_shards': {u'failed': 0, u'successful': 185, u'total': 185},
 u'count': 2393083}
Другие вопросы по тегам