Руководство по системному администрированию#

Термины и определения#

Термин/аббревиатура

Определение

Платформа

Платформа оркестрации приложений со средствами автоматизации и управления на основе политик, например, Kubernetes

StatefulSet / «kind: StatefulSet»

Статический набор инструкций для запуска приложения в Kubernetes

Pod / «kind: Pod»

Набор контейнеров внутри узла кластера Kubernetes

CLI

Command line interface — интерфейс командной строки, где выполняются команды с использованием терминала

GATM

Программный компонент «Сбор и анализ метрик» (GATM) из состава программного продукта Platform V Synapse Service Mesh (SSM)

Kubernetes

Платформа оркестрации приложений со средствами автоматизации и управления на основе политик

SSM

Platform V Synapse Service Mesh — Программный продукт на базе Istio SE, обеспечивающий возможность создания сервисной сети поверх Платформенной в Kubernetes

URL

Uniform Resource Locator — стандартизированный способ записи адреса ресурса в сети Интернет»

Target

Сервисы/приложения по которым будет производиться сбор метрик

istio-proxy

Компонент Сервисный прокси продукта Platform V Synapse Service Mesh

Configmap

Общие описание конфигурации, которая будет храниться в рамках проекта кластера

Deployment / «kind: Deployment»

Набор инструкций для запуска приложения в Kubernetes

Сценарии администрирования#

Программный компонент «Сбор и анализ метрик» (GATM) из состава программного продукта Platform V Synapse Service Mesh (SSM) не имеет собственного пользовательского интерфейса для администрирования. Все действия по управлению им производятся с использованием интерфейсов, предоставляемых Платформой Kubernetes.

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

Для выполнения сценариев администрирования администратору инсталляции компонента может пригодиться привязка к admin-role, стандартизированной реализации роли админа проекта в рамках платформы K8s/OpenShift.

Запуск#

  • С использованием web-интерфейса Kubernetes

Шаг

Действие

Вход в web-консоль Kubernetes

Перейти по ссылке (URL) web-консоли нужного кластера Kubernetes, в окне ввода учетных данных ввести токен пользователя или «kubeconfig».

Переход в нужный проект

Выбрать нужный проект можно в выпадающем списке в шапке web-интерфейса Kubernetes.

Запуск Pod

1. В меню выберите пункт Workload/StatefulSets(Deployment).
2. На странице найдите нужный StatefulSet/Deployment (можно использовать поиск по имени).
3. Нажмите ⋮ и выберите Scale.
4. Задайте нужное количество Pods и нажмите Scale.

Выход из web-консоли Kubernetes

1. Нажмите по имени пользователя, чтобы раскрыть меню учетной записи.
2. Выберите пункт Log out.
3. Закройте окно браузера.

  • Через CLI kubernetes (kubectl)

Шаг

Действия

Описание

Вход в kubernetes

Загрузите «kubeConfig» от вашего «ServiceAccount». Заведите переменную KUBECONFIG=~/.kube/config где располагается выгруженная конфигурация.

Переход в нужный «Namespace»

Введите команду:
kubectl config set-context --current --namespace=<имя вашего проекта>

Запуск приложения

В консоли выполните команду:
kubectl scale --replicas=<N> statefulset/<имя statefulset> (либо Deployment)

N>0 — требуемое количество запущенных Pods приложения

Остановка#

  • С использованием web-интерфейса Kubernetes

Шаг

Действие

Логин в web-консоль Kubernetes

Перейти по ссылке (URL) web-консоли нужного кластера Kubernetes, в окне ввода учетных данных ввести токен пользователя или «kubeconfig».

Переход в нужный проект

Выбрать нужный проект можно в выпадающем списке в шапке web-интерфейса Kubernetes.

Остановка компонента

Выполнить следующие действия:
• В меню выбрать пункт Workload/StatefulSets ;
• На странице найти нужный StatefulSet/Deployment (при необходимости воспользоваться поиском по имени);
• Нажать ⋮ и выбрать Scale.
• Уменьшить количество Pods до 0 и нажать Scale.

Выход из web-консоли Kubernetes

Выполнить следующие действия:
• Кликом по иконке пользователя раскрыть меню;
• Выбрать пункт Sign out ;
• Закрыть окно браузера.

  • Через CLI kubernetes (kubectl)

Шаг

Действия

Описание

Остановка приложения

В консоли выполнить команду
kubectl scale --replicas=0 statefulset/<имя deployment> (Либо Deployment)

Проверка работоспособности#

  • С использованием web-интерфейса Kubernetes

Шаг

Действие

Вход в web-консоль Kubernetes

Перейдите по ссылке (URL) web-консоли нужного кластера Kubernetes, в окне ввода учетных данных введите токен пользователя или kubeconfig

Переход в нужный проект

Выберите нужный проект в выпадающем списке в шапке web-интерфейса Kubernetes

Переход во вкладку Pod

В меню выбрать пункт Workload/Pods
В рамках таблицы Pods проверить столбец «Status», валидное значение «Running», также подтвердить значение в столбце «Restarts» равное 0

  • Через CLI kubernetes (kubectl)

Agent#

Шаг

Действия

Описание

Получение имени Pod

В консоли выполнить команду kubectl get po

Выбрать наименование Pod с наименованием «synapse-metrics-agent-****», указанное наименование пригодится на следующем шаге (<имя Pod>)

Проверить работоспособность

В консоли выполнить команду:
kubectl port-forward pod/<имя Pod> 8429:8429
Запустить еще одно окно консоли, в нем выполнить команду:
curl localhost:8429/ready
Команда должна вывести строку «OK».
Завершить переадресацию портов нажатием Ctrl+C

Также проверить отсутствие ошибок в рамках логов приложения (раздел «Выгрузка системных логов»).

Kafka adapter#

Шаг

Действия

Описание

Получение имени Pod

В консоли выполнить команду kubectl get po

Выбрать наименование Pod с наименованием «synapse-metrics-agent-****», указанное наименование пригодится на следующем шаге (<имя Pod>)

Проверить работоспособность

В консоли выполнить команду:
kubectl port-forward pod/<имя Pod> 8080:8080
Запустить еще одно окно консоли, в нем выполнить команду:
curl localhost:8080/healthz
Команда должна вывести строку «OK».
Завершить переадресацию портов нажатием Ctrl+C

Также проверить отсутствие ошибок в рамках логов приложения (раздел «Выгрузка системных логов»).

Event exporter#

Шаг

Действия

Описание

Получение имени Pod

В консоли выполнить команду kubectl get po

Выбрать наименование Pod с наименованием «synapse-metrics-event-exporter-****», указанное наименование пригодится на следующем шаге (<имя Pod>)

Проверить работоспособность

В консоли выполнить команду:
kubectl port-forward pod/<имя Pod> 9102:9102
Запустить еще одно окно консоли, в нем выполнить команду:
curl localhost:9102/healthz
Команда не должна вывести ошибку.
Завершить переадресацию портов нажатием Ctrl+C

