Armadilloフォーラム

cAdvisorを用いたコンテナ監視について

rikuya-h

2025年7月28日 11時04分

お世話になっております。
長谷部です。

現在、Armadillo G4(abos)上で稼働しているコンテナを監視したく cAdvisor の導入を検討しているのですが、
abosで動作している podman は rootモードを認識しております。
そのためDocker使用時と設定はそこまで大差無い様に感じておりますが...

ATDE 環境で Armadillo G4 用の arm64版 cAdvisorイメージを取得してswuイメージを作成中なのですが

podman pull gcr.io/cadvisor/cadvisor-arm64:v0.49.1
でイメージ取得
podman save gcr.io/cadvisor/cadvisor-arm64:v0.49.1 > cAdvisor.tar
で.tar化
 
atmark@atde9:***$ mkswu cadvisor.desc 
Warning: コンテナイメージ cadvisor.tar にはイメージタグがありません。イメージを id で指定しない場合インストールされません。

上記Warningメッセージが表示され、作成されたswuイメージで armadillo g4 をアップデートしてもメッセージ通りイメージがインストールされていませんでした。

cadvisor.desc の中身

swdesc_option component=extra_os.cadvisor
swdesc_option version=1
swdesc_option BUILD_SBOM=auto
swdesc_option sbom_config_yaml=cadvisor.sbom_config.yaml
 
swdesc_files --dest /etc/atmark/containers/ conf/cadvisor.conf
swdesc_embed_container "cadvisor.tar"

どの様にすればインストールできますでしょうか?
また、何か見落としている点や改善点もあればご教示頂けると大変助かります。
よろしくお願いします。

コメント

at_dominique.m…

2025年7月28日 12時35分

長谷部さん

お世話になっています、
マルティネです。

> ATDE 環境で Armadillo G4 用の arm64版 cAdvisorイメージを取得してswuイメージを作成中なのですが

> podman save gcr.io/cadvisor/cadvisor-arm64:v0.49.1 > cAdvisor.tar
> で.tar化
> 
> atmark@atde9:***$ mkswu cadvisor.desc 
> Warning: コンテナイメージ cadvisor.tar にはイメージタグがありません。イメージを id で指定しない場合インストールされません。

cadvisor を G4 で試してませんが、上記のコマンドを試してもこちらのワーニングを再現できませんでした。

* podman save で利用したコマンドは大文字の A で cAdvisor.tar に保存してますが、desc ファイルで小文字の cadvisor.tar を利用してるように見えましたので、こちらの誤記はフォーラムにコピーした際の誤記でしょうか?Linuxでは cAdvisor.tar と cadvisor.tar は別のファイルです。
* 「tar tf cadvisor.tar」で保存したコンテナの内容を確認していただけますでしょうか。

atmark@atde9:~$ tar tf cadvisor.tar 
7c504f21be85c8ade51b7ade32a39a4269bcbcf0e593352923f1b8ea6278e5ef.tar
4dbb5cfccccfc72efe1fd391d07e180fb3eff1fbfd3300aabd6c58802ad02dee.tar
f28d4642f08d8c662a08341281da53026cf6c7a2f3d041fd2a5821b140fbffa6.tar
5f70bf18a086007016e948b04aed3b82103a36bea41755b6cddfaf10ace3c6ef.tar
84717f6b60d57d31b7f1341caca2cf38e61275bdf67ae85437b53c23267bee7f.tar
6cd5d633a6851d491a36ddddd6168334b999a1d29f463d443aa765818ac6b889.json
998cb48ca9305bfd2298deff77a1ce8f0b851c1f695226cdad22c38a291783cd/layer.tar
998cb48ca9305bfd2298deff77a1ce8f0b851c1f695226cdad22c38a291783cd/VERSION
998cb48ca9305bfd2298deff77a1ce8f0b851c1f695226cdad22c38a291783cd/json
7abd77755d821a2cf312f3080ebf006bcace1ae6addb60cd0f38ad9812be9f5a/layer.tar
7abd77755d821a2cf312f3080ebf006bcace1ae6addb60cd0f38ad9812be9f5a/VERSION
7abd77755d821a2cf312f3080ebf006bcace1ae6addb60cd0f38ad9812be9f5a/json
bbdf82f656992c920fff45f5275edbbc733696a9f54f76a6564fde1728cbbfb6/layer.tar
bbdf82f656992c920fff45f5275edbbc733696a9f54f76a6564fde1728cbbfb6/VERSION
bbdf82f656992c920fff45f5275edbbc733696a9f54f76a6564fde1728cbbfb6/json
feb3354e29578eca1e5e417a61e11939e6901b305cfacf1540ca8332f3ea5957/layer.tar
feb3354e29578eca1e5e417a61e11939e6901b305cfacf1540ca8332f3ea5957/VERSION
feb3354e29578eca1e5e417a61e11939e6901b305cfacf1540ca8332f3ea5957/json
84a76448fbd1e7ae04be3a92448762392cdc65473d480738b342b767b7a7be54/layer.tar
84a76448fbd1e7ae04be3a92448762392cdc65473d480738b342b767b7a7be54/VERSION
84a76448fbd1e7ae04be3a92448762392cdc65473d480738b342b767b7a7be54/json
manifest.json
repositories

