Плагин Munin в Perl не получает правильные данные

Я пытаюсь использовать плагин Munin для программного рейда. Вот код плагина: https://github.com/munin-monitoring/contrib/blob/master/plugins/disk/raid

В настоящее время мой рейд перестраивается, вот текущий вывод:

# cat /proc/mdstat 
Personalities : [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] 
md2 : active raid1 sda3[0] sdb3[1]
      2925544767 blocks super 1.2 [2/2] [UU]
      [==>..................]  resync = 14.4% (422554560/2925544767) finish=5246.6min speed=7950K/sec

md1 : active raid1 sda2[0] sdb2[1]
      524276 blocks super 1.2 [2/2] [UU]
        resync=DELAYED

md0 : active raid1 sda1[0] sdb1[1]
      4193268 blocks super 1.2 [2/2] [UU]
        resync=DELAYED

unused devices: <none>

Но когда я запускаю плагин, я получаю следующий вывод (утверждая, что все диски синхронизированы):

# munin-run raid
md2.value 100
md2_rebuild.value 100
md1.value 100
md1_rebuild.value 100
md0.value 100
md0_rebuild.value 100

В следующих строках я понимаю (я не программист), что во время выполнения кода $pct >= 100, и поэтому $rpct устанавливается на 100 (это мой вывод для всех массивов рейдов). Итак, какие значения представляют $nact и $nmem в моем выводе cat /proc/mdstat? Это помогло бы мне выяснить, почему $pct >= 100.

my $pct = 100 * $nact / $nmem;
        my $rpct = 100;
        if ( $pct < 100 ) {
        my @output = `/sbin/mdadm -D /dev/$dev | grep Rebuild`;
        if( $output[0] =~ /([0-9]+)% complete/ ) {
            $rpct = $1;
        } else {
            $rpct = 0;
        }

Я думаю, что это регулярное выражение содержит ответ, но, как я уже сказал, я не программист: P

while ($text =~ /(md\d+)\s+:\s+active\s+(\(auto-read-only\)\s+|)(\w+)\s+(.*)\n.*\[(\d+)\/(\d+)]\s+\[(\w+)]/ ) {
    my($dev,$dummy,$type,$members,$nmem,$nact,$status) = ($1,$2,$3,$4,$5,$6,$7);

Заранее спасибо :-)


person George Tasioulis    schedule 03.06.2012    source источник


Ответы (1)


изменить это:

if ( $pct < 100 ) {

к этому:

if ( $pct <= 100 ) {

и убедитесь, что вы запускаете плагин как root

person Gage    schedule 16.03.2013