Также проверить отсутствие ошибок в рамках логов приложения (раздел «Выгрузка системных логов»).

Select#

Шаг

Действия

Описание

Получение имени Pod

В консоли выполнить команду kubectl get po

Выбрать наименование Pod с наименованием «synapse-metrics-select-****», указанное наименование пригодится на следующем шаге (<имя Pod>)

Проверить работоспособность

В консоли выполнить команду:
kubectl port-forward pod/<имя Pod> 8481:8481
Запустить еще одно окно консоли, в нем выполнить команду:
curl localhost:8481/health
Команда должна вывести строку «OK».
Завершить переадресацию портов нажатием Ctrl+C

Также проверить отсутствие ошибок в рамках логов приложения (раздел «Выгрузка системных логов»).

Insert#

Шаг

Действия

Описание

Получение имени Pod

В консоли выполнить команду kubectl get po

Выбрать наименование Pod с наименованием «synapse-metrics-insert-****», указанное наименование пригодится на следующем шаге (<имя Pod>)

Проверить работоспособность

В консоли выполнить команду:
kubectl port-forward pod/<имя Pod> 8480:8480
Запустить еще одно окно консоли, в нем выполнить команду:
curl localhost:8480/health
Команда должна вывести строку «OK».
Завершить переадресацию портов нажатием Ctrl+C

Также проверить отсутствие ошибок в рамках логов приложения (раздел «Выгрузка системных логов»).

Storage#

Шаг

Действия

Описание

Получение имени Pod

В консоли выполнить команду kubectl get po

Выбрать наименование Pod с наименованием «synapse-metrics-storage-****», указанное наименование пригодится на следующем шаге (<имя Pod>)

Проверить работоспособность

В консоли выполнить команду:
kubectl port-forward pod/<имя Pod> 8482:8482
Запустить еще одно окно консоли, в нем выполнить команду:
curl localhost:8482/health
Команда должна вывести строку «OK».
Завершить переадресацию портов нажатием Ctrl+C

Также проверить отсутствие ошибок в рамках логов приложения (раздел «Выгрузка системных логов»).

Alert#

Шаг

Действия

Описание

Получение имени Pod

В консоли выполнить команду kubectl get po

Выбрать наименование Pod с наименованием «synapse-metrics-alert-****», указанное наименование пригодится на следующем шаге (<имя Pod>)

Проверить работоспособность

В консоли выполнить команду:
kubectl port-forward pod/<имя Pod> 8880:8880
Запустить еще одно окно консоли, в нем выполнить команду:
curl localhost:8880/health
Команда должна вывести строку «OK».
Завершить переадресацию портов нажатием Ctrl+C

Также проверить отсутствие ошибок в рамках логов приложения (раздел «Выгрузка системных логов»).

Настройка выделения ресурсов#

  • С использованием web-интерфейса Kubernetes

Шаг

Действие

Логин в web-консоль Kubernetes

Перейти по ссылке (URL) web-консоли нужного кластера Kubernetes, в окне ввода учетных данных ввести токен пользователя или «kubeconfig»

Переход в проект

Выбрать нужный проект можно в выпадающем списке в шапке web-интерфейса Kubernetes

Вход в StatefulSet/Deployment

Выполнить следующие действия:
• В меню выбрать пункт Workload/StatefulSets
• На странице найти нужный StatefulSet/Deployment (при необходимости воспользоваться поиском по имени);
• Пройти по ссылке в наименовании ⋮ , выбрать Edit , перейти на вкладку YAML или JSON

Скорректировать параметры

В окне редактирования найдите параметры:
spec.template.spec.containers[0].resources.limits.cpu
spec.template.spec.containers[0].resources.limits.memory
spec.template.spec.containers[0].resources.requests.cpu
spec.template.spec.containers[0].resources.requests.memory
Установите нужные значения.

Сохранение

Нажмите кнопку Update

Проверка конфигурации

Снова зайти на вкладку Edit в YAML или JSON

Выход из web-консоли Kubernetes

Выполнить следующие действия:
• Кликом по иконке пользователя раскрыть меню;
• Выбрать пункт Sign out ;
• Закрыть окно браузера

  • Через CLI kubernetes (kubectl)

Шаг

Действие

Описание

Получить текущие StatefulSet/Deployment приложений

В консоли выполнить команду kubectl get statefulsets (deployments). Из полученного списка выберите тот StatefulSet/Deployment приложения, у которого необходимо скорректировать выделения ресурсов

Скорректировать параметры

В консоли выполнить команду kubectl patch deploy "$STATEFULSET_NAME" --patch '{"spec": {"template": {"spec": {"containers": [{"name": "'"$CONTAINER_NAME"'", "resources": {"$LIMIT_TYPE": {"'"$LIMIT_ENV"'": "'"$VALUE"'"} } }]}}}}'.

$STATEFULSET_NAME - имя statefulset/deployments; $CONTAINER_NAME — имя контейнера в рамках statfulset/deployments; $LIMIT_TYPE — секция где необходимо изменить квоту (limits/requests); $LIMIT_ENV - значение лимита (cpu/memory); $VALUE — необходимое значение (пример 1Gi)

Проверить конфигурацию

В консоли выполнить команду kubectl get statefulset "$STATEFULSET_NAME" -o yaml (deployments), убедиться, что желаемый результат зафиксирован

Изменение количества Pods#

  • С использованием web-интерфейса Kubernetes

Шаг

Действие

Вход в web-консоль Kubernetes

Перейти по ссылке (URL) web-консоли нужного кластера Kubernetes, в окне ввода учетных данных ввести токен пользователя или «kubeconfig»

Переход в нужный проект

Выбрать нужный проект можно в выпадающем списке в шапке web-интерфейса Kubernetes

Запуск Pod

1. В меню выберите пункт Workload/StatefulSets.
2. На странице найдите нужный StatefulSet/Deployment (можно использовать поиск по имени).
3. Нажать ⋮ и выбрать Scale ;
4. Задать нужное количество Pods и нажать Scale

Выход из web-консоли Kubernetes

1. Нажмите по имени пользователя, чтобы раскрыть меню учетной записи.
2. Выберите пункт Log out.
3. Закройте окно браузера

  • Через CLI kubernetes (kubectl)

Шаг

Действия

Описание

Увеличить/уменьшить количество Pods

В консоли выполнить команду: kubectl scale --replicas=<N> statefulset/<имя деплоймента> (deployment)

Выгрузка системных логов#

  • С использованием web-интерфейса Kubernetes

Шаг

Действие

Вход в web-консоль Kubernetes

Перейдите по ссылке (URL) web-консоли нужного кластера Kubernetes, в окне ввода учетных данных введите токен пользователя или kubeconfig

Переход в нужный проект

Выберите нужный проект можно в выпадающем списке в шапке web-интерфейса Kubernetes

Выгрузить лог

