OpenShift Cluster Monitoring の Prometheus のデータを Export/Import する
これが実現できると一番スマートそうだなと思った。
visibilityspots.org
だが、Cluster Monitoring の Prometheus では admin API が無効化されていた。まぁ想定はしていた。
$ oc exec -it -n openshift-monitoring prometheus-k8s-0 -- sh sh-4.4$ curl -X POST http://localhost:9090/api/v1/admin/tsdb/snapshot {"status":"error","errorType":"unavailable","error":"admin APIs disabled"}
仕方がないので Prometheus のデータを tar.gz で固めて持ってくることにした。固めるのにかなり時間が掛かる。
$ oc exec -it -n openshift-monitoring prometheus-k8s-0 -- sh sh-4.4$ tar -zcvf /tmp/prometheus.tar.gz /prometheus tar: Removing leading `/' from member names /prometheus/ /prometheus/01FK3XJ471YNVXFRT1PV5VHPTP/ /prometheus/01FK3XJ471YNVXFRT1PV5VHPTP/chunks/ ・・・ ・・・ ・・・ sh-4.4$ ls /tmp/ ks-script-rgpe088e ks-script-zgupbl05 prometheus.tar.gz
Prometheus のバージョンも調べておく。
sh-4.4$ /bin/prometheus --version prometheus, version 2.26.1 (branch: rhaos-4.8-rhel-8, revision: 5e146b2e4b9d96a952b9412dc20ce3fabfa2bd5e) build user: root@d43b8d11b98a build date: 20210813-03:01:55 go version: go1.16.6 platform: linux/amd64
oc cp でローカルに tar.gz で固めたものを持ってくる。持ってくるのにかなり時間が掛かる。
$ oc cp prometheus-k8s-0:/tmp/prometheus.tar.gz /my/local/pc/prometheus.tar.gz Defaulting container name to prometheus. tar: Removing leading `/' from member names
ローカルで同一バージョンの Prometheus をデータをコピーした領域をマウントする形で起動する。
$ docker run -d --name prometheus -v /my/local/pc/prometheus:/prometheus -p 9090:9090 prom/prometheus:v2.26.1 002bc4b65116d370f9998455e38c55d88d28d2bb26b1ebddacba38abfbcb10b4
一応ちゃんとデータを見られる。そこそこ使い所ありそう。