Elasticsearchのデータをファイルへ書き出し
Elasticsearchに格納されたレコードをファイルに書き出す. 簡易的に書き出す場合はKibanaの機能が使える. 大量にあるレコードをまとめて書き出したい場合は,コマンドラインツールの利用が適している. ここではElasticsearch向けのコマンドラインツールの1つであるelasticdumpコマンドを使う.
以下はelasticdumpコマンドの例をあらわす.
elasticdump \
--input="http://elastic-user:elastic-password@192.168.201.47:9200/filebeat*" \
--output=out.json \
--type=data \
--fileSize=10mb \
--retryAttempts=2 \
--maxSockets=5 \
--searchBody="{\"query\": {\"range\": { \"@timestamp\": { \"gte\": \"2022-05-01T00:00:00+09:00\", \"lte\": \"2022-06-01T00:00:00+09:00\"} } }}"
コマンドライン引数とその意味を以下に示す.
名前 | 値 | 意味 |
---|---|---|
input | http://elastic-user:elastic-password@192.168.201.47:9200/filebeat* | Elasticsearchのアドレスとポート(192.168.201.47:9200),ユーザ名(elastic-user),パスワード(elastic-password),インデックス名(filebeat*) |
output | out.json | 書き出すファイルの名前 |
type | data | レコードの中身を書き出す |
fileSize | 10mb | ファイルを分割するサイズ |
retryAttemps | 2 | 失敗した場合に再試行する回数 |
maxSockets | 5 | 最大のソケット数(並列数) |
searchBody | {\"query\": {\"range\": { \"@timestamp\": { \"gte\": \"2022-05-01T00:00:00+09:00\", \"lte\": \"2022-06-01T00:00:00+09:00\"} } }} | ElasticsearchのAPIが受け付けるクエリ. ここではタイムスタンプを2022年5月1日から6月1日までに限定している. |