1. В меню выберите пункт Workload/Pods.
2. На странице найдите нужный Pod (можно использовать поиск по имени).
3. Нажмите ⋮ и выберите Logs ;
4. Задайте в верхней панели имя контейнера (Logs from <имя контейнера> in <имя Pod>)

Выход из web-консоли Kubernetes

1. Выберите имя пользователя, чтобы раскрыть меню учетной записи.
2. Выберите пункт Log out.
3. Закройте окно браузера

  • Через CLI kubernetes (kubectl)

Шаг

Действия

Описание

Выгрузить лог

В консоли выполнить команду: kubectl logs -c <имя контейнера> <имя Pod> > <имя файла>.txt, где <имя контейнера> может быть названием контейнера приложения шлюза или контейнера.

Ротация сертификатов#

Для проведения ротации используемых сертификатов необходимо ознакомиться с документацией используемого хранилища (Kubernetes, Vault и т.д.)

Подключение и конфигурирование#

Программный компонент GATM из состава программного продукта Platform V Service Mesh (SSM) работает в рамках собственной реализации Pod.

  • Подключение проводится в рамках установки компонента GATM в пользовательский namespace

  • Конфигурирование проводиться посредством реализации scrape конфигурации

Маска конфигурации:

kind: ConfigMap
apiVersion: v1
metadata:
  name: synapse-metrics-agent-scrapeconfig
data:
  scrape.yml: |
    global:
      ...
    scrape_configs:
      ...

Путь к конфигурационному YML-файлу указывается в секции spec.containers[@.name="synapse-metrics-agent"].args в pod агента с помощью флага командной строки -promscrape.config

Рекомендуемый формат:

args:
 - '-promscrape.config=/scrapeconfig/scrape.yml'

Важно, чтобы ресурс kind: ConfigMap был монтирован к pods агента

Agent учитывает следующие разделы из конфигурационного файла в формате Prometheus:

  1. global

  2. scrape_configs

Все остальные разделы игнорируются, включая раздел remote_write.

Информация по формированию конфигурационного файла для scrape метрик

Пример конфигурации: ConfigMap.yml

События системного журнала#

Системный лог выводится в консоль контейнера приложения.

Agent#

Уровни логирования INFO, WARN, ERROR, FATAL или PANIC. Уровень логирования задается при старте приложения в spec.template.spec.containers[0].args, в statefulset.

'-loggerLevel=<уровень>'

Минимальный уровень ошибок для вывода. Возможные значения: INFO, WARN, ERROR, FATAL, PANIC (по умолчанию: "INFO")

Наименование контейнера в рамках «kind: Pod» — synapse-metrics-agent.

Разворачивание среды

2023-01-26T14:20:30.718Z	info	***/lib/logger/flag.go:12	build version: vmagent-20221115-121853-heads-master-0-g39fc90dbf-dirty-5d654ac2
2023-01-26T14:20:30.718Z	info	***/lib/logger/flag.go:13	command-line flags
2023-01-26T14:20:30.718Z	info	***/lib/logger/flag.go:20	  -promscrape.cluster.memberNum="synapse-metrics-agent-0"
2023-01-26T14:20:30.718Z	info	***/lib/logger/flag.go:20	  -promscrape.cluster.membersCount="2"
2023-01-26T14:20:30.718Z	info	***/lib/logger/flag.go:20	  -promscrape.cluster.name="synapse-metrics-agent-0-tribe-sy-fssm-dev"
2023-01-26T14:20:30.718Z	info	***/lib/logger/flag.go:20	  -promscrape.config="/scrapeconfig/scrape.yml"
2023-01-26T14:20:30.718Z	info	***/lib/logger/flag.go:20	  -promscrape.suppressDuplicateScrapeTargetErrors="true"
2023-01-26T14:20:30.718Z	info	***/lib/logger/flag.go:20	  -remoteWrite.url="secret"
2023-01-26T14:20:30.718Z	info	***/app/vmagent/main.go:103	starting vmagent at ":8429"...
2023-01-26T14:20:30.718Z	info	***/lib/memory/memory.go:42	limiting caches to 188743680 bytes, leaving 125829120 bytes to the OS according to -memory.allowedPercent=60
2023-01-26T14:20:30.721Z	info	***/lib/persistentqueue/fastqueue.go:59	opened fast persistent queue at "vmagent-remotewrite-data/persistent-queue/1_AA191EE87E52329A" with maxInmemoryBlocks=188, it contains 0 pending bytes
2023-01-26T14:20:30.722Z	info	***/app/vmagent/remotewrite/client.go:169	initialized client for -remoteWrite.url="1:secret-url"
2023-01-26T14:20:30.722Z	info	***/app/vmagent/main.go:130	started vmagent in 0.004 seconds
2023-01-26T14:20:30.722Z	info	***/lib/httpserver/httpserver.go:96	starting http server at http://127.*.0.1:8429/
2023-01-26T14:20:30.722Z	info	***/lib/httpserver/httpserver.go:97	pprof handlers are exposed at http://127.*.0.1:8429/debug/pprof/
2023-01-26T14:20:30.723Z	info	***/lib/promscrape/scraper.go:106	reading Prometheus configs from "/scrapeconfig/scrape.yml"
2023-01-26T14:20:30.725Z	info	***/lib/promscrape/config.go:120	starting service discovery routines...
2023-01-26T14:20:30.775Z	info	***/lib/promscrape/discovery/kubernetes/api_watcher.go:501	started pod watcher for "https://kubernetes.default.svc.cluster.local:443/api/v1/namespaces/tribe-sy-fssm-dev/pods"
2023-01-26T14:20:30.783Z	info	***/lib/promscrape/config.go:126	started service discovery routines in 0.058 seconds

Информация о захвате целей для сбора метрик

2023-01-26T14:20:45.834Z	info	***/lib/promscrape/discovery/kubernetes/api_watcher.go:633	reloaded 6 objects from "https://kubernetes.default.svc.cluster.local:443/api/v1/namespaces/tribe-sy-fssm-dev/pods" in 0.030s; updated=0, removed=0, added=6, resourceVersion="1361161414"
2023-01-26T14:21:00.784Z	info	***/lib/promscrape/scraper.go:403	kubernetes_sd_configs: added targets: 6, removed targets: 0; total targets: 6

Информация об удалении цели для сбора метрик

2023-01-27T07:59:13.418Z	info	***/lib/promscrape/scraper.go:403	kubernetes_sd_configs: added targets: 0, removed targets: 1; total targets: 5

Предупреждение о недоступности цели для сбора метрик

2023-01-27T07:58:29.731Z	warn	***/lib/promscrape/scrapework.go:390	cannot scrape "http://192.*.55.81:15020/stats/prometheus" (job "istio-pods", labels {instance="192.*.55.81:15020",job="istio-pods"}): error when scraping "http://192.*.55.81:15020/stats/prometheus": unexpected EOF

Предупреждение о недоступности сервера, в рамках передачи метрик

