Мониторинг. · 2 min read · Oct 18, 2025

Мониторинг OpenStack Swift с Opsview

Мониторинг OpenStack Swift с Opsview

В качестве отправной точки мы проведем проверку “фронтальной двери”, так как это должно работать независимо от того, какую реализацию Swift вы используете.

Обратите внимание, что мы используем версию аутентификации 2.0 с Keystone, а не tempauth.

Следующие шаги предполагают, что у вас уже настроены и работают как сервер Opsview, так и объектное хранилище OpenStack (Swift).

Предварительные задачи настройки

Машина, выполняющая проверку, должна иметь клиент Swift и агент Opsview. Если вы планируете мониторить с сервера прокси Swift, вам нужен только последний; если вы планируете выполнять проверки с вашего сервера Opsview, тогда вам понадобится первый.

Установка клиента Swift

Это требует наличия установленного Python – скачайте исходный код с:

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

sudo python setup.py install

(для обоих)

Установка агента Opsview на 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

Получение проверки

Детали плагина находятся здесь:
http://exchange.nagios.org/directory/Plugins/Clustering-and-High-2DAvailability/check_swift/details

Прямая ссылка для скачивания:
http://exchange.nagios.org/components/com_mtree/attachment.php?link_id=3589&cf_id=30

Поместите это в /usr/local/nagios/libexec (на агенте Opsview) и сделайте файл исполняемым (

chmod +x check_swift

) и принадлежащим nagios (

chmod nagios:nagios check_swift

).

Переменные окружения

Если у вас еще не установлены переменные окружения ST_AUTH (арендатор), ST_USER и ST_KEY, то вам может понадобиться изменить проверку соответственно (в соответствии с следующим диффом):

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

Настройка NRPE

Хотя вы можете запустить проверку с вашего сервера Opsview (если установите клиент Swift), скорее всего, она будет выполняться на агенте Opsview через NRPE.

Поэтому нам нужно добавить команду проверки службы в конфигурацию NRPE на агенте 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

Настройка проверки

На вашем сервере Opsview вам нужно будет определить новую проверку службы, Рисунок 1 показывает завершенный пример.

Рисунок 1 – Определение проверки службы

Если вам нравится копировать и вставлять, аргументы для check_nrpe:

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

Замените значения по мере необходимости или переопределите их на уровне хоста.

Проверка в действии

Рисунок 2 показывает представление проверки службы на уровне хоста ( обратите внимание, что, похоже, он игнорирует значение -c container).

Рисунок 2 – Результаты проверки службы

Вот и все, быстрое и простое базовое мониторинг OpenStack Swift.

Устранение неполадок

Если это не работает, сначала проверьте, можете ли вы выполнить загрузку с помощью клиента swift:

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

Второй тест – проверить, возвращает ли плагин Nagios код выхода ноль:

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

Обратите внимание, что плагин перенаправляет вывод в /dev/null, поэтому вам может понадобиться изменить копию скрипта, чтобы вы могли видеть сообщения об ошибках swift, если этот шаг не удался.

Наконец, протестируйте 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'

Опубликовано: Брайан Кинг

Share: X/Twitter LinkedIn

Get new posts in your inbox

No spam. Unsubscribe anytime.