Перевод статьи “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