JQ
Mit jq
lassen sich JSON ausgaben formatieren.
Beispiele
Der Befehl
curl -XGET 'http://<HOSTNAME>:9200/logstash-2018.01.11/_stats/store?pretty'
ergibt folgende Ausgabe:
{ "_shards" : { "total" : 10, "successful" : 10, "failed" : 0 }, "_all" : { "primaries" : { "store" : { "size_in_bytes" : 540333 } }, "total" : { "store" : { "size_in_bytes" : 1202464 } } }, "indices" : { "logstash-2018.01.11" : { "uuid" : "NOTtTao8SJeuf1Wk9aG1Hw", "primaries" : { "store" : { "size_in_bytes" : 540333 } }, "total" : { "store" : { "size_in_bytes" : 1202464 } } } } }
Keys und Values
- Keys abfragen von „_all“
jq '._all|keys[]'
gibt folgende Ausgabe
"primaries" "total"
- Values abfragen von „_all“
jq '._all.primaries.store.size_in_bytes'
oder
jq '._all.primaries[].size_in_bytes'
gibt folgende Ausgabe
540333
- Mehrere Werte abfragen
jq '.indices|keys[],.[].total[]'
gibt folgendes aus
"logstash-2018.01.11" { "size_in_bytes": 1202464 }
- Ausgabe formatieren
jq '.indices|"\(keys),\(.[].total[].size_in_bytes)"'
gibt folgendes aus
"[\"logstash-2018.01.11\"],1202464"
Schöner ist die Ausgabe mit diesem Befehl
jq '.indices|keys[] as $k|"\($k) \(.[].total[].size_in_bytes)"'
Ausgabe
"logstash-2018.01.11 1202464"
- Abfrage der Größe mehrerer Indices
curl -s -XGET 'http://<HOSTNAME>:9200/logstash-2018.01.1*/_stats/store?pretty'
ergibt folgende Ausgabe:
{ "_shards" : { "total" : 100, "successful" : 100, "failed" : 0 }, "_all" : { "primaries" : { "store" : { "size_in_bytes" : 5435698 } }, "total" : { "store" : { "size_in_bytes" : 11391707 } } }, "indices" : { "logstash-2018.01.10" : { "uuid" : "uPhznOuFSWy8knrAimjcQQ", "primaries" : { "store" : { "size_in_bytes" : 554771 } }, "total" : { "store" : { "size_in_bytes" : 1281530 } } }, "logstash-2018.01.19" : { "uuid" : "7Nu5273pTHC2LQqxc0eGjg", "primaries" : { "store" : { "size_in_bytes" : 490653 } }, "total" : { "store" : { "size_in_bytes" : 970346 } } }, "logstash-2018.01.18" : { "uuid" : "NDKWvKjKTvGxPa7O1LYVSg", "primaries" : { "store" : { "size_in_bytes" : 568719 } }, "total" : { "store" : { "size_in_bytes" : 1240946 } } }, "logstash-2018.01.17" : { "uuid" : "Vol1spp3RMKfYokWEIwsww", "primaries" : { "store" : { "size_in_bytes" : 764169 } }, "total" : { "store" : { "size_in_bytes" : 1449844 } } }, "logstash-2018.01.16" : { "uuid" : "XQRGJeaXQnSCVI9iyJbW4w", "primaries" : { "store" : { "size_in_bytes" : 472978 } }, "total" : { "store" : { "size_in_bytes" : 1081113 } } }, "logstash-2018.01.15" : { "uuid" : "BEbXpbEvQhKDFqTr1uI-9g", "primaries" : { "store" : { "size_in_bytes" : 488065 } }, "total" : { "store" : { "size_in_bytes" : 988797 } } }, "logstash-2018.01.14" : { "uuid" : "q5eDM9pGRoWMjzS4bCjnUQ", "primaries" : { "store" : { "size_in_bytes" : 536372 } }, "total" : { "store" : { "size_in_bytes" : 1001596 } } }, "logstash-2018.01.13" : { "uuid" : "3IxW3ix8QuKnpAQKKR37-g", "primaries" : { "store" : { "size_in_bytes" : 499779 } }, "total" : { "store" : { "size_in_bytes" : 976126 } } }, "logstash-2018.01.12" : { "uuid" : "CjbVg5DDRs2LlDHx_sIB3g", "primaries" : { "store" : { "size_in_bytes" : 519859 } }, "total" : { "store" : { "size_in_bytes" : 1198945 } } }, "logstash-2018.01.11" : { "uuid" : "NOTtTao8SJeuf1Wk9aG1Hw", "primaries" : { "store" : { "size_in_bytes" : 540333 } }, "total" : { "store" : { "size_in_bytes" : 1202464 } } } } }
So gibt man nur die Indexnamen und deren größe aus
jq -r '.indices|keys[] as $k|"\($k) bytes \(.[$k].total[].size_in_bytes)"'
Ausgabe
logstash-2018.01.10 bytes 1281530 logstash-2018.01.11 bytes 1202464 logstash-2018.01.12 bytes 1198945 logstash-2018.01.13 bytes 976126 logstash-2018.01.14 bytes 1001596 logstash-2018.01.15 bytes 988797 logstash-2018.01.16 bytes 1081113 logstash-2018.01.17 bytes 1449844 logstash-2018.01.18 bytes 1240946 logstash-2018.01.19 bytes 970346