2023-04-05T05:15:33.894Z	warn	***/app/smagent/remotewrite/client.go:333	couldn't send a block with size 27416 bytes to "1:secret-url": Post "http://localhost:8081/receive": dial tcp4 127.*.0.1:8081: connect: connection refused; re-sending the block in 2.000 seconds

Ошибки при обращении к KubeAPI, недоступность сервиса

2023-03-31T18:20:30.533Z	error	***/lib/promscrape/discovery/kubernetes/api_watcher.go:690	error when reading WatchEvent stream from "https://kubernetes.default.svc.cluster.local:443/api/v1/namespaces/federation-istio-system/pods?watch=1&allowWatchBookmarks=true&timeoutSeconds=1620&resourceVersion=163285310": cannot parse WatchEvent json response: unexpected EOF
2023-01-26T14:20:30.782Z	error	***/lib/promscrape/discovery/kubernetes/api_watcher.go:578	cannot perform request to "https://kubernetes.default.svc.cluster.local:443/api/v1/namespaces/tribe-sy-fssm-dev/pods": Get "https://kubernetes.default.svc.cluster.local:443/api/v1/namespaces/tribe-sy-fssm-dev/pods": dial tcp 192.*.0.1:443: connect: connection refused

Ошибки при обращении к KubeAPI, недостаточно прав для запроса

2023-04-04T17:19:46.409Z	error	***/lib/promscrape/discovery/kubernetes/api_watcher.go:584	unexpected status code for request to "https://kubernetes.default.svc.cluster.local:443/api/v1/namespaces/federation-istio-system/pods": 403; want 200; response: "{\"kind\":\"Status\",\"apiVersion\":\"v1\",\"metadata\":{},\"status\":\"Failure\",\"message\":\"pods is forbidden: User \\\"system:serviceaccount:synapse-metrics-system:synapse-metrics-sa\\\" cannot list resource \\\"pods\\\" in API group \\\"\\\" in the namespace \\\"federation-istio-system\\\"\",\"reason\":\"Forbidden\",\"details\":{\"kind\":\"pods\"},\"code\":403}\

В рамках ошибок сетевого взаимодействия необходимо ознакомиться с документацией компонент SVPX/IGEG «Руководство прикладного разработчика», раздел «Часто встречающиеся проблемы и пути их устранения».

Kafka Adapter#

Уровни логирования DEBUG, INFO, WARN, ERROR, FATAL или PANIC. Уровень логирования задается при старте приложения в настройках «kind: ConfigMap». Уровень по умолчанию: INFO. Уровень логирования устанавливает администратор данного компонента.

Уровень логирования DEBUG не рекомендован для ПРОМ среды.

Наименование контейнера в рамках «kind: Pod» — synapse-kafka-adapter.

Подключение к Kafka

time="2023-01-27T11:24:07Z" level=info msg="creating kafka producer" source="main.go:29"

Логгирование об обработке метрики

{"fields.time":"2023-01-27T11:24:53Z","ip":"127.*.0.1","latency":308830,"level":"info","method":"POST","msg":"","path":"/receive","status":200,"time":"2023-01-27T11:24:53Z","user-agent":"vmagent"}
{"fields.time":"2023-01-27T11:25:00Z","ip":"127.*.0.1","latency":208489,"level":"info","method":"POST","msg":"","path":"/receive","status":200,"time":"2023-01-27T11:25:00Z","user-agent":"vmagent"}

Информирование об ошибке соединения с Kafka

%6|1674861433.494|FAIL|rdkafka#producer-1| [thrd:broker.ru:9093/bootstrap]: broker.ru:9093/24: Disconnected while requesting ApiVersion: might be caused by incorrect security.protocol configuration (connecting to a SSL listener?) or broker version is < 0.10 (see api.version.request) (after 0ms in state APIVERSION_QUERY, 3 identical error(s) suppressed)

Информирование об ошибке Kafka

%6|1680671954.839|FAIL|rdkafka#producer-1| [thrd:10.25.134.75:30492/bootstrap]: 10.*.134.75:30492/0: Disconnected (after 58058ms in state UP

Информирование о настройках подключения к KFGT (Компонент Kafka gateway продукта Platform V Enterprise integration (SEI) )

{"level":"info","msg":"KFGT_INTEGRATION: true, creating HTTP adapter","time":"***"}
{"level":"info","msg":"KFGT_PROTO: HTTP","time":"***"}
{"level":"info","msg":"KFGT_URL: http://{АДРЕС_KFGT}}:8080/_bulk","time":"***"}

В рамках ошибок сетевого взаимодействия необходимо ознакомиться с документацией компонент SVPX/IGEG «Руководство прикладного разработчика», раздел «Часто встречающиеся проблемы и пути их устранения».

Event Exporter#

Уровни логирования DEBUG, INFO, WARN, ERROR, FATAL или PANIC. Уровень логирования задается при старте приложения в настройках «kind: ConfigMap». Уровень по умолчанию: INFO. Уровень логирования устанавливает администратор данного компонента.

Уровень логирования DEBUG не рекомендован для ПРОМ среды.

Наименование контейнера в рамках «kind: Pod» — synapse-metrics-event-exporter.

Разворачивание среды

W0724 05:39:12.660130 1 client_config.go:618] Neither --kubeconfig nor --master was specified. Using the inClusterConfig. This might not work.
I0724 05:39:12.660743 1 main.go:89] starting prometheus metrics server on http://localhost:9102
I0724 05:39:12.660824 1 event.go:91] [synapse-metrics-system] starting eventCollector
I0724 05:39:31.661945 1 event.go:95] [synapse-metrics-system] started

Ошибки при обращении в Kube API server

W0724 05:39:12.665602 1 reflector.go:533] pkg/mod/k8s.io/client-go@v0.27.3/tools/cache/reflector.go:231: failed to list *v1.Event: Get "https://kubernetes.default.svc.cluster.local:443/api/v1/namespaces/synapse-metrics-system/events?limit=500&resourceVersion=0": dial tcp **.**.*.*:443: connect: connection refused
E0724 05:39:12.665680 1 reflector.go:148] pkg/mod/k8s.io/client-go@v0.27.3/tools/cache/reflector.go:231: Failed to watch *v1.Event: failed to list *v1.Event: Get "https://kubernetes.default.svc.cluster.local:443/api/v1/namespaces/synapse-metrics-system/events?limit=500&resourceVersion=0": dial tcp **.**.*.*:443: connect: connection refused
W0724 05:39:13.951826 1 reflector.go:533] pkg/mod/k8s.io/client-go@v0.27.3/tools/cache/reflector.go:231: failed to list *v1.Event: Get "https://kubernetes.default.svc.cluster.local:443/api/v1/namespaces/synapse-metrics-system/events?limit=500&resourceVersion=0": dial tcp **.**.*.*:443: connect: connection refused
E0724 05:39:13.951897 1 reflector.go:148] pkg/mod/k8s.io/client-go@v0.27.3/tools/cache/reflector.go:231: Failed to watch *v1.Event: failed to list *v1.Event: Get "https://kubernetes.default.svc.cluster.local:443/api/v1/namespaces/synapse-metrics-system/events?limit=500&resourceVersion=0": dial tcp **.**.*.*:443: connect: connection refused

