Чек-лист валидации установки EVTP#

  • Проверьте работу АРМ управления Apache Flink:

    1. на узле Job Manager EVTP в файле /opt/Apache/flink/conf/flint-conf.yaml найдите значение параметра rest.bind-port;

    2. в браузере перейдите на страницу http://<адрес узла JM EVTP>:<порт из параметра rest.bind-port>. Откроется пользовательский интерфейс управления.

  • Убедитесь, что сервис Zookeeper работает корректно:

    1. Выполните команду:

      telnet <адрес узла zookeeper> 2181
      
    2. Введите ruok и нажмите клавишу Enter. Корректно работающий узел ответит imok и закроет соединение (данная проверка работает только в случае plain text соединения. Если же Zookeeper настроен на TLS соединение, то ответа от Zookeeper-а не будет).

  • Проверьте работу сервисов ZooKeeper:

    • на каждом из серверов ZooKeeper EVTP выполните команду:

      systemctl list-unit-files | grep -e zookeeper
      
    • проверьте содержимое конфигурации сервиса с помощью команды:

      cat /etc/systemd/system/zookeeper.service
      

      В частности, проверьте, что исполняемые команды в параметрах ExecStart и ExecStop ссылаются на существующие файлы.

  • Проверьте работу сервисов Kafka — на каждом из серверов EVTP выполните команду:

    systemctl list-unit-files | grep -e flink
    
  • Проверьте содержимое конфигурации сервиса с помощью команд:

    cat /etc/systemd/system/flink_jobmanager.service
    cat /etc/systemd/system/flink_taskmanager.service
    

В частности, проверьте, что исполняемые команды в параметрах ExecStart и ExecStop ссылаются на существующие файлы.

Дополнительно состояние сервисов flink можно проверить командами:

systemctl status flink_jobmanager
systemctl status link_taskmanager

Убедитесь, что в лог-файлах узлов EVTP присутствует запись об интеграции с системой аудита. Для этого на узле выполните команду:

