Mit jq lassen sich JSON ausgaben formatieren.
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
}
}
}
}
}
jq '._all|keys[]'
gibt folgende Ausgabe
"primaries" "total"
jq '._all.primaries.store.size_in_bytes'
oder
jq '._all.primaries[].size_in_bytes'
gibt folgende Ausgabe
540333
jq '.indices|keys[],.[].total[]'
gibt folgendes aus
"logstash-2018.01.11"
{
"size_in_bytes": 1202464
}
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"
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