Использование функции выборочного ведения журнала с действием скрипта в Azure HDInsight

Журналы Azure Monitor — это служба Azure Monitor, которая наблюдает за облачными и локальными средами. Мониторинг помогает поддерживать их доступность и производительность.

Журналы Azure Monitor собирают данные, создаваемые ресурсами в облачных и локальных средах, а также другими средствами мониторинга. На основе этой информации служба предоставляет аналитические сведения, используя несколько источников. Для получения аналитики включите функцию выборочного ведения журнала с помощью действия скрипта для HDInsight на портале Azure.

Сведения о выборочном ведении журнала

Выборочное ведение журнала является элементом общей системы мониторинга Azure. После подключения кластера к рабочей области Log Analytics и включения выборочного ведения журнала вы можете просматривать журналы и метрики, такие как журналы безопасности HDInsight, Yarn Resource Manager и системные метрики. Можно отслеживать рабочие нагрузки и видеть, как они влияют на стабильность кластера.

Выборочное ведение журнала позволяет включить или отключить все таблицы в рабочей области Log Analytics либо включить лишь некоторые таблицы. Вы можете настроить тип источника для каждой таблицы.

Примечание.

В случае повторной установки Log Analytics в кластере вам потребуется снова отключить все таблицы и типы журналов. Повторная установка восстанавливает исходное состояние для всех файлов конфигурации.

Рекомендации по действиям скрипта

  • Система мониторинга использует управляющую программу сервера метаданных (агент мониторинга) и Fluentd для сбора журналов на базе единого уровня ведения журнала.
  • Для выборочного ведения журнала применяется действие скрипта отключения или включения таблиц и соответствующих типов журналов. Поскольку при этом не открываются новые порты и не изменяются существующие параметры безопасности, изменения в аспекте безопасности отсутствуют.
  • Действие скрипта выполняется параллельно на всех указанных узлах и изменяет файлы конфигурации для отключения или включения таблиц и соответствующих типов журналов.

Необходимые компоненты

  • Рабочая область Log Analytics. Рабочую область можно представить как уникальную среду журналов Azure Monitor с собственным репозиторием данных, источниками данных и решениями. Инструкции см. в руководстве по созданию рабочей области Log Analytics.
  • Кластер Azure HDInsight. В настоящее время можно использовать функцию выборочного ведения журнала со следующими типами кластеров HDInsight:
    • Hadoop
    • HBase
    • Интерактивный запрос
    • Spark

Инструкции по созданию кластера HDInsight см. в руководстве по началу работы с Azure HDInsight.

Включение и отключение журналов с помощью действия скрипта для нескольких таблиц и типов журналов

  1. Перейдите к действиям скрипта в кластере и нажмите кнопку "Отправить новую ", чтобы начать процесс создания действия скрипта.

    Screenshot that shows the button for starting the process of creating a script action.

    Откроется панель Отправка действия скрипта.

    Screenshot that shows the pane for submitting a script action.

  2. В поле типа скрипта выберите Пользовательский.

  3. Присвойте скрипту имя. Например, Отключение двух таблиц и двух источников.

  4. URI скрипта Bash должен быть ссылкой на файл selectiveLoggingScript.sh.

  5. Выберите все типы узлов, которые относятся к кластеру. Возможные варианты: головной узел, рабочий узел и узел ZooKeeper.

  6. Задайте параметры. Например:

    • Spark: spark HDInsightSparkLogs:SparkExecutorLog --disable
    • Интерактивный запрос: interactivehive HDInsightSparkLogs:SparkExecutorLog --enable
    • Hadoop: hadoop HDInsightSparkLogs:SparkExecutorLog --disable
    • HBase: hbase HDInsightSparkLogs: HDInsightHBaseLogs --enable

    Дополнительные сведения см. в разделе Синтаксис параметров.

  7. Выберите Создать.

  8. Через несколько минут рядом с журналом действий скрипта появится зеленая галочка. Это означает, что скрипт успешно запущен.

    Screenshot that shows a successful run of a script to enable tables and log types.

Изменения будут отображаться в рабочей области Log Analytics.

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

Изменения в рабочей области Log Analytics не отображаются

