====== JQ ======
Mit ''jq'' lassen sich JSON ausgaben formatieren.
===== Beispiele =====
Der Befehl
curl -XGET 'http://: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://: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