先日、一年ほど運用しているML110 G7にハードウェアエラーが起こったと警告メールが来ました。
中身を見てみるとCore2の温度が高すぎたとのこと。CPUファンが壊れたのかと思い慌ててケース内を見てみますが異常はありません。
そこでCPU Clockを監視することとしました。
さて監視方法ですが前から使っているmuninにcpuspeedが有ります。
これを使おうと思い試して見るも、
1 2 3 4 |
awk: fatal: cannot open file `/sys/devices/system/cpu/cpu0/cpufreq/stats/time_in_state' for reading (No such file or directory) awk: fatal: cannot open file `/sys/devices/system/cpu/cpu1/cpufreq/stats/time_in_state' for reading (No such file or directory) awk: fatal: cannot open file `/sys/devices/system/cpu/cpu2/cpufreq/stats/time_in_state' for reading (No such file or directory) awk: fatal: cannot open file `/sys/devices/system/cpu/cpu3/cpufreq/stats/time_in_state' for reading (No such file or directory) |
とエラーが出て、うまく動きません。
仕方ないのでネットの海をさまよっていると、昔お世話になったmuninのプラグインを集めていたサイトが閉鎖になっているようです!Σ(゚д゚lll)ガーン
とはいえ、githubに補完してあったのでそちらを使うことにしました。
今回使うのはcpuspeed2です。
スクリプトも見やすく、これなら触れるだろうと思い
/etc/munin/plugins/cpuspeed2 に書き込み、chmod 777で実行権限を追加
1 |
munin-run cpuspeed2 |
で実行したところ、クロックが取れていません。
試した結果、昔に比べ表示される列数が増えているため少々変更する必要があるようでした。
そこで以下のように改変して、動くようになりました。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
#!/bin/bash # # Munin-plugin to monitor the cpu speeds of all available cpus # # Armin Haaf, 4-11-2007 # Licensed under: GNU GPL MAX_CORES=1024 if [ "$1" = "config" ]; then echo "graph_title CPU speed" echo 'graph_category system' echo "graph_info This graph shows the cpu-speed for each core, as reported by the kernel" i=0 while [ $i -lt $MAX_CORES ] do MODEL=`cat /proc/cpuinfo | grep -A 8 "processor.*:.*$i" | grep "model name"` if [ $? -ne 0 ] then break fi MODEL=`echo $MODEL | cut -c 12-` echo "core$i.label Core $i speed in MHz" echo "core$i.info Core $i speed in MHz $MODEL" echo "core$i.type GAUGE" i=$[$i+1] done exit 0 fi i=0 while true do cat /proc/cpuinfo | grep -A 8 "processor.*:.*$i" > /dev/null if [ $? -ne 0 ] then break fi echo -n "core$i.value " cat /proc/cpuinfo | grep -A 8 "processor.*:.*$i" | grep "cpu MHz" | cut -c 12- | cut -f 1 -d . i=$[$i+1] done |