Действие скрипта отправлено, но изменения в рабочей области Log Analytics отсутствуют.

  1. В разделе Панели мониторинга выберите домашнюю страницу Ambari, чтобы проверить информацию для отладки.

    Screenshot that shows the location of the Ambari home dashboard.

  2. Нажмите кнопку Параметры.

    Screenshot that shows the Settings button.

  3. Выберите последний запуск скрипта вверху списка фоновых операций.

    Screenshot that shows background operations.

  4. Проверьте состояние выполнения скрипта на всех узлах по отдельности.

    Screenshot that shows the script run status for hosts.

  5. Проверьте правильность синтаксиса параметров в соответствующем разделе.

  6. Проверьте, подключена ли рабочая область Log Analytics к кластеру и включен ли мониторинг Log Analytics.

  7. Убедитесь, что для выполненного действия скрипта установлен флажок Сохранить этот скрипт для повторного выполнения при добавлении новых узлов в кластер.

    Screenshot that shows the checkbox for persisting a script action.

  8. Проверьте, не был ли недавно добавлен в кластер новый узел.

    Примечание.

    Для выполнения в последнем кластере скрипт должен сохраняться.

  9. Убедитесь, что выбраны все необходимые типы узлов для действия скрипта.

    Screenshot that shows selected node types.

Сбой действия скрипта

Для действия скрипта отображается состояние "Сбой" в журнале действий скрипта.

  1. Проверьте правильность синтаксиса параметров в соответствующем разделе.
  2. Проверьте правильность ссылки для скрипта. Ее значение должно быть https://hdiconfigactions.blob.core.windows.net/log-analytics-patch/selectiveLoggingScripts/selectiveLoggingScript.sh.

Имена таблиц

Кластер Spark

Указанные ниже имена таблиц связаны с разными типами журналов (источников) в таблицах Spark.

Номер источника Имя таблицы Типы журналов Description
1. Оповещения HDInsightAmbariCluster Типы журналов отсутствуют Эта таблица содержит оповещения кластера Ambari с каждого узла в кластере (за исключением граничных узлов). Каждое оповещение является записью в этой таблице.
2. Метрики HDInsightAmbariSystem Типы журналов отсутствуют Эта таблица содержит системные метрики, собранные из Ambari. Теперь метрики поступают с каждого узла в кластере (за исключением граничных узлов), а не только с двух головных узлов. Каждая метрика теперь является столбцом и регистрируется один раз для каждой записи.
3. HDInsightHadoopAnd YarnLogs Головной узел: MRJobSummary, Resource Manager, TimelineServer, рабочий узел: NodeManager Эта таблица содержит все журналы, созданные на основе платформ Hadoop и YARN.
4. HDInsightSecurityLogs AmbariAuditLog, AuthLog Эта таблица содержит записи из журналов аудита и проверки подлинности Ambari.
5. HDInsightSparkLogs Головной узел: JupyterLog, LivyLog, SparkThriftDriverLog, рабочий узел: SparkExecutorLog, SparkDriverLog Эта таблица содержит все журналы, связанные со Spark и соответствующими компонентами, — Livy и Jupyter.
6. HDInsightHadoopAnd YarnMetrics Типы журналов отсутствуют Эта таблица содержит метрики JMX из платформ Hadoop и YARN. Она содержит те же метрики JMX, что и старые таблицы пользовательских журналов, а также дополнительные метрики, которые мы посчитали важными. Мы добавили метрики сервера временной шкалы, диспетчера узлов и сервера журнала заданий. Таблица содержит по одной метрике на запись.
7. HDInsightOozieLogs Oozie, Эта таблица содержит все журналы, созданные на основе платформы Oozie.

Кластер Interactive Query

Указанные ниже имена таблиц связаны с разными типами журналов (источников) в таблицах Interactive Query.

