这可能不是提出这个问题的正确位置。但我找不到这样做的文章。 我在CentOS上安装了以下软件包。
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和服务帐户。 我只需要使用elastakert作为cron就可以了。
请建议。
答案 0 :(得分:0)
我熟悉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}