Não é possível gerar relatórios de cluster no OpsCenter.

2

Não consigo gerar um relatório de cluster no OpsCenter. O servidor e os clientes estão sendo executados no CentOS 5.9, 64bit. Versões de software:

  • opscenter-3.2.2-1
  • opscenter-agent-3.2.2-1

Aqui está o erro relatado no navegador da Web:

There was an error generating the cluster report: u'/dev/mapper/Staging3SSTables_vol1'

Esse é o sistema de arquivos no terceiro nó da cassandra nesse cluster. Esse sublinhado deve ser um hífen:

$ ls -la /dev/mapper/Staging3SSTables_vol1
ls: /dev/mapper/Staging3SSTables_vol1: No such file or directory

$ ls -la /dev/mapper/Staging3SSTables-vol1
brw-rw---- 1 root disk 253, 0 Oct  7 13:56 /dev/mapper/Staging3SSTables-vol1

$ df -h /dev/mapper/Staging3SSTables-vol1
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/Staging3SSTables-vol1
                      551G  199M  522G   1% /var/lib/cassandra/data

Eu não recebo este erro para os outros nós no cluster.

O que poderia estar causando isso?

Aqui está a saída completa do erro de opscenterd.log :

2013-10-10 08:48:37-0700 [] ERROR: There was an error while generating a cluster report. Traceback (most recent call last):
          File "/usr/lib/python2.6/site-packages/opscenterd/StatsReporter.py", line 132, in generateReport
          File "/usr/share/opscenter/lib/py-redhat/2.6/shared/amd64/twisted/internet/defer.py", line 1018, in _inlineCallbacks
            result = result.throwExceptionIntoGenerator(g)
          File "/usr/share/opscenter/lib/py-redhat/2.6/shared/amd64/twisted/python/failure.py", line 349, in throwExceptionIntoGenerator
            return g.throw(self.type, self.value, self.tb)
          File "/usr/lib/python2.6/site-packages/opscenterd/StatsReporter.py", line 148, in createClusterReport
          File "/usr/share/opscenter/lib/py-redhat/2.6/shared/amd64/twisted/internet/defer.py", line 1018, in _inlineCallbacks
            result = result.throwExceptionIntoGenerator(g)
          File "/usr/share/opscenter/lib/py-redhat/2.6/shared/amd64/twisted/python/failure.py", line 349, in throwExceptionIntoGenerator
            return g.throw(self.type, self.value, self.tb)
          File "/usr/lib/python2.6/site-packages/opscenterd/StatsReporter.py", line 109, in format_node
          File "/usr/share/opscenter/lib/py-redhat/2.6/shared/amd64/twisted/internet/defer.py", line 542, in _runCallbacks
            current.result = callback(current.result, *args, **kw)
          File "/usr/lib/python2.6/site-packages/opscenterd/Cluster.py", line 484, in sumDiskSpace
        KeyError: u'/dev/mapper/Staging3SSTables_vol1'

2013-10-10 08:48:37-0700 [] ERROR: Error generating the cluster report: Traceback (most recent call last):
          File "/usr/lib/python2.6/site-packages/opscenterd/WebServer.py", line 2243, in ClusterReportController
        KeyError: u'/dev/mapper/Staging3SSTables_vol1'
    
por Gene 10.10.2013 / 17:59

1 resposta

2

O que está acontecendo aqui é que o opscenterd está dando um loop por partições que contêm quaisquer diretórios de dados configurados a partir de cassandra.yaml e comparando-os com a saída de df --print-type --no-sync --block-size=1G --local . OpsCenter parece achar que /dev/mapper/Staging3SSTables_vol1 é uma dessas partições, o que obviamente está errado.

Fazemos alguns escapes de caracteres especiais em nomes de partições, mas - está na lista de caracteres permitidos e não escapados. Então, a menos que esse painel não seja realmente um traço, ou simplesmente haja um erro no código do OpsCenter, isso não deve causar nenhum problema.

I don't get this error for the other nodes in the cluster.

Quando esse erro ocorrer, o relatório de cluster interromperá o processamento. Portanto, se o nó incorreto for o primeiro a ser processado, os outros nós não terão a chance de ter êxito ou falhar.

    
por 17.10.2013 / 18:59

Tags