Допустимо получать указанные ошибки при старте приложения при медленном старте контейнера «istio-proxy», что реализует блокирование запросов.

Формирование метрик по событиям

I0724 07:03:39.435555 1 event.go:165] [synapse-metrics-system] event name: synapse-metrics-event-exporter-7776b8c97-cm4cq.1774bbc1ad2db7b6,count: 1,involvedObject_namespace: synapse-metrics-system,involvedObject_kind: Pod,involvedObject_name: synapse-metrics-event-exporter-7776b8c97-cm4cq,reason: Started,type: Normal
I0724 07:03:39.435587 1 event.go:165] [synapse-metrics-system] event name: synapse-metrics-event-exporter-7776b8c97-cm4cq.1774bbc1ff1ce991,count: 11,involvedObject_namespace: synapse-metrics-system,involvedObject_kind: Pod,involvedObject_name: synapse-metrics-event-exporter-7776b8c97-cm4cq,reason: Unhealthy,type: Warning
I0724 07:03:39.435626 1 event.go:165] [synapse-metrics-system] event name: synapse-metrics-event-exporter-7776b8c97-hmz58.1774b72a78095048,count: 18,involvedObject_namespace: synapse-metrics-system,involvedObject_kind: Pod,involvedObject_name: synapse-metrics-event-exporter-7776b8c97-hmz58,reason: Unhealthy,type: Warning
I0724 07:03:39.435662 1 event.go:165] [synapse-metrics-system] event name: synapse-metrics-event-exporter-7776b8c97-hmz58.1774bbc14ba1a347,count: 1,involvedObject_namespace: synapse-metrics-system,involvedObject_kind: Pod,involvedObject_name: synapse-metrics-event-exporter-7776b8c97-hmz58,reason: Killing,type: Normal

Select#

Уровни логирования DEBUG, INFO, WARN, ERROR, FATAL или PANIC. Уровень логирования задается при старте приложения в настройках «kind: ConfigMap». Уровень по умолчанию: INFO. Уровень логирования устанавливает администратор данного компонента.

Уровень логирования DEBUG не рекомендован для ПРОМ среды.

Наименование контейнера в рамках «kind: Pod» — synapse-metrics-select.

Разворачивание среды

{"ts":"2023-07-18T14:22:10.056Z","level":"info","caller":"**/lib/logger/flag.go:12","msg":"build version: vmselect-20230718-053115-heads-test-build-bin-0-g2ee14fe1e"}
{"ts":"2023-07-18T14:22:10.056Z","level":"info","caller":"**/lib/logger/flag.go:13","msg":"command-line flags"}
{"ts":"2023-07-18T14:22:10.056Z","level":"info","caller":"**/lib/logger/flag.go:20","msg":" -cacheDataPath=\"/cache\""}
{"ts":"2023-07-18T14:22:10.056Z","level":"info","caller":"**/lib/logger/flag.go:20","msg":" -dedup.minScrapeInterval=\"1m0s\""}
{"ts":"2023-07-18T14:22:10.056Z","level":"info","caller":"**/lib/logger/flag.go:20","msg":" -envflag.enable=\"true\""}
{"ts":"2023-07-18T14:22:10.056Z","level":"info","caller":"**/lib/logger/flag.go:20","msg":" -envflag.prefix=\"GATM_\""}
{"ts":"2023-07-18T14:22:10.056Z","level":"info","caller":"**/lib/logger/flag.go:20","msg":" -loggerFormat=\"json\""}
{"ts":"2023-07-18T14:22:10.056Z","level":"info","caller":"**/lib/logger/flag.go:20","msg":" -loggerLevel=\"INFO\""}
{"ts":"2023-07-18T14:22:10.056Z","level":"info","caller":"**/lib/logger/flag.go:20","msg":" -storageNode=\"synapse-metrics-storage-0.synapse-metrics-storage.synapse-metrics-system.svc.cluster.local:8401\""}
{"ts":"2023-07-18T14:22:10.056Z","level":"info","caller":"**/app/vmselect/main.go:95","msg":"starting netstorage at storageNodes [synapse-metrics-storage-0.synapse-metrics-storage.synapse-metrics-system.svc.cluster.local:8401]"}
{"ts":"2023-07-18T14:22:10.058Z","level":"info","caller":"**/app/vmselect/main.go:109","msg":"started netstorage in 0.002 seconds"}
{"ts":"2023-07-18T14:22:10.059Z","level":"info","caller":"**/lib/memory/memory.go:42","msg":"limiting caches to 188743680 bytes, leaving 125829120 bytes to the OS according to -memory.allowedPercent=60"}
{"ts":"2023-07-18T14:22:10.059Z","level":"info","caller":"**/app/vmselect/promql/rollup_result_cache.go:66","msg":"loading rollupResult cache from \"/cache/rollupResult\"..."}
{"ts":"2023-07-18T14:22:10.060Z","level":"info","caller":"**/app/vmselect/promql/rollup_result_cache.go:94","msg":"loaded rollupResult cache from \"/cache/rollupResult\" in 0.001 seconds; entriesCount: 0, sizeBytes: 0"}
{"ts":"2023-07-18T14:22:10.060Z","level":"info","caller":"**/lib/httpserver/httpserver.go:96","msg":"starting http server at http://127.0.0.1:8481/"}
{"ts":"2023-07-18T14:22:10.061Z","level":"info","caller":"**/lib/httpserver/httpserver.go:97","msg":"pprof handlers are exposed at http://127.0.0.1:8481/debug/pprof/"}

Параметры запуска

{"ts":"2023-07-18T14:22:10.056Z","level":"info","caller":"**/lib/logger/flag.go:13","msg":"command-line flags"}
{"ts":"2023-07-18T14:22:10.056Z","level":"info","caller":"**/lib/logger/flag.go:20","msg":" -cacheDataPath=\"/cache\""}
{"ts":"2023-07-18T14:22:10.056Z","level":"info","caller":"**/lib/logger/flag.go:20","msg":" -dedup.minScrapeInterval=\"1m0s\""}
{"ts":"2023-07-18T14:22:10.056Z","level":"info","caller":"**/lib/logger/flag.go:20","msg":" -envflag.enable=\"true\""}
{"ts":"2023-07-18T14:22:10.056Z","level":"info","caller":"**/lib/logger/flag.go:20","msg":" -envflag.prefix=\"GATM_\""}
{"ts":"2023-07-18T14:22:10.056Z","level":"info","caller":"**/lib/logger/flag.go:20","msg":" -loggerFormat=\"json\""}
{"ts":"2023-07-18T14:22:10.056Z","level":"info","caller":"**/lib/logger/flag.go:20","msg":" -loggerLevel=\"INFO\""}

Успешный запрос в рамках приложения

