Apache Cassandra. Документация DataStax — Operations. Monitoring Cassandra. Monitoring a Cassandra cluster

Cassandra_logoПеревод статьи «Operations. Monitoring Cassandra. Monitoring a Cassandra cluster» из официальной документации DataStax.

Мониторинг кластера Cassandra

Понимание характеристик производительности вашего кластера Cassandra имеет решающее значение для диагностики проблем и планирования рабочей загрузки.
Cassandra предоставляет множество статистических данных и механизмов управления через Java Management Extensions (JMX). JMX — это технология Java, которая предоставляет инструменты для обслуживания и мониторинга приложений и служб Java. Любые статистические данные или операции, которые предоставляет приложение Java являясь JMX-объектом (MBean), могут отслеживаться или управляться с помощью JMX.

В процессе нормальной работы, Cassandra предоставляет информацию и статистические данные, которые вы можете отслеживать используя JMX-совместимые инструменты, такие как:

— Утилиты nodetool 1;
— Консоль управления DataStax OpsCenter 2;
— JConsole

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

Мониторинг кластера с иcпользованием утилит nodetool

Утилиты nodetool — это интерфейс командной строки для мониторинга и выполнения самых распространенных операций с базами данных. Утилиты входят в стандартный дистрибутив Cassandra и как правило запускаются непосредственно с самих узлов.

Утилиты nodetool поддерживают наиболее важные метрики и операции JMX и включают другие полезные команды для администрирования Cassandra. Эти утилиты наиболее часто используются для вывода суммарной информации о «кольце» и о его текущем состоянии с помощью команды «status» 3, например:

01_ops_nodetool_status1

Утилиты nodetool предоставляют команды для детального просмотра метрик по каждой таблице, метрик по серверу вообще и статистики операций сжатия SSTable (compaction).
— nodetool cfstats 4 — отображает статистику для каждой таблицы и пространства ключей;
— nodetool cfhistograms 5 — предоставляет статистику по таблице, включая задержку операций чтения и записи, размер записи, количество колонок и количество SSTable;
— nodetool netstats 6 — выводит информацию о сетевых операций и соединениях;
— nodetool tpstats 7 — предоставляет статистику о количестве активных, ожидающих и завершенных задач для каждого этапа операций пула потоков Cassandra.

DataStax OpsCenter

DataStax OpsCenter 8 — это графический пользовательский интерфейс для мониторинга и администрирования всех узлов в кластере Cassandra из одной центральной консоли. DataStax OpsCenter поставляется в комплекте с предложением по поддержке DataStax. Вы можете зарегистрироваться для получения бесплатной версии для целей разработки или для некоммерческого использования.

OpsCenter обеспечивает графическое представление данных о производительности в виде сводок, которые трудно получить с помощью других средств мониторинга. Интерфейс обеспечивает представления на основе различных временных периодов, а также возможность перехода на одиночные участки данных. В OpsCenter доступны как онлайн-данные, так данные о истории производительности кластера Cassandra или DataStax Enterprise. Метрики производительности снимаются и хранятся внутри Cassandra.

02_ops_opsc_perf_view

В OpsCenter вы можете настроить представления метрик производительности так, чтобы они удовлетворяли вашим потребностям в отслеживании данных. Администраторы также могут выполнять обычные задачи администрирования узлов из OpsCenter. Метрики внутри OpsCenter разделяются на три главных категории: метрики таблицы, метрики кластера, метрики операционной системы. Для большинства доступных метрик вы можете просматривать сводную информацию о кластере или отдельно об узле.

03_ops_opsc_metric_options

Мониторинг используя JConsole

JConsole — это JMX-совместимые утилиты для мониторинга приложений Java, таких как Cassandra. Они включены в Sun JDK 5.0 начина с версии 5.0 и выше. JConsole перехватывает метрики JMX и операции, предоставленные Cassandra и отображает их в хорошо организованном интерфейсе. Для каждого отслеживаемого узла JConsole предоставляет шесть отдельных представлений:

Overview — отображает сводную информацию о Java VM и отслеживаемых значений;

Memory — отображает информацию об использовании памяти;

Threads — отображает информацию об использовании потоков;

Classes — отображает информацию о загрузке классов;

VM Summary — отображает информацию о виртуальной машине Java (VM);

Mbeans — отображает информацию о MBeans.

Панели Overview и Memory содержат информацию, которая будет очень полезна для разработчиков Cassandra. Панель Memory позволяет сравнивать использование оперативной памяти в (heap) и вне (non-heap) кучи Java и обеспечивает возможность незамедлительного выполнения операции сбора мусора (garbage collection).

Для специфических метрик и операций Cassandra, наиболее важной панелью является MBeans. Эта панель отображает следующие JMX-объекты Cassandra:

org.apache.cassandra.db — включает кэширование, табличные метрики и операцию сжатия SSTable (compaction);

org.apache.cassandra.internal — внутренние операции сервера, относящиеся, например, к работе gossip или hinted handoff;

org.apache.cassandra.net — процессы межузлового взаимодействия, включая FailureDetector, MessagingService и StreamingService;

org.apache.cassandra.request — задачи, относящиеся к операциям чтения, записи и репликации.

Когда вы выбираете MBean в каталоге, его дискрипторы MBeanInfo и MBean отображаются справа и любые атрибуты, операции или уведомления появляются внизу. Например, при выборе и развертывании org.apache.cassandra.db для просмотра доступных действий для сводки таблицы выглядит примерно так:

04_ops_jconsole_cf_options

Если вы выбрали JConsole для мониторинга Cassandra, то вы должны знать, что JConsole потребляет значительное количество системных ресурсов. Именно по этой причине DataStax рекомендует использовать JConsole на удаленной машине, а не на том же хосте, который является узлом кластера Cassandra.

JConsole CompactionManagerMBean предоставляет метрики процесса сжатия SSTable, которые указывают когда нужно увеличить общую производительность кластера.

Оригинал статьи — Monitoring a Cassandra cluster

comments powered by HyperComments