Ceilometer использование

Обзор

Службы сбора данных телеметрии предоставляют следующие функции:

  • Эффективно опрашивает данные измерений, связанные с услугами OpenStack.
  • Собирает данные о событиях и измерениях, отслеживая уведомления, отправленные службами.
  • Публикует собранные данные для различных целей, включая хранилища данных и очереди сообщений.

Служба телеметрии состоит из следующих компонентов:

  1. Вычислительный агент ( ceilometer-agent-compute)

Запускается на каждом вычислительном узле и опрашивает статистику использования ресурсов.

  1. Центральный агент ( ceilometer-agent-central)

Запускается на сервере центрального управления для опроса статистики использования ресурсов для ресурсов, не привязанных к экземплярам или вычислительным узлам. Можно запустить несколько агентов для горизонтального масштабирования службы.

  1. Агент уведомления ( ceilometer-agent-notification)

Работает на сервере (серверах) центрального управления и использует сообщения из очередей сообщений для создания данных о событиях и измерениях. Затем данные публикуются для определенных целей. По умолчанию данные передаются в Gnocchi .

Эти службы взаимодействуют с помощью шины обмена сообщениями OpenStack. Данные облакомера предназначены для публикации в различных конечных точках для хранения и анализа.

Установка на контроллер (контейнер)

apt-get update
apt-get install gnocchi-api gnocchi-metricd python-gnocchiclient
gnocchi-upgrade
apt-get install ceilometer-agent-notification ceilometer-agent-central
ceilometer-upgrade --skip-metering-database
groupadd -g 111 libvirt
useradd -G libvirt ceilometer
useradd -G nova ceilometer

Установка gnocchi

cd /opt
git clone https://github.com/gnocchixyz/gnocchi.git --depth=1 /opt/gnocchi
pip install wheel
pip install setuptools
pip install -c http://git.openstack.org/cgit/openstack/requirements/plain/upper-constraints.txt?h=stable/pike /opt/gnocchi

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

pip install python-<project>client
  • barbican - Key Manager Service API
  • ceilometer - Telemetry API
  • cinder - Block Storage API and extensions
  • cloudkitty - Rating service API
  • designate - DNS service API
  • fuel - Deployment service API
  • glance - Image service API
  • gnocchi - Telemetry API v3
  • heat - Orchestration API
  • keystone - Identity service API and extensions
  • magnum - Containers service API
  • manila - Shared file systems API
  • mistral - Workflow service API
  • monasca - Monitoring API
  • murano - Application catalog API
  • neutron - Networking API
  • nova - Compute API and extensions
  • sahara - Data Processing API
  • senlin - Clustering service API
  • swift - Object Storage API
  • trove - Database service API

Ставим клиента ceilometer и gnocchi

pip install python-ceilometerclient
pip install python-gnocchiclient

Интеграция с Cinder

Добавить в /etc/cinder/cinder.conf

[oslo_messaging_notifications]
...
driver = messagingv2

Включите периодическую статистику использования, относящуюся к блочному хранилищу. Чтобы использовать ее, нужно запустить эту команду в следующем формате:

cinder-volume-usage-audit  --start_time='2022-01-17 00:00:00' --end_time='2022-02-05 23:00:00' --send_actions
2022-02-05 22:38:51.570 2050 INFO cinder [req-3115d246-8248-49f1-9f7d-905f577c79d1 - - - - -] Starting volume usage audit
2022-02-05 22:38:51.570 2050 INFO cinder [req-3115d246-8248-49f1-9f7d-905f577c79d1 - - - - -] Creating usages for 2022-01-17 00:00:00+00:00 until 2022-02-05 23:00:00+00:00
2022-02-05 22:38:51.803 2050 INFO cinder [req-3115d246-8248-49f1-9f7d-905f577c79d1 - - - - -] Found 169 volumes
2022-02-05 22:39:00.512 2050 INFO cinder [req-3115d246-8248-49f1-9f7d-905f577c79d1 - - - - -] Found 0 snapshots
2022-02-05 22:39:00.523 2050 INFO cinder [req-3115d246-8248-49f1-9f7d-905f577c79d1 - - - - -] Found 0 backups
2022-02-05 22:39:00.523 2050 INFO cinder [req-3115d246-8248-49f1-9f7d-905f577c79d1 - - - - -] Volume usage audit completed

Добавить в cron для периодического запуска:

*/15 * * * * /usr/local/bin/cinder-volume-usage-audit --send_actions

Установка координатора Redis

По умолчанию используется координатор file. Но он не поддерживает нужную нам функциональность.

2022-02-05 23:34:37.222 115704 INFO gnocchi.service [-] Gnocchi version 3.1.16
2022-02-05 23:34:44.410 116038 WARNING gnocchi.cli [-] Configured coordination driver does not support required functionality. Coordination is disabled.: NotImplemented

Необходимо установить и настроить redis.

Проверка работы

gnocchi resource list  --type image
IMAGE_ID=$(glance image-list | grep 'cirros' | awk '{ print $2 }')
glance image-download $IMAGE_ID > /tmp/cirros.img

Ошибка в логе gnocchi-metricd.log

 ERROR gnocchi.cli TypeError: __init__() got an unexpected keyword argument 'encoding'

Ставим plotly

pip install plotly

Литература

  1. Официальное руководство по установке ceilometer: https://docs.openstack.org/ceilometer/pike/install/