よろしくお願いします。

ご回答ありがとうございます。

私も再度確認した所

podman save gcr.io/cadvisor/cadvisor-arm64:v0.49.1 > cAdvisor.tar
:
atmark@atde9:***$ mkswu cadvisor.desc 

でwariningメッセージ無く、swuイメージを作成できました。

冷静になって色々確認した所、
結論:"podman save の -o オプション を使っていたから" でした。

事象時はこちらで示したコマンド(podman save hoge > hoge.tar)を使って.tar化 "させていませんでした。"

podman save -o cadvisor.tar gcr.io/cadvisor/cadvisor-arm64:v0.49.1
 
Error: unable to save "gcr.io/cadvisor/cadvisor-arm64:v0.49.1": error copying image to the remote destination: Error initializing destination docker-archive:cadvisor.tar:gcr.io/cadvisor/cadvisor-arm64:v0.49.1: docker-archive doesn't support modifying existing images
 
エラーが起きたためimage_idを使用して .tar化↓
podman save  6cd5d633a685 > cAdvisor.tar
※何故か、ここでは -o オプションは使わず ">" を使用して tar化させていました。 (-o オプションでは 上記同様にエラーが発生)
その後、こちらの質問時に至ります。(再現出来ました。)

-o オプションが使えないのは気になりますが、 tar化させる事は出来ました。
失礼しました。

その後、作成したSWUイメージをArmadillo G4 へアップデートした所...

podman-atmark            |Starting 'cadvisor'
podman-atmark            |Error: crun: executable file `/run/podman-init` not found in $PATH: No such file or directory: OCI runtime attempted to invoke a command that was not found
podman-atmark            |error: cadvisor: Could not start cadvisor: 127

swuアップデート後の再起動時のメッセージで
上記エラーを確認、コンテナは起動せず。

cadvisor.confの中身

set_image gcr.io/cadvisor/cadvisor-arm64:v0.49.1
set_pod test_pod
add_volumes /:/rootfs:ro
add_volumes /var/run:/var/run:ro
add_volumes /sys:/sys:ro
add_volumes /var/lib/containers:/var/lib/containers:ro
add_volumes /dev/disk/:/dev/disk:ro
set_command '--privileged'

続けてになりますが、ご教示頂けますと幸いです。

> * podman save で利用したコマンドは大文字の A で cAdvisor.tar に保存してますが、desc ファイルで小文字の cadvisor.tar を利用してるように見えましたので、こちらの誤記はフォーラムにコピーした際の誤記でしょうか?Linuxでは cAdvisor.tar と cadvisor.tar は別のファイルです。
> * 「tar tf cadvisor.tar」で保存したコンテナの内容を確認していただけますでしょうか。

連投すみません。
こちらについてお答えしておりませんでした。
コピーした際の誤記でした。失礼しました。
また、返信した内容内に また 誤記表記で送信してしまいました。
申し訳ありません。読み替えて頂ければと思います。

またまた、連投ですみません。
エラー原因は
.confに記述していた以下内容でした。
set_command '--privileged'

コメントアウトする事により正常起動を確認しました。

お騒がせしてすみません。
こちらで動作確認して、また何かあれば質問させて頂きます。

cAdvisorのweb_uiから podman containers ページに飛んでも起動中の他コンテナーを確認する事ができませんでした。

ページ遷移先の画面↓

failed to get podman info: response not present: Get "http://d/v1.0.0/info": dial unix /var/run/podman/podman.sock: connect: no such file or directory

