Monitoramento · 2 min read · Oct 18, 2025

Monitorando OpenStack Swift Com Opsview

Monitorando OpenStack Swift Com Opsview

Como ponto de partida, realizaremos uma verificação de ‘porta da frente’, pois isso deve funcionar independentemente da implementação do Swift que você está usando.

Note que estamos usando a versão de autenticação 2.0 com Keystone em vez de tempauth.

Os seguintes pressupõem que você já tem tanto o Servidor Opsview quanto o Armazenamento de Objetos OpenStack (Swift) configurados e em execução.

Tarefas de configuração pré-requisito

A máquina que executa a verificação precisa ter um cliente Swift e um Agente Opsview. Se você planeja monitorar a partir de um servidor proxy Swift, você deve precisar apenas do último; se você planeja executar as verificações a partir do seu servidor Opsview, então você precisará do primeiro.

Instalando o cliente Swift

Isso depende de ter o Python instalado – pegue a fonte de:

https://github.com/openstack/python-swiftclient.git
https://github.com/openstack/python-keystoneclient.git

sudo python setup.py install

(por ambos)

Instalando o Agente Opsview no Ubuntu

echo "deb http://downloads.opsview.com/opsview-core/latest/apt precise  
main" > /etc/apt/sources.list.d/opsview-core.list  
apt-get update  
apt-get install opsview-agent

Obtendo a verificação

Os detalhes do plugin estão aqui:
http://exchange.nagios.org/directory/Plugins/Clustering-and-High-2DAvailability/check_swift/details

O link de download direto:
http://exchange.nagios.org/components/com_mtree/attachment.php?link_id=3589&cf_id=30

Coloque isso em /usr/local/nagios/libexec (no Agente Opsview) e torne o arquivo executável (

chmod +x check_swift

) e de propriedade do nagios (

chmod nagios:nagios check_swift

).

Variáveis de ambiente

Se você ainda não tiver as variáveis de ambiente ST_AUTH (tenant), ST_USER e ST_KEY definidas, então você pode querer modificar a verificação de acordo (conforme o seguinte diff):

diff check_swift.orig check_swift
52c52  
< export OS_AUTH_URL=$OPTARG  
> export ST_AUTH=$OPTARG  
55c55  
< export OS_USERNAME=$OPTARG  
---  
> export ST_USER=$OPTARG  
58c58  
< export OS_PASSWORD=$OPTARG  
---  
> export ST_KEY=$OPTARG

Configurando o NRPE

Embora você possa executar a verificação a partir do seu servidor Opsview (se instalar o cliente Swift), é mais provável que ela seja executada em um Agente Opsview via NRPE.

Portanto, precisamos adicionar um comando de verificação de serviço à configuração do NRPE no Agente Opsview:

echo "command[check_swift]=/usr/local/nagios/libexec/check_swift \$ARG1\$" >> /usr/local/nagios/etc/nrpe_local/override.cfg  
/etc/init.d/opsview-agent restart

Configurando a verificação

No seu servidor Opsview, você precisará definir uma nova Verificação de Serviço, a Figura 1 mostra um exemplo completo.

Figura 1 – Definição da verificação de serviço

Se você gosta de copiar e colar, os argumentos para check_nrpe são:

-H \$HOSTADDRESS\$ -c check_swift -a '-V 2 -U admin:admin -A  
http://127.0.0.1:5000/v2.0/ -K secrete -c container'

Substitua os valores conforme aplicável ou sobrescreva-os no nível do host.

A verificação em ação

A Figura 2 mostra a visão em nível de host da verificação de serviço (note que parece estar ignorando o valor -c container).

Figura 2 – Resultados da verificação de serviço

Aí está, monitoramento básico rápido e fácil do OpenStack Swift.

Solução de problemas

Se não funcionar, primeiro verifique se você pode realizar um upload usando o cliente swift:

swift -V 2 -U admin:admin -A http://127.0.0.1:5000/v2.0/ -K secrete upload  
container check_swift

O segundo teste é verificar se o plugin Nagios retorna um código de saída zero:

check_swift -V 2 -U admin:admin -A http://127.0.0.1:5000/v2.0/ -K secrete  
-c container  
echo \$?

Note que o plugin redireciona a saída para /dev/null, então você pode precisar ajustar uma cópia do script para que possa ver as mensagens de erro do swift se esta etapa falhar.

Por fim, teste o NRPE:

check_nrpe -H localhost -c check_swift -a '-V 2 -U admin:admin -A  
http://127.0.0.1:5000/v2.0/ -K secrete -c container -s 128'

Postado por: Brian King

Share: X/Twitter LinkedIn

Receba novas postagens na sua caixa de entrada

Sem spam. Cancele a assinatura a qualquer momento.