Номер источника Имя таблицы Типы журналов Description
1. HDInsightAmbariClusterAlerts Типы журналов отсутствуют Эта таблица содержит оповещения кластера Ambari с каждого узла в кластере (за исключением граничных узлов). Каждое оповещение является записью в этой таблице.
2. Метрики HDInsightAmbariSystem Типы журналов отсутствуют Эта таблица содержит системные метрики, собранные из Ambari. Теперь метрики поступают с каждого узла в кластере (за исключением граничных узлов), а не только с двух головных узлов. Каждая метрика теперь является столбцом и регистрируется один раз для каждой записи.
3. HDInsightHadoopAndYarnLogs Головной узел: MRJobSummary, Resource Manager, TimelineServer, рабочий узел: NodeManager Эта таблица содержит все журналы, созданные на основе платформ Hadoop и YARN.
4. HDInsightHadoopAndYarnMetrics Типы журналов отсутствуют Эта таблица содержит метрики JMX из платформ Hadoop и YARN. Она содержит те же метрики JMX, что и старые таблицы пользовательских журналов, а также дополнительные метрики, которые мы посчитали важными. Мы добавили метрики сервера временной шкалы, диспетчера узлов и сервера журнала заданий. Таблица содержит по одной метрике на запись.
5. HDInsightHiveAndLLAPLogs Головной узел: InteractiveHiveHSILog, InteractiveHiveMetastoreLog, ZeppelinLog Эта таблица содержит журналы, созданные на базе Hive, LLAP и связанных с ними компонентов — WebHCat и Zeppelin.
6. HDInsightHiveAndLLAPmetrics Типы журналов отсутствуют Эта таблица содержит метрики JMX из платформ Hive и LLAP. Она содержит те же метрики JMX, что и старые таблицы пользовательских журналов. Таблица содержит по одной метрике на запись.
7. HDInsightHiveTezAppStats Типы журналов отсутствуют
8. HDInsightSecurityLogs Головной узел: AmbariAuditLog, AuthLog, узел ZooKeeper, рабочий узел: AuthLog Эта таблица содержит записи из журналов аудита и проверки подлинности Ambari.

Кластер HBase

Указанные ниже имена таблиц связаны с разными типами журналов (источников) в таблицах HBase.

Номер источника Имя таблицы Типы журналов Description
1. HDInsightAmbariClusterAlerts Другие типы журналов отсутствуют Эта таблица содержит оповещения кластера Ambari с каждого узла в кластере (за исключением граничных узлов). Каждое оповещение является записью в этой таблице.
2. Метрики HDInsightAmbariSystem Другие типы журналов отсутствуют Эта таблица содержит системные метрики, собранные из Ambari. Теперь метрики поступают с каждого узла в кластере (за исключением граничных узлов), а не только с двух головных узлов. Каждая метрика теперь является столбцом и регистрируется один раз для каждой записи.
3. HDInsightHadoopAndYarnLogs Головной узел: MRJobSummary, Resource Manager, TimelineServer, рабочий узел: NodeManager Эта таблица содержит все журналы, созданные на основе платформ Hadoop и YARN.
4. HDInsightSecurityLogs Головной узел: AmbariAuditLog, AuthLog, рабочий узел: AuthLog, узел ZooKeeper: AuthLog Эта таблица содержит записи из журналов аудита и проверки подлинности Ambari.
5. HDInsightHBaseLogs Головной узел: HDFSGarbageCollectorLog, HDFSNameNodeLog, рабочий узел: PhoenixServerLog, HBaseRegionServerLog, HBaseRestServerLog, узел ZooKeeper: HBaseMasterLog Эта таблица содержит журналы из HBase и соответствующих компонентов — Phoenix и HDFS.
6. HDInsightHBaseMetrics Типы журналов отсутствуют Эта таблица содержит метрики JMX из HBase. Она содержит те же метрики JMX, что и таблицы, указанные в столбце старой схемы. В отличие от старых таблиц, здесь каждая строка содержит одну метрику.
7. Метрики HDInsightHadoopAndYarn Типы журналов отсутствуют Эта таблица содержит метрики JMX из платформ Hadoop и YARN. Она содержит те же метрики JMX, что и старые таблицы пользовательских журналов, а также дополнительные метрики, которые мы посчитали важными. Мы добавили метрики сервера временной шкалы, диспетчера узлов и сервера журнала заданий. Таблица содержит по одной метрике на запись.

Кластер Hadoop

Указанные ниже имена таблиц связаны с разными типами журналов (источников) в таблицах Hadoop.