cat /opt/Apache/flink-logs/*standalonesession*.log | grep audit

и убедитесь, что вхождение строки есть;

bash Loading audit service: ru.sbt.ss.audit.flink.FlinkHttpAuditService

Проверьте наличие и значения (если они приведены) настроек подключения к системе аудита в файле conf/flink-conf.yaml: параметры отвечающие за наcтройки аудита начинаются с: audit.service.

После установки EVTP производится настройка мониторинга на кластера EVTP. Проверка подключения мониторинга осуществляется специалистом сопровождения мониторинга с ролью Metrix monitoring admin на host, на котором установлен мониторинг, в каталоге, содержащем файлы конфигурации коллектора метрик. Необходимо проверить:

  • что связь с EVTP настроена. Для этого в файле <имя домена>-flink-metrics.properties необходимо проверить наличие параметров: no_edFlinkTaskManagersJmx=___getJmxInputConfigFromStr___<список хост:порт для подключения к task менеджерам Flink через JMX> no_edFlinkJobManagersJmx=___getJmxInputConfigFromStr___<список хост:порт для подключения к job менеджерам Flink через JMX> Например: no_edFlinkTaskManagersJmx=___getJmxInputConfigFromStr___10.25.68.8:8790 no_edFlinkJobManagersJmx=___getJmxInputConfigFromStr___10.25.68.9:8789

  • что запущен коллектор. Для этого выполните команду: ps aux | grep "<имя домена>-flink-metrics.properties"

В ответе должна прийти строка с параметрами запуска.

Пример команды: ps aux | grep "Domain-flink-metrics.properties" Пример ответа: wfadmin  <pid> 10.1  8.1 4983936 655956 ?      Sl   <date>:41 java -Djava.security.egd=file:/dev/./urandom -Dlogback.configurationFile=path/to/logback.xml -Xms128M -Xmx1G -classpath path/to/lib/* ru.sbt.fpss.monitoring.collector.Main -c ./path/to/flink-metrics-application.conf -m ./config/flink-metrics.conf -d /path/to/Domain-flink-metrics.properties -l /path/to/logback-Domain-flink-metrics.xml wfadmin  23863  0.0  0.0 113100  1260 pts/40   S+   12:47   0:00 grep --color=auto Domain-flink-metrics.properties

  • что в логах присутствуют вхождения логов записи метрик. Для этого:

  1. В файле logback-[имя домена]-flink-metrics.xml найдите имя файла логов для данного кластера EVTP. В appender(s) file в теге <file></file> присутствует имя файла логов, например:

<appender name="file" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>/path/to/Domain-flink-metrics.log</file>
  1. В файле логов (Domain-flink-metrics.log) произведите поиск логов записи метрик. Для этого выполните команду:

>cat Domain-flink-metrics.log | grep "<SINK>" | grep -v 'metricSize=[0,1]'
...

Дополнительные параметры (ограничения):

  • только количество строк в логах, удовлетворяющих поиску (а не текст логов):

>cat *flink-metrics.log | grep "<SINK>" | grep -v 'metricSize=[0,1]' | wc -l
>3596
  • только за конкретный период времени логов

>cat *kafka-metrics.log | grep "<SINK>" | grep -v 'metricSize=[0,1]' | grep "2022-10-17 13:50:01"
>2022-10-17 13:38:01.231 [MetricCollector-akka.actor.default-dispatcher-12] INFO  ru.sbt.fpss.monitoring.collector.controller.flow.FlowBuilder  - Success<SINK>[collectorId=<collectorId>,collectorName=KafkaMetricsPrometheus,host=<host>,class=FlowBuilder,flowId=<flowId>,flowName=KafkaProcessCpuLoadToInfluxDb,componentName=PrometheusPushGatewayOutput,processName=MetricOutput,metricSize=3]=List(Metric(Segment(Seg).Federation(Fed).Domain(Domain_promet).Kafka.Cluster(KafkaMetricsPrometheus).Broker(<host>).ProcessCpuLoad,Gauge,2022-10-17T10:38:01.213132Z,HashMap(description -> Загрузка CPU в процентах, unit -> %),Map(Value_Double -> 0.9181969949916527)), Metric(Segment(Seg).Federation(Fed).Domain(Domain_promet).Kafka.Cluster(KafkaMetricsPrometheus).Broker(<host>).ProcessCpuLoad,Gauge,2022-10-17T10:38:00.633296Z,HashMap(description -> Загрузка CPU в процентах, unit -> %),Map(Value_Double -> 0.9991673605328892)), Metric(LivenessProbe.Collector(KafkaMetricsPrometheus).Instance(<collectorId>).Flow(KafkaProcessCpuLoadToInfluxDb).Instance(<flowId>).IsAlive,Gauge,2022-10-17T10:38:00.981297Z,HashMap(description -> Liveness-проба Потока (1 - статус успеха)),Map(Value_String -> 1))) with result='true'
>2022-10-17 13:38:01.935 [MetricCollector-akka.actor.default-dispatcher-9] INFO  ru.sbt.fpss.monitoring.collector.controller.flow.FlowBuilder  - Success<SINK>[collectorId=<collectorId>,collectorName=KafkaMetricsPrometheus,host=<host>,class=FlowBuilder,flowId=<flowId>,flowName=KafkaTopicBytesInPerSecCountToInfluxDb,componentName=PrometheusPushGatewayOutput,processName=MetricOutput,metricSize=47] with result='true'

Результат положительного ответа на команду приведен выше (это либо ненулевое количество строк, либо сами строки с результатами поиска).

  • При наличии логов компонента в системе Platform V Monitor (LOGA) проверка считается успешной.

  • Проверить интеграцию с системой управления ключами и сертификатами. Если произведена настройка хранения или выпуска сертификатов в HashiCorp Vault/Secret Management System, необходимо авторизоваться в системе управления ключами и сертификатами, проверить правильность указанных путей хранения ключей и сертификатов, а также их наличие. При запуске EVTP, если скрипты установки отработали без ошибок, дополнительная проверка данной интеграции не требуется.