Как позвонить 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}