Monitoreo · 2 min read · Oct 18, 2025

Monitoreo de OpenStack Swift con Opsview

Monitoreo de OpenStack Swift con Opsview

Como punto de partida, realizaremos una verificación de ‘puerta de entrada’, ya que esto debería funcionar sin importar qué implementación de Swift estés utilizando.

Ten en cuenta que estamos utilizando la versión de autenticación 2.0 con Keystone en lugar de tempauth.

Lo siguiente asume que ya tienes configurados y en funcionamiento tanto el servidor Opsview como el almacenamiento de objetos OpenStack (Swift).

Tareas de configuración previas

La máquina que ejecuta la verificación necesita tener un cliente Swift y un agente Opsview. Si planeas monitorear desde un servidor proxy de Swift, solo necesitarás este último; si planeas ejecutar las verificaciones desde tu servidor Opsview, entonces necesitarás el primero.

Instalando el cliente Swift

Esto depende de tener Python instalado; obtén el código fuente de:

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

sudo python setup.py install

(por ambos)

Instalando el Agente Opsview en 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

Obteniendo la verificación

Los detalles del plugin están aquí:
http://exchange.nagios.org/directory/Plugins/Clustering-and-High-2DAvailability/check_swift/details

El enlace de descarga directa:
http://exchange.nagios.org/components/com_mtree/attachment.php?link_id=3589&cf_id=30

Coloca esto en /usr/local/nagios/libexec (en el Agente Opsview) y haz que el archivo sea ejecutable (

chmod +x check_swift

) y propiedad de nagios (

chmod nagios:nagios check_swift

).

Variables de entorno

Si aún no tienes configuradas las variables de entorno ST_AUTH (inquilino), ST_USER y ST_KEY, entonces es posible que desees modificar la verificación en consecuencia (según el siguiente 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 NRPE

Aunque podrías ejecutar la verificación desde tu servidor Opsview (si instalas el cliente Swift), es más probable que se ejecute en un Agente Opsview a través de NRPE.

Por lo tanto, necesitamos agregar un comando de verificación de servicio a la configuración de NRPE en el 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 la verificación

En tu servidor Opsview, necesitarás definir una nueva Verificación de Servicio; la Figura 1 muestra un ejemplo completado.

Figura 1 – Definición de verificación de servicio

Si te gusta copiar y pegar, los argumentos para check_nrpe son:

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

Sustituye los valores según corresponda o sobrepásalos a nivel de host.

La verificación en acción

La Figura 2 muestra la vista a nivel de host de la verificación de servicio (ten en cuenta que parece estar ignorando el valor -c container).

Figura 2 – Resultados de la verificación de servicio

Ahí lo tienes, monitoreo básico rápido y fácil de OpenStack Swift.

Solución de problemas

Si no funciona, primero verifica que puedes realizar una carga utilizando el cliente swift:

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

La segunda prueba es verificar que el plugin de Nagios devuelve un código de salida cero:

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

Ten en cuenta que el plugin redirige la salida a /dev/null, por lo que es posible que necesites ajustar una copia del script para que puedas ver los mensajes de error de swift si este paso falla.

Por último, prueba 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'

Publicado por: Brian King

Share: X/Twitter LinkedIn

Recibe nuevas publicaciones en tu bandeja de entrada.

No spam. Cancela la suscripción en cualquier momento.