私の現在の設定では私のネットワークで192.168.1.35:9200上でelasticsearchを実行しています。そして、そのマシン(192.168.1.40)からメトリックを収集している192.168.1.40のメトリック・ビート。私は私が望む結果を得る、このメソッドが呼び出される特定のmetricbeatdataを取得するためにElasticsearchを照会する方法は?
def es_match_all():
elasticsearch = Elasticsearch(
['192.168.1.35'],
port=9200,
)
result = elasticsearch.search(index='metricbeat-*', body={"query":{"match_all": {}}})
print(result)
:私metricbeat.yml
は私のpythonのコードでは、この
metricbeat.modules:
- module: system
metricsets:
- core
- cpu
- filesystem
- memory
- network
- process
cgroups: true
enabled: true
period: 10
procs: [".*"]
cpu_ticks: false
output.elasticsearch:
hosts: ['192.68.1.35:9200']
私は私のElasticsearchを照会するElasticsearchのAPIを使用していますように見えます。
{"hits": {"total": 2375277, "hits": [{"_id": "AVmI873zkPW_EI4mzGOc", "_source": {"beat": {"hostname": "ip-172-31-53-117", "name": "ip-172-31-53-117", "version": "5.1.1"}, "system": {"memory": {"total": 3945406464, "free": 2389319680, "swap": {"total": 0, "free": 0, "used": {"bytes": 0, "pct": 0.0}}, "used": {"bytes": 1556086784, "pct": 0.3944}, "actual": {"free": 3663335424, "used": {"bytes": 282071040, "pct": 0.0715}}}}, "type": "metricsets", "@timestamp": "2017-01-10T15:16:32.108Z", "metricset": {"module": "system", "name": "memory", "rtt": 97}}, "_score": 1.0, "_type": "metricsets", "_index": "metricbeat-2017.01.10"} ...
は今、私は特定のホスト名のためだけにいくつかのinfromationを得るためにESを照会する(ip-172-31-53-117
を)したい:私は下に短いバージョン印刷
def es_match_hostname():
elasticsearch = Elasticsearch(
['192.168.1.35'],
port=9200,
)
result = elasticsearch.search(
index='metricbeat-*',
body={"query": {"match": {'hostname': "ip-172-31-53-117"}}}
)
をその後私は、次のような結果を得たときの方法
私のESの設定とインデックスは正しいですが、正しい情報を取得するための正しいクエリを書く方法が見つかりません。 body
としてelasticsearch.search
としてください。