Elasticsearchで収集しているログをElasticdumpを使ってjsonファイルにする際の基本的な使い方を書きます.
公式↓
https://github.com/elasticsearch-dump/elasticsearch-dump/blob/master/README.md
事前作業
①Elasticdumpに必要なnpmコマンドとnode環境のインストール
↓のコマンドでどちらもインストールできます
sudo apt install npm
インストールできたか確認
node -v
npm -v
②dumpコマンドのインストール
sudo apt install dump
③Elasticdumpのインストール
インストールコマンドが2種類あるので好きな方でインストールしてください
ダウンロードしたディレクトリ内でしかelasticdumpが使えない(ローカル)
sudo npm install elasticdump
そのサーバー内だったらどこでもelasticdumpが使える(グローバル)
sudo npm install -g elasticdump
使ってみよう
送信元(elasticsearchがあるサーバー)
送信先(dumpをインストールしたサーバー) とします
ログをjsonファイルにするコマンド
elasticdump --input=http://送信元のIP:送信元のElasticsearchのport番号/送信元のElasticsearchのindex --output=$HOME/dump/logstash_data.json --type=data --limit=10000
・送信元のIPの見方(送信元のサーバーで実行)
hostname -I
XXX.XXX.XXX.XXX YY.YY.Y.Y YY.YY.Y.Y #結果例 Xのところを使う
・送信元のElasticsearchのport番の見方(送信元のサーバーで実行)
kubectl get svc -n ネームスペース名
#結果例↓のelasticsearch-masterのところを使う(31338)
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/elasticsearch-master NodePort 10.43.230.156 <none> 9200:31338/TCP,9300:30876/TCP 16m
service/elasticsearch-master-headless ClusterIP None <none> 9200/TCP,9300/TCP 16m
service/kb-kibana NodePort 10.43.227.225 <none> 5601:30110/TCP 65s
service/ls-logstash NodePort 10.43.185.167 <none> 5044:30714/TCP 13m
service/ls-logstash-headless ClusterIP None <none> 9600/TCP 13m
・indexの見方
curl -X GET "http://cdsl@ls-master:31338/_cat/indices?v"
#結果例↓testとlogstashがindex名
health status index uuid pri rep docs.count docs.deleted store.size pri.store.size
green open test W_frXrGaRpSDU580TMtDEg 1 1 9595981 0 2.2gb 1.1gb
green open logstash EYO-xaECQaKUOk2p3zDYwg 1 1 123693625 698836 159.1gb 79.6gb
・--output=$HOME/dump/logstash_data.jsonはこの場所にlogstash_data.jsonという名前で保存する
・--limit=10000は一回に送られてくるログの件数→数字を大きくするほど速く終わるが,処理が追い付かなくなってElasticsearchが落ちる可能性があるので気を付けてください
これで,ログが取得できます.
収集したログをElasticsearchに入れたい場合
elasticdump --input=logstash_data.json --output=http://送信元のIP:送信元のElasticsearchのport番号/送信元のElasticsearchのindex --limit=10000
実行結果例
Wed, 20 Nov 2024 07:20:02 GMT | starting dump
Wed, 20 Nov 2024 07:20:02 GMT | got 10000 objects from source elasticsearch (offset: 0)
Wed, 20 Nov 2024 07:20:02 GMT | sent 10000 objects to destination file, wrote 10000
Wed, 20 Nov 2024 07:20:02 GMT | got 10000 objects from source elasticsearch (offset: 10000)
Wed, 20 Nov 2024 07:20:03 GMT | sent 10000 objects to destination file, wrote 10000
Wed, 20 Nov 2024 07:20:03 GMT | got 10000 objects from source elasticsearch (offset: 20000)
Wed, 20 Nov 2024 07:20:03 GMT | sent 10000 objects to destination file, wrote 10000
Wed, 20 Nov 2024 07:20:03 GMT | got 10000 objects from source elasticsearch (offset: 30000)
Wed, 20 Nov 2024 07:20:03 GMT | sent 10000 objects to destination file, wrote 10000
Wed, 20 Nov 2024 07:20:03 GMT | got 10000 objects from source elasticsearch (offset: 40000)
Wed, 20 Nov 2024 07:20:03 GMT | sent 10000 objects to destination file, wrote 10000
・
・省略
・
Wed, 20 Nov 2024 07:35:59 GMT | got 5981 objects from source elasticsearch (offset: 9590000)
Wed, 20 Nov 2024 07:35:59 GMT | sent 5981 objects to destination file, wrote 5981
Wed, 20 Nov 2024 07:35:59 GMT | got 0 objects from source elasticsearch (offset: 9595981)
Wed, 20 Nov 2024 07:35:59 GMT | Total Writes: 9595981
Wed, 20 Nov 2024 07:35:59 GMT | dump complete