2017-04-19 7 views
0

이 질문을할만한 장소가 아닐 수도 있습니다. 하지만 그렇게 할 기사를 찾지 못했습니다. 아래 패키지가 CentOS에 설치되어 있습니다.elastalert에서 elasticsearch - ELK - API를 호출하는 방법은 무엇입니까?

 
Elasticsearch (I don't need it as I am trying to talk to ELK stack cluster using an API. I don't want ealsticsearch run locally on the box where I have elastalert.) 
ISO8601 or Unix timestamped data 
Python 2.6 or 2.7 
pip, see requirements.txt 

하지만 API를 사용하여 탄성 검색 클러스터를 호출하려면 어떻게해야합니까? API와 서비스 계정이 있습니다. 여기가 내가 찾고있는 것이다. elastalert-master/example_rules 아래의 파일을 수정해야합니까?

config.yaml.example을 변경해 보았지만 auth py 파일과 오류를 계속해서 호출합니다. API 및 서비스 계정을 보유하고 있으므로 승인 할 필요가 없음을 알고 있습니다. 이렇게하려면 cron으로 elastakert를 사용해야합니다.

좋습니다.

답변

0

저는 파이썬에 익숙해서 파이썬으로 대답하려고합니다. 모듈 요청을 사용하고 있습니다.

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} 
+0

@felixc에 감사드립니다. 그러나, 나는이 방법으로 API 호출을 할 방법을 찾고 있지 않다. 이는 SOAP 또는 POSTMAN REST 도구를 사용하여 ELK 스택을 쿼리하는 방법과 유사합니다. ELK 스택 호출을 위해 elastalert 구성 파일을 사용하는 방법을 찾고 있습니다. – user3709172