aarch64 Linux OSでsystem.hw.cpuがZBX_NOTSUPPORTEDになる件について
aarch64 Linux OSでsystem.hw.cpuがZBX_NOTSUPPORTEDになる件について
概要
MIRACLE ZBX 5.0および6.0のaarch64 エージェント/エージェント2ではsystem.hw.cpuがZBX_NOTSUPPORTEDとなり値を取得できない場合があります。
対象となる製品
- MIRACLE ZBX 5.0
 - MIRACLE ZBX 6.0
 
詳細
MIRACLE ZBXにおけるsystem.hw.cpuの実装
MIRACLE ZBXエージェントならびにエージェント2は/proc/cpuinfoを読み込みsystem.hw.cpuの値を取得しています。以下はx86_64 Linux OSにおける/proc/cpuinfoの例です。
processor       : 0
vendor_id       : GenuineIntel
cpu family      : 6
model           : 85
model name      : Intel(R) Xeon(R) Silver 4112 CPU @ 2.60GHz
stepping        : 4
microcode       : 0x2006b06
cpu MHz         : 2593.906
cache size      : 8448 KB
physical id     : 0
siblings        : 1
core id         : 0
cpu cores       : 1
apicid          : 0
initial apicid  : 0
fpu             : yes
fpu_exception   : yes
cpuid level     : 22
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon nopl xtopology tsc_reliable nonstop_tsc cpuid tsc_known_freq pni pclmulqdq vmx ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch cpuid_fault invpcid_single pti ssbd ibrs ibpb stibp tpr_shadow vnmi ept vpid fsgsbase tsc_adjust bmi1 avx2 smep bmi2 invpcid rdseed adx smap xsaveopt arat md_clear flush_l1d arch_capabilities
vmx flags       : vnmi invvpid ept_x_only tsc_offset vtpr mtf ept vpid unrestricted_guest
bugs            : cpu_meltdown spectre_v1 spectre_v2 spec_store_bypass l1tf mds swapgs itlb_multihit mmio_stale_data retbleed
bogomips        : 5187.81
clflush size    : 64
cache_alignment : 64
address sizes   : 42 bits physical, 48 bits virtual
power management:
エージェントはこの中で次の値を取得しています。
processorvendor_idmodel namecpu MHz
エージェントがprocessor番号によるCPUコアごとのクロック周波数を/sys/devices/system/cpu/cpuN/cpufreq/cpuinfo_max_freq(Nはprocessorの番号)から取得できず、またvendor_id・model name・cpu MHzいずれかの値も取得できなかった場合、エージェントはZBX_NOTSUPPORTEDエラーを返す実装になっています。
aarch64 Linux OSにおけるCPU情報の欠落
ここでaarch64 Linux OSの/proc/cpuinfoに、エージェントが読み込む値が含まれていないケースを考えます。これはCentOS Stream 8 aarch64から取得しました。
processor       : 0
BogoMIPS        : 200.00
Features        : fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics cpuid
CPU implementer : 0x43
CPU architecture: 8
CPU variant     : 0x1
CPU part        : 0x0a1
CPU revision    : 1
また/sys/devices/system/cpu/cpu0ディレクトリにクロック周波数の情報が配置されていないとします。これもCentOS Stream 8 aarch64の情報です。
# ls /sys/devices/system/cpu/cpu0/
cache         crash_notes       driver         hotplug  online  regs       topology
cpu_capacity  crash_notes_size  firmware_node  node0    power   subsystem  uevent
このときaarch64のMIRACLE ZBXエージェント/エージェント2は前述した実装にもとづきsystem.hw.cpuをZBX_NOTSUPPORTEDとします。
したがってaarch64 Linux OS上で稼働させているエージェントのsystem.hw.cpuがZBX_NOTSUPPORTEDとなったさいは上記のシステム情報を確認いただき、クロック周波数のファイル/sys/devices/system/cpu/cpuNが存在せず/proc/cpuinfoにvendor_id・model name・cpu MHzいずれかも含まれていない場合はこのキーの値は取得できないことをご承知おきください。
注意事項
- 本ドキュメントの内容は、予告なしに変更される場合があります。
 - 本ドキュメントは限られた評価環境における検証結果をもとに作成しており、 全ての環境での動作を保証するものではありません。
 - 本ドキュメントの内容に基づき、導入、設定、運用を行なったことにより損害が生じた場合でも、弊社はその損害についての責任を負いません。あくまでお客様のご判断にてご使用ください。
 
更新履歴
- 2023年3月2日 新規作成