Номер источника Имя таблицы Типы журналов Description
1. HDInsightAmbariClusterAlerts Типы журналов отсутствуют Эта таблица содержит оповещения кластера Ambari с каждого узла в кластере (за исключением граничных узлов). Каждое оповещение является записью в этой таблице.
2. Метрики HDInsightAmbariSystem Типы журналов отсутствуют Эта таблица содержит системные метрики, собранные из Ambari. Теперь метрики поступают с каждого узла в кластере (за исключением граничных узлов), а не только с двух головных узлов. Каждая метрика теперь является столбцом и регистрируется один раз для каждой записи.
3. HDInsightHadoopAndYarnLogs Головной узел: MRJobSummary, Resource Manager, TimelineServer, рабочий узел: NodeManager Эта таблица содержит все журналы, созданные на основе платформ Hadoop и YARN.
4. HDInsightHadoopAndYarnMetrics Типы журналов отсутствуют Эта таблица содержит метрики JMX из платформ Hadoop и YARN. Она содержит те же метрики JMX, что и старые таблицы пользовательских журналов, а также дополнительные метрики, которые мы посчитали важными. Мы добавили метрики сервера временной шкалы, диспетчера узлов и сервера журнала заданий. Таблица содержит по одной метрике на запись.
5. HDInsightHiveAndLLAPLogs Головной узел: HiveMetastoreLog, HiveServer2Log, WebHcatLog Эта таблица содержит журналы, созданные на базе Hive, LLAP и связанных с ними компонентов — WebHCat и Zeppelin.
6. Метрики HDInsight для Hive и LLAP Типы журналов отсутствуют Эта таблица содержит метрики JMX из платформ Hive и LLAP. Она содержит те же метрики JMX, что и старые таблицы пользовательских журналов. Таблица содержит по одной метрике на запись.
7. Журналы безопасности HDInsight Головной узел: AmbariAuditLog, AuthLog, узел ZooKeeper: AuthLog Эта таблица содержит записи из журналов аудита и проверки подлинности Ambari.

Синтаксис параметров

Параметры определяют тип кластера, имена таблиц, имена источников и действие.

Screenshot that shows the parameter syntax box.

Параметр содержит три части:

  • Тип кластера
  • Таблицы и типы журналов
  • Действие (--disable или --enable)

Синтаксис для нескольких таблиц

При наличии нескольких таблиц они разделяются запятыми. Например:

spark HDInsightSecurityLogs, HDInsightAmbariSystemMetrics --disable

hbase HDInsightSecurityLogs, HDInsightAmbariSystemMetrics --enable

Синтаксис для нескольких типов источников или типов журналов

При наличии нескольких типов источников или типов журналов они разделяются пробелами.

Чтобы отключить источник, укажите имя таблицы, в которой находятся типы журналов, затем двоеточие, а затем — реальное имя типа журнала.

TableName : LogTypeName

Например, предположим, что spark HDInsightSecurityLogs — таблица с двумя типами журналов: AmbariAuditLog и AuthLog. Чтобы отключить оба типа журналов, следует использовать такой синтаксис:

spark HDInsightSecurityLogs: AmbariAuditLog AuthLog --disable

Синтаксис для нескольких типов таблиц и источников

Если необходимо отключить две таблицы и два типа источника, используйте следующий синтаксис:

  • Spark: тип журнала InteractiveHiveMetastoreLog в таблице HDInsightHiveAndLLAPLogs
  • Hbase: тип журнала InteractiveHiveHSILog в таблице HDInsightHiveAndLLAPLogs
  • Hadoop: таблица HDInsightHiveAndLLAPMetrics
  • Hadoop: таблица HDInsightHiveTezAppStats

Таблицы разделяются запятыми. Источники обозначаются двоеточием после имени таблицы, в которой они находятся.

Правильный синтаксис параметров для таких случаев будет иметь следующий вид:

interactivehive HDInsightHiveAndLLAPLogs: InteractiveHiveMetastoreLog, HDInsightHiveAndLLAPMetrics, HDInsightHiveTezAppStats, HDInsightHiveAndLLAPLogs: InteractiveHiveHSILog --enable 

Следующие шаги