Перевод статьи «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, например:
Утилиты 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.
В OpsCenter вы можете настроить представления метрик производительности так, чтобы они удовлетворяли вашим потребностям в отслеживании данных. Администраторы также могут выполнять обычные задачи администрирования узлов из OpsCenter. Метрики внутри OpsCenter разделяются на три главных категории: метрики таблицы, метрики кластера, метрики операционной системы. Для большинства доступных метрик вы можете просматривать сводную информацию о кластере или отдельно об узле.
Мониторинг используя 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 для просмотра доступных действий для сводки таблицы выглядит примерно так:
Если вы выбрали JConsole для мониторинга Cassandra, то вы должны знать, что JConsole потребляет значительное количество системных ресурсов. Именно по этой причине DataStax рекомендует использовать JConsole на удаленной машине, а не на том же хосте, который является узлом кластера Cassandra.
JConsole CompactionManagerMBean предоставляет метрики процесса сжатия SSTable, которые указывают когда нужно увеличить общую производительность кластера.
Оригинал статьи — Monitoring a Cassandra cluster
Notes: