Диагностический дамп
Диагностический дамп — это архив с полной информацией о состоянии подсистемы мониторинга для последующего анализа инженерами поддержки. Инструмент автоматически собирает:
-
логи всех компонентов;
-
конфигурационные файлы;
-
системную информацию: CPU, память, диски;
-
статусы сервисов;
-
сетевую конфигурацию.
| По завершении сбора скрипт автоматически удаляет из данных конфиденциальную информацию: пароли, SSL-сертификаты и приватные ключи. |
Для сбора данных используйте скрипт run.sh.
Он расположен в директории diagnostic/ дистрибутива.
Чтобы скрипт run.sh работал корректно, в одной директории с ним должен находиться скрипт collect.sh.
Скрипт упаковывает собранные данные в архив, который создаётся в той же директории, что и скрипт run.sh.
Данные в архиве упорядочены по директориям:
-
configs/— конфигурационные файлы компонентов, агентов и прокси; -
logs/— журналы работы компонентов, агентов и прокси; -
sys/— информация о состоянии памяти, CPU, дисках и сети; -
vision/— информация о процессах и сервисах Визион.
Также в архив помещается журнал работы скрипта — файл diagnostic.log.
Содержимое дампа
Логи компонентов
| Компонент | Тип лога | Путь |
|---|---|---|
|
journal |
– |
|
journal + file |
|
|
journal + file |
|
|
journal |
– |
|
journal + file |
|
|
journal + file |
|
|
journal + file |
|
|
journal |
– |
|
journal |
– |
|
journal |
– |
|
journal |
– |
|
journal + file |
|
|
journal |
– |
|
journal |
– |
|
journal |
– |
|
journal + file |
|
| Компонент | Тип лога | Путь |
|---|---|---|
|
journal + file |
|
|
journal + file |
|
| Компонент | Тип лога | Путь |
|---|---|---|
|
journal + file |
|
|
journal + file |
|
|
journal + file |
|
|
journal + file |
|
|
journal + file |
|
|
journal + file |
|
|
journal + file |
|
|
journal + file |
|
Если файл лога не существует, сбор пропускается с записью в diagnostic.log.
|
Конфигурационные файлы
-
/opt/skala-r/etc/vision/server/*— конфигурации сервера; -
/opt/skala-r/etc/vision/proxy/*— конфигурации прокси; -
/opt/skala-r/etc/vision/agent/*— конфигурации агентов; -
/etc/nginx/nginx.confи site-конфигурации; -
конфигурации PostgreSQL (все возможные пути);
-
etcd.conf(для HA-кластеров); -
все
.service-файлы systemd.
Требования
Одноузловая конфигурация (одиночный сервер)
Многоузловая конфигурация (High Availability)
Для сбора диагностики со всех узлов HA-кластера за один запуск используйте кластерный режим.
Подготовка инвентаря
Создайте YAML-файл с описанием узлов кластера:
all:
vars:
user: "root"
port: "22"
hosts:
postgres1:
host: "192.168.1.101"
postgres2:
host: "192.168.1.102"
postgres3:
host: "192.168.1.103"
core1:
host: "192.168.1.110"
user: "admin"
port: 2222
core2:
host: "192.168.1.111"
core3:
host: "192.168.1.112"
victoria1:
host: "192.168.1.120"
victoria2:
host: "192.168.1.121"
victoria3:
host: "192.168.1.122"
| Структура файла похожа на инвентарь Ansible, однако сам Ansible для сбора дампа не используется. |
Параметры файла инвентаря:
| Параметр | Описание | Значение по умолчанию |
|---|---|---|
|
Пользователь SSH для всех хостов |
|
|
Порт SSH для всех хостов |
|
|
IP-адрес или hostname узла |
– |
|
Пользователь для конкретного хоста |
из |
|
Порт для конкретного хоста |
из |
Хосты со значением host: "[REPLACE_ME]" пропускаются.
Запуск сбора
Укажите путь к инвентарю в команде запуска скрипта:
./run.sh -c -i /path/to/inventory.yml
Здесь:
-
-c— кластерный режим; -
-i <file>— путь к файлу инвентаря.
Структура результатов
После завершения создаётся архив vision_diagnostic_cluster_<дата>_<время>.tar.gz, содержащий следующие файлы:
vision_diagnostic_cluster_2024-01-15_10-30-00/
├── local_diagnostic_2024-01-15_10-30-00.tar.gz
├── postgres1_diagnostic_2024-01-15_10-30-00.tar.gz
├── postgres2_diagnostic_2024-01-15_10-30-00.tar.gz
├── postgres3_diagnostic_2024-01-15_10-30-00.tar.gz
├── core1_diagnostic_2024-01-15_10-30-00.tar.gz
├── core2_diagnostic_2024-01-15_10-30-00.tar.gz
├── core3_diagnostic_2024-01-15_10-30-00.tar.gz
├── victoria1_diagnostic_2024-01-15_10-30-00.tar.gz
├── victoria2_diagnostic_2024-01-15_10-30-00.tar.gz
├── victoria3_diagnostic_2024-01-15_10-30-00.tar.gz
└── <hostname>_FAILED.txt
Файлы ошибок:
-
<hostname>_FAILED.txt— сбор с узла не удался; -
<hostname>_UNREACHABLE.txt— узел недоступен по сети.
Структура архива
Внутри каждого vision_diagnostic_*.tar.gz создаётся следующая структура:
.
├── diagnostic.log
├── vision/
│ ├── processes
│ ├── services
│ ├── skalar_files
│ └── ...
├── sys/
│ ├── ram_vmstat
│ ├── ram_free
│ ├── ram_meminfo
│ ├── ram_iostat
│ ├── sys_journalctl
│ ├── sys_dmesg
│ ├── sys_uname
│ ├── sys_date
│ ├── cpu_cpuinfo
│ ├── cpu_lscpu
│ ├── rom_df
│ ├── rom_lsblk
│ └── net_netstat
├── logs/
│ ├── vision_config_updater/
│ │ ├── journal
│ │ └── audit
│ ├── vision_core/
│ │ ├── journal
│ │ └── audit
│ ├── nginx/
│ ├── postgresql/
│ ├── victoriametrics_st/
│ ├── ...
│ └── plagent/
│ ├── journal
│ └── audit
└── configs/
├── vision_config_updater/
│ └── vision_config_updater.service
├── vision_core/
│ └── vision_core.service
├── nginx/
│ ├── nginx.conf
│ ├── default.conf
│ └── vision.conf
├── postgres/
│ ├── postgresql.conf
│ └── pg_hba.conf
├── etcd/
│ └── etcd.conf
└── ...