podman logs cadvisor (一部抜粋)

I0728 05:32:19.783367       1 factory.go:55] Registering systemd factory
I0728 05:32:19.783408       1 factory.go:221] Registration of the systemd container factory successfully
I0728 05:32:19.783774       1 factory.go:219] Registration of the crio container factory failed: Get "http://%2Fvar%2Frun%2Fcrio%2Fcrio.sock/info": dial unix /var/run/crio/crio.sock: connect: no such file or directory
I0728 05:32:19.786014       1 factory.go:219] Registration of the mesos container factory failed: unable to create mesos agent client: failed to get version
I0728 05:32:19.786608       1 factory.go:219] Registration of the docker container factory failed: failed to validate Docker info: failed to detect Docker info: Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
I0728 05:32:19.787142       1 factory.go:219] Registration of the podman container factory failed: failed to validate Podman info: response not present: Get "http://d/v1.0.0/info": dial unix /var/run/podman/podman.sock: connect: no such file or directory
I0728 05:32:19.787367       1 factory.go:219] Registration of the containerd container factory failed: unable to create containerd client: containerd: cannot unix dial containerd api service: dial unix /run/containerd/containerd.sock: connect: no such file or directory
I0728 05:32:19.787477       1 factory.go:103] Registering Raw factory
I0728 05:32:19.787545       1 manager.go:1196] Started watching for new ooms in manager
W0728 05:32:19.787605       1 manager.go:306] Could not configure a source for OOM detection, disabling OOM events: open /dev/kmsg: no such file or directory
I0728 05:32:19.789354       1 manager.go:319] Starting recovery of all containers
I0728 05:32:19.789556       1 manager.go:324] Recovery completed
I0728 05:32:19.790945       1 cadvisor.go:176] Starting cAdvisor version: v0.49.1-6f3f25ba on port 8080

abosにおけるpodman.sockの場所やcAdvisorをセットアップする上でのボリュームマウント先等教えて頂けますと幸いです。

https://manual.atmark-techno.com/armadillo-iot-g4/armadillo-iotg-g4_pro…
上記ドキュメントより podman サービスを有効にしてください とありましたので以下を実行

rc-update add podman && persist_file -P /etc/runlevels/default/podman

/run/podman/podman.sock
が生成されました。

cadvisorの web ui より podman container ページへ移動すると
画面が表示されました。

ですが、各コンテナー毎のnameラベリング表示がされておらず
metrics収集して "クエリ" しても name ラベルは存在しませんでした。

表示・付与させる方法がありましたらご教示頂けますと幸いです。

ファイル ファイルの説明
cadvisor.png cadvisor web_ui podman container ページ遷移後

https://github.com/google/cadvisor/issues/3628
上記のgithub issuesを参考に設定しまして コンテナ名(name ラベル)を取得できました。

set_image gcr.io/cadvisor/cadvisor-arm64:v0.49.1
set_pod test_pod
add_volumes /:/rootfs:ro
add_volumes /var/run:/var/run:ro
add_volumes /sys:/sys:ro
add_volumes /var/lib/containers:/var/lib/containers:ro
add_volumes /sys/fs/cgroup:/sys/fs/cgroup:ro ★こちらを追加
add_volumes /dev/disk/:/dev/disk:ro

一人で勝手に騒いでしまい...失礼しました。
今までの内容で改善点や間違っている点等あればご指摘お願いします。

ファイル ファイルの説明
cadvisor_success.png

at_dominique.m…

2025年7月28日 17時09分

マルティネです

> 一人で勝手に騒いでしまい...失礼しました。

いえいえ、自分も cadvisor を試したことなかったので試していたところです。
解決できて何よりです。

> 今までの内容で改善点や間違っている点等あればご指摘お願いします。

サービスの永続化や見せていただいたコンフィグの部分に気になるところなかったです。

また何かあればまた聞いてください

> マルティネです
>
> > 一人で勝手に騒いでしまい...失礼しました。
>
> いえいえ、自分も cadvisor を試したことなかったので試していたところです。
> 解決できて何よりです。
>
> > 今までの内容で改善点や間違っている点等あればご指摘お願いします。
>
> サービスの永続化や見せていただいたコンフィグの部分に気になるところなかったです。
>
> また何かあればまた聞いてください

ありがとうございます。
開発する上で技術的にも気持ち的にもこちらのフォーラムがあることに大変助かっております。
以上です。