AKS の情報採取ツール (AKS Periscope) を試してみた


Azure 関連の Blog にて、AKS Periscope なるものを初めて知りました。

GitHub の情報を見るに、AKS のノード情報をごっそり取得してくれるツールのようです。
ちょうど今、AKS の勉強をしているところだったので、試してみました。

インストール&実行方法

インストール自体は、こちらにあるように Storage Account を用意して、下記のように Cloud Shell から実行するだけです。なお、az aks kollect に要する時間は1分かからないくらいでした。

az extension add --name aks-preview
az aks kollect -g <Resource Group Name> -n <AKS Cluster Name> --storage-account <Storage Account Name>

namespace の指定などは個別にオプションがあるので、そのあたりは GitHub などのページを参照してください。

実行結果

実行が完了すると、Storage Account 配下にノードごとのフォルダが作成され、それぞれに診断情報が出力されます。

zip ファイルが作成されるので、これをダウンロードするのがローカルでも確認しやすいですね。

上記のコマンドで取得した場合、解凍して TREE コマンドを打つと、下記のような感じになっています。具体的な中身は、試して確認してくださいませ。

├─collector
│  ├─containerlogs
│  │      kube-system_coredns-869cb84759-mpf6k
│  │      kube-system_coredns-869cb84759-qndgk
│  │      kube-system_coredns-autoscaler-5b867494f-p2clj
│  │      kube-system_dashboard-metrics-scraper-56878684f9-tf84x
│  │      kube-system_kube-proxy-ncnpg
│  │      kube-system_kubernetes-dashboard-7f7d6bbd7f-lvqkf
│  │      kube-system_metrics-server-5f4c878d8-5px7h
│  │      kube-system_omsagent-d7lgk
│  │      kube-system_omsagent-rs-b6dcbcd46-7lvsk
│  │      kube-system_tunnelfront-6b7ddc55f6-7sp97
│  │
│  ├─dns
│  │      kubernetes
│  │      virtualmachine
│  │
│  ├─iptables
│  │      iptables
│  │
│  ├─kubeletcmd
│  │      kubeletcmd
│  │
│  ├─kubeobjects
│  │      kube-system_deployment_coredns
│  │      kube-system_deployment_coredns-autoscaler
│  │      kube-system_deployment_dashboard-metrics-scraper
│  │      kube-system_deployment_kubernetes-dashboard
│  │      kube-system_deployment_metrics-server
│  │      kube-system_deployment_omsagent-rs
│  │      kube-system_deployment_tunnelfront
│  │      kube-system_pod_coredns-869cb84759-mpf6k
│  │      kube-system_pod_coredns-869cb84759-qndgk
│  │      kube-system_pod_coredns-autoscaler-5b867494f-p2clj
│  │      kube-system_pod_dashboard-metrics-scraper-56878684f9-tf84x
│  │      kube-system_pod_kube-proxy-hjz8p
│  │      kube-system_pod_kube-proxy-ncnpg
│  │      kube-system_pod_kube-proxy-pmxmg
│  │      kube-system_pod_kubernetes-dashboard-7f7d6bbd7f-lvqkf
│  │      kube-system_pod_metrics-server-5f4c878d8-5px7h
│  │      kube-system_pod_omsagent-d7lgk
│  │      kube-system_pod_omsagent-gq2t6
│  │      kube-system_pod_omsagent-rs-b6dcbcd46-7lvsk
│  │      kube-system_pod_omsagent-zrmls
│  │      kube-system_pod_tunnelfront-6b7ddc55f6-7sp97
│  │      kube-system_service_dashboard-metrics-scraper
│  │      kube-system_service_healthmodel-replicaset-service
│  │      kube-system_service_kube-dns
│  │      kube-system_service_kubernetes-dashboard
│  │      kube-system_service_metrics-server
│  │
│  ├─networkoutbound
│  │      AKS API Server
│  │      AKS Tunnel
│  │      Azure Container Registry
│  │      Internet
│  │      Microsoft Container Registry
│  │
│  ├─nodelogs
│  │      var_log_azure_cluster-provision.log
│  │      var_log_cloud-init.log
│  │
│  ├─systemlogs
│  │      docker
│  │      kubelet
│  │
│  └─systemperf
│          nodes
│          pods
│
└─diagnoser
        networkconfig
        networkoutbound

こんな感じで、色々な情報をごっそり取得してくれます。

トラブル時に自分でも色々とログから漁ってみる際には、すごく便利なツールだなと思いました!