{"ts":"2023-07-24T05:58:51.167Z","level":"info","caller":"**/app/vmselect/querystats/querystats.go:87","msg":"enabled query stats tracking at `/api/v1/status/top_queries` with -search.queryStats.lastQueriesCount=20000, -search.queryStats.minQueryDuration=1ms"}

Ошибка в рамках обращения к storage

{"ts":"2023-07-24T06:00:34.141Z","level":"warn","caller":"**/app/vmselect/main.go:451","msg":"error in \"/select/0/prometheus/api/v1/query # далее описывается причина ошибки

Ошибки могут быть связаны с временной недоступностью приложения storage.

Insert#

Уровни логирования DEBUG, INFO, WARN, ERROR, FATAL или PANIC. Уровень логирования задается при старте приложения в настройках «kind: ConfigMap». Уровень по умолчанию: INFO. Уровень логирования устанавливает администратор данного компонента.

Уровень логирования DEBUG не рекомендован для ПРОМ среды.

Наименование контейнера в рамках «kind: Pod» — synapse-metrics-insert.

Разворачивание среды

{"ts":"2023-07-24T05:57:50.331Z","level":"info","caller":"**/lib/logger/flag.go:12","msg":"build version: vminsert-20230718-053035-heads-test-build-bin-0-g2ee14fe1e"}
{"ts":"2023-07-24T05:57:50.331Z","level":"info","caller":"**/lib/logger/flag.go:13","msg":"command-line flags"}
{"ts":"2023-07-24T05:57:50.331Z","level":"info","caller":"**/lib/logger/flag.go:20","msg":" -envflag.enable=\"true\""}
{"ts":"2023-07-24T05:57:50.331Z","level":"info","caller":"**/lib/logger/flag.go:20","msg":" -envflag.prefix=\"GATM_\""}
{"ts":"2023-07-24T05:57:50.331Z","level":"info","caller":"**/lib/logger/flag.go:20","msg":" -loggerFormat=\"json\""}
{"ts":"2023-07-24T05:57:50.331Z","level":"info","caller":"**/lib/logger/flag.go:20","msg":" -loggerLevel=\"INFO\""}
{"ts":"2023-07-24T05:57:50.331Z","level":"info","caller":"**/lib/logger/flag.go:20","msg":" -storageNode=\"synapse-metrics-storage-0.synapse-metrics-storage.synapse-metrics-system.svc.cluster.local:8400\""}
{"ts":"2023-07-24T05:57:50.331Z","level":"info","caller":"**/app/vminsert/main.go:97","msg":"initializing netstorage for storageNodes [synapse-metrics-storage-0.synapse-metrics-storage.synapse-metrics-system.svc.cluster.local:8400]..."}
{"ts":"2023-07-24T05:57:50.331Z","level":"info","caller":"**/lib/memory/memory.go:42","msg":"limiting caches to 188743680 bytes, leaving 125829120 bytes to the OS according to -memory.allowedPercent=60"}
{"ts":"2023-07-24T05:57:50.331Z","level":"info","caller":"**/app/vminsert/main.go:116","msg":"successfully initialized netstorage in 0.000 seconds"}
{"ts":"2023-07-24T05:57:50.331Z","level":"info","caller":"**/lib/httpserver/httpserver.go:96","msg":"starting http server at http://***.*.*.*:8480/"}
{"ts":"2023-07-24T05:57:50.331Z","level":"info","caller":"**/lib/httpserver/httpserver.go:97","msg":"pprof handlers are exposed at http://127.0.0.1:8480/debug/pprof/"}

Параметры запуска

{"ts":"2023-07-24T05:57:50.331Z","level":"info","caller":"**/lib/logger/flag.go:13","msg":"command-line flags"}
{"ts":"2023-07-24T05:57:50.331Z","level":"info","caller":"**/lib/logger/flag.go:20","msg":" -envflag.enable=\"true\""}
{"ts":"2023-07-24T05:57:50.331Z","level":"info","caller":"**/lib/logger/flag.go:20","msg":" -envflag.prefix=\"GATM_\""}
{"ts":"2023-07-24T05:57:50.331Z","level":"info","caller":"**/lib/logger/flag.go:20","msg":" -loggerFormat=\"json\""}
{"ts":"2023-07-24T05:57:50.331Z","level":"info","caller":"**/lib/logger/flag.go:20","msg":" -loggerLevel=\"INFO\""}
{"ts":"2023-07-24T05:57:50.331Z","level":"info","caller":"**/lib/logger/flag.go:20","msg":" -storageNode=\"synapse-metrics-storage-0.synapse-metrics-storage.synapse-metrics-system.svc.cluster.local:8400\""}

Успешное подключение в storage

{"ts":"2023-07-24T05:58:06.938Z","level":"info","caller":"**/app/vminsert/netstorage/netstorage.go:268","msg":"successfully dialed -storageNode=\"synapse-metrics-storage-0.synapse-metrics-storage.synapse-metrics-system.svc.cluster.local:8400\""}

Ошибки при подключении к storage

{"ts":"2023-07-24T05:57:50.533Z","level":"warn","caller":"**/app/vminsert/netstorage/netstorage.go:264","msg":"cannot dial storageNode \"synapse-metrics-storage-0.synapse-metrics-storage.synapse-metrics-system.svc.cluster.local:8400\": dial tcp4 **.**.*.***:8400: connect: connection refused"}

Ошибки могут быть связаны с временной недоступностью приложения storage, а также при медленном старте контейнера «istio-proxy», что реализует блокирование запросов.

Ошибки при запросе к storage

{"ts":"2023-07-24T05:58:06.938Z","level":"info","caller":"**/app/vminsert/netstorage/netstorage.go:268","msg":"successfully dialed -storageNode=\"synapse-metrics-storage-0.synapse-metrics-storage.synapse-metrics-system.svc.cluster.local:8400\""}
{"ts":"2023-07-24T06:00:16.533Z","level":"warn","caller":"**/app/vminsert/netstorage/netstorage.go:306","msg":"cannot send 1615 bytes with 9 rows to -storageNode=\"synapse-metrics-storage-0.synapse-metrics-storage.synapse-metrics-system.svc.cluster.local:8400\": cannot read `ack` from vmstorage: EOF; closing the connection to storageNode and re-routing this data to healthy storage nodes"}
{"ts":"2023-07-24T06:00:16.533Z","level":"warn","caller":"**/app/vminsert/netstorage/netstorage.go:211","msg":"cannot push 1615 bytes with 9 rows to storage nodes, since all the nodes are temporarily unavailable; re-trying to send the data soon"}
{"ts":"2023-07-24T06:00:16.735Z","level":"warn","caller":"**/app/vminsert/netstorage/netstorage.go:264","msg":"cannot dial storageNode \"synapse-metrics-storage-0.synapse-metrics-storage.synapse-metrics-system.svc.cluster.local:8400\": dial tcp4: lookup synapse-metrics-storage-0.synapse-metrics-storage.synapse-metrics-system.svc.cluster.local on **.**.*.**:53: no such host"}

Storage#

Уровни логирования DEBUG, INFO, WARN, ERROR, FATAL или PANIC. Уровень логирования задается при старте приложения в настройках «kind: ConfigMap». Уровень по умолчанию: INFO. Уровень логирования устанавливает администратор данного компонента.

Уровень логирования DEBUG не рекомендован для ПРОМ среды.

Наименование контейнера в рамках «kind: Pod» — synapse-metrics-storage.

Разворачивание среды

{"ts":"2023-07-24T06:00:22.559Z","level":"info","caller":"**/lib/logger/flag.go:12","msg":"build version: vmstorage-20230718-053156-heads-test-build-bin-0-g2ee14fe1e"}
{"ts":"2023-07-24T06:00:22.559Z","level":"info","caller":"**/lib/logger/flag.go:13","msg":"command-line flags"}
{"ts":"2023-07-24T06:00:22.559Z","level":"info","caller":"**/lib/logger/flag.go:20","msg":" -envflag.enable=\"true\""}
{"ts":"2023-07-24T06:00:22.559Z","level":"info","caller":"**/lib/logger/flag.go:20","msg":" -envflag.prefix=\"GATM_\""}
{"ts":"2023-07-24T06:00:22.559Z","level":"info","caller":"**/lib/logger/flag.go:20","msg":" -loggerFormat=\"json\""}
{"ts":"2023-07-24T06:00:22.559Z","level":"info","caller":"**/lib/logger/flag.go:20","msg":" -loggerLevel=\"INFO\""}
{"ts":"2023-07-24T06:00:22.559Z","level":"info","caller":"**/lib/logger/flag.go:20","msg":" -retentionPeriod=\"1d\""}
{"ts":"2023-07-24T06:00:22.559Z","level":"info","caller":"**/lib/logger/flag.go:20","msg":" -storageDataPath=\"/storage\""}
{"ts":"2023-07-24T06:00:22.559Z","level":"info","caller":"**/app/vmstorage/main.go:100","msg":"opening storage at \"/storage\" with -retentionPeriod=1d"}
{"ts":"2023-07-24T06:00:22.561Z","level":"info","caller":"**/lib/memory/memory.go:42","msg":"limiting caches to 377487360 bytes, leaving 251658240 bytes to the OS according to -memory.allowedPercent=60"}
{"ts":"2023-07-24T06:00:22.564Z","level":"info","caller":"**/lib/storage/storage.go:873","msg":"nothing to load from \"/storage/cache/curr_hour_metric_ids\""}
{"ts":"2023-07-24T06:00:22.564Z","level":"info","caller":"**/lib/storage/storage.go:873","msg":"nothing to load from \"/storage/cache/prev_hour_metric_ids\""}
{"ts":"2023-07-24T06:00:22.564Z","level":"info","caller":"**/lib/storage/storage.go:833","msg":"nothing to load from \"/storage/cache/next_day_metric_ids\""}
{"ts":"2023-07-24T06:00:22.586Z","level":"info","caller":"**/app/vmstorage/main.go:112","msg":"successfully opened storage \"/storage\" in 0.027 seconds; partsCount: 0; blocksCount: 0; rowsCount: 0; sizeBytes: 0"}

Параметры запуска

{"ts":"2023-07-24T06:00:22.559Z","level":"info","caller":"**/lib/logger/flag.go:13","msg":"command-line flags"}
{"ts":"2023-07-24T06:00:22.559Z","level":"info","caller":"**/lib/logger/flag.go:20","msg":" -envflag.enable=\"true\""}
{"ts":"2023-07-24T06:00:22.559Z","level":"info","caller":"**/lib/logger/flag.go:20","msg":" -envflag.prefix=\"GATM_\""}
{"ts":"2023-07-24T06:00:22.559Z","level":"info","caller":"**/lib/logger/flag.go:20","msg":" -loggerFormat=\"json\""}
{"ts":"2023-07-24T06:00:22.559Z","level":"info","caller":"**/lib/logger/flag.go:20","msg":" -loggerLevel=\"INFO\""}
{"ts":"2023-07-24T06:00:22.559Z","level":"info","caller":"**/lib/logger/flag.go:20","msg":" -retentionPeriod=\"1d\""}
{"ts":"2023-07-24T06:00:22.559Z","level":"info","caller":"**/lib/logger/flag.go:20","msg":" -storageDataPath=\"/storage\""}

Успешное подключение insert/select

{"ts":"2023-07-24T06:00:22.587Z","level":"info","caller":"**/app/vmstorage/servers/vminsert.go:65","msg":"accepting vminsert conns at 0.0.0.0:8400"}
{"ts":"2023-07-24T06:00:22.587Z","level":"info","caller":"**/lib/vmselectapi/server.go:157","msg":"accepting vmselect conns at 0.0.0.0:8401"}
{"ts":"2023-07-24T06:00:22.587Z","level":"info","caller":"**/lib/httpserver/httpserver.go:96","msg":"starting http server at http://***.*.*.*:8482/"}
{"ts":"2023-07-24T06:00:22.587Z","level":"info","caller":"**/lib/httpserver/httpserver.go:97","msg":"pprof handlers are exposed at http://***.*.*.*:8482/debug/pprof/"}
{"ts":"2023-07-24T06:00:45.037Z","level":"info","caller":"**/app/vmstorage/servers/vminsert.go:114","msg":"processing vminsert conn from ***.*.*.*:37931"}

Резервирование данных для хранения

{"ts":"2023-07-24T06:00:45.040Z","level":"info","caller":"**/lib/storage/partition.go:221","msg":"creating a partition \"2023_07\" with smallPartsPath=\"/storage/data/small/2023_07\", bigPartsPath=\"/storage/data/big/2023_07\""}
{"ts":"2023-07-24T06:00:45.042Z","level":"info","caller":"**/lib/storage/partition.go:230","msg":"partition \"2023_07\" has been created"}

Alert#

Уровни логирования DEBUG, INFO, WARN, ERROR, FATAL или PANIC. Уровень логирования задается при старте приложения в настройках «kind: ConfigMap». Уровень по умолчанию: INFO. Уровень логирования устанавливает администратор данного компонента.

Уровень логирования DEBUG не рекомендован для ПРОМ среды.

Наименование контейнера в рамках «kind: Pod» — synapse-metrics-alert.

Разворачивание среды

2023-07-19T07:37:30.670Z info **/lib/logger/flag.go:12 build version: vmalert-20230718-052954-heads-test-build-bin-0-g2ee14fe1e
2023-07-19T07:37:30.670Z info **/lib/logger/flag.go:13 command-line flags
2023-07-19T07:37:30.670Z info **/lib/logger/flag.go:20 -datasource.url="secret"
2023-07-19T07:37:30.670Z info **/lib/logger/flag.go:20 -disableNotifiers="true"
2023-07-19T07:37:30.670Z info **/lib/logger/flag.go:20 -remoteRead.url="secret"
2023-07-19T07:37:30.670Z info **/lib/logger/flag.go:20 -remoteWrite.url="secret"
2023-07-19T07:37:30.670Z info **/lib/logger/flag.go:20 -rule="/var/log/rules/*.yaml"
2023-07-19T07:37:30.672Z info **/app/vmalert/main.go:175 reading rules configuration file from "/var/log/rules/*.yaml"
2023-07-19T07:37:30.673Z info **/app/vmalert/config/log/logger.go:52 found 4 files to read from "Local FS{MatchPattern: \"/var/log/rules/*.yaml\"}"
2023-07-19T07:37:30.673Z info **/app/vmalert/config/log/logger.go:52 finished reading 4 files in 90.093µs from "Local FS{MatchPattern: \"/var/log/rules/*.yaml\"}"
2023-07-19T07:37:30.824Z info **/lib/httpserver/httpserver.go:96 starting http server at http://127.0.0.1:8880/
2023-07-19T07:37:30.824Z info **/lib/httpserver/httpserver.go:97 pprof handlers are exposed at http://127.0.0.1:8880/debug/pprof/

Параметры запуска

2023-07-19T07:37:30.670Z info **/lib/logger/flag.go:20 -datasource.url="secret"
2023-07-19T07:37:30.670Z info **/lib/logger/flag.go:20 -disableNotifiers="true"
2023-07-19T07:37:30.670Z info **/lib/logger/flag.go:20 -remoteRead.url="secret"
2023-07-19T07:37:30.670Z info **/lib/logger/flag.go:20 -remoteWrite.url="secret"
2023-07-19T07:37:30.670Z info **/lib/logger/flag.go:20 -rule="/var/log/rules/*.yaml"

Загрузка правил агрегации

2023-07-19T07:37:30.672Z info **/app/vmalert/main.go:175 reading rules configuration file from "/var/log/rules/*.yaml"
2023-07-19T07:37:30.673Z info **/app/vmalert/config/log/logger.go:52 found 4 files to read from "Local FS{MatchPattern: \"/var/log/rules/*.yaml\"}"
2023-07-19T07:37:30.673Z info **/app/vmalert/config/log/logger.go:52 finished reading 4 files in 90.093µs from "Local FS{MatchPattern: \"/var/log/rules/*.yaml\"}"

Успешная обработка правил агрегации

2023-07-19T07:37:31.956Z info **/app/vmalert/group.go:309 group "kube-apiserver.rules" started; interval=1m0s; concurrency=1
2023-07-19T07:37:34.137Z info **/app/vmalert/group.go:309 group "openshift-sre.rules" started; interval=1m0s; concurrency=1

Ошибка при обработке правил агрегации

2023-07-19T07:37:31.973Z error **/app/vmalert/group.go:326 group "kube-apiserver.rules": rule "apiserver_request:burnrate6h": 
2023-07-19T07:37:31.973Z error **/app/vmalert/group.go:326 group "kube-apiserver.rules": rule "apiserver_request:burnrate5m"

При старте допустимы сообщения об ошибках, так как есть временной диапазон по старту контейнера «istio-proxy», если ошибки не будут повторяться, то приложение работает в штатном режиме.

Также в указанных ошибках транслируются ошибки связанные с сетевым взаимодействием компонент, таким как agent и select.

События мониторинга#

Agent#

Метрика

Описание

gatm_job_target_up

Информирование о количестве целей (target), в рамках которых ошибок не выявлено. Тег «base_job» конкретизирует задачу по сбору метрик.

gatm_job_target_down

Информирование о количестве целей (target), в рамках которых выявлены ошибки при сборе. Тег «base_job» конкретизирует задачу по сбору метрик.

gatm_promscrape_scraped_samples_sum

Количество построчных метрик.

gatm_promscrape_conn_reads_total

Общее количество запросов по целям сбора.

gatm_promscrape_conn_read_errors_total

Общее количество ошибок по целям сбора.

flag

Информация о флагах запуска приложения.

gatm_promscrape_targets

Общее количество целей в рамках задач по сбору.

gatm_http_requests_total

Общее количество запросов.

Kafka Adapter#

Метрика

Описание

http_requests_total

Общее количество запросов.

Event Exporter#

Метрика

Описание

gatm_event_exporter_execution_total

Общее количество реализованных запросов по сбору событий.

gatm_event_exporter_events_handled

Общее количество успешно реализованных запросов по сбору событий.

kube_event_unique_events_total

Информация в рамках события, полученного в рамках сбора, уникальных.

kube_event_count

Информация в рамках события, полученного в рамках сбора.

Select#

Метрика

Описание

vm_requests_total

Общее количество запросов.

vm_rows_read_per_query_sum

Количество метрик в рамках запроса.

flag

Информация о флагах запуска приложения.

vm_tcpdialer_errors_total

Общее количество запросов с ошибками к storage.

vm_tcpdialer_dials_total

Общее количество запросов к storage.

vm_http_requests_total

Общее количество запросов к select.

vm_http_request_errors_total

Общее количество запросов с ошибками к select.

Insert#

Метрика

Описание

vm_rows_inserted_total

Общее количество записей в рамках storage.

flag

Информация о флагах запуска приложения.

vm_tcpdialer_errors_total

Общее количество запросов с ошибками к storage.

vm_tcpdialer_dials_total

Общее количество запросов к storage.

vm_http_requests_total

Общее количество запросов к insert.

vm_http_request_errors_total

Общее количество запросов с ошибками к insert.

Storage#

Метрика

Описание

vm_rows_merged_total

Общее количество добавленных метрик.

flag

Информация о флагах запуска приложения.

vm_rows_added_to_storage_total

Количество записанных метрик.

vm_vmselect_rpc_requests_total

Количество запросов на чтение метрик.

vm_data_size_bytes

Количество используемой памяти для хранения.

Alert#

Метрика

Описание

vmalert_execution_total

Количество запусков правил по агрегации.

flag

Информация о флагах запуска приложения.

Часто встречающиеся проблемы и пути их устранения#

Проблема

Причина

Решение

Не стартует Pod приложения

Недостаточно ресурсов

Увеличить limits/requests для приложения

Нет доступной node для запуска

Зарегистрировать обращение в поддержку инфраструктуры

Ошибка в конфигурации

Выгрузить лог, провести анализ, скорректировать конфигурацию

Ресурсы Pod не соответствуют ограничениям, заданным в LimitRanges

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

Частый перезапуск контейнера приложения

Медленная загрузка приложения

Увеличить задержку и/или интервал опроса Liveness пробы

Недостаточно ресурсов

Увеличить limits/requests для приложения

Ошибка при вызове

Нет доступных Pods сервиса, которому направлен вызов

Проверить состояние сервиса-получателя вызова

Ошибки в конфигурации сервисного прокси

Выгрузить лог сервисного прокси, проанализировать, устранить ошибки (ознакомиться с указанными действиями можно в документации компонента SPVX «Руководство по системному администрированию», раздел «Сценарии администрирования»). Пример устранения: редактирование конфигурации Istio по host вызываемого сервиса.