PowerFlex: PFMP_SUPPORT - Утиліта Support Bundle Collection
Résumé: pfmp_support - збирати діагностичні дані PowerFlex Manager і об'єднувати їх у пакет підтримки
Instructions
pfmp_support [ОПЦІЇ]
ОПИС
pfmp_support — це діагностична утиліта, яка збирає інформацію про налагодження з PowerFlex Manager або хоста PowerFlex Manager Installer і архівує її у стиснений пакет для аналізу працівниками підтримки.
Компанія збирає дані з кількох джерел, зокрема:
- Діагностичні дані, конфігурація та журнали Kubernetes
- Інформація про випуск штурвала
- Дані виконання Docker і контейнерів
- Логи інсталятора PowerFlex Manager
- Конфігурація операційної системи, журнали та стан виконання
- Інвентаризація апаратного забезпечення
При зборі даних із кількох вузлів кластеру Kubernetes стандартний пучок (--skip-kubernetes-shared не вказано) слід збирати принаймні з одного вузла, де kubectl та helm доступні та мають доступ до керуючої площини Kubernetes. На наступних вузлах --skip-kubernetes-shared може використовуватися для зменшення розміру зібраних даних.
Отриманий пакет — це один стиснений архів (tar/gz за замовчуванням), який можна перенести до підтримки PowerFlex для подальшого аналізу.
Лише один екземпляр pfmp_support може працювати на хості одночасно. Якщо для його виводу недостатньо вільного місця, він відмовляється працювати (якщо тільки перевірка пробілу не буде явно пропущена).
ВАРІАНТИ
Загальні опції
-
-DIR ,--installer-root-path=DIR
Використовуйте DIR як базову директорію інсталятора PowerFlex Manager. Корисно при зборі даних PowerFlex Installer та контейнера інсталятора (
atlantic_installer) не працює. За замовчуванням: автоматично виявлено, або/var. -
-d OUT_DIR, --output-dir=OUT_DIR
Зберігайте отриманий пакет у каталогу OUT_DIR. За замовчуванням:
<WORK_DIR>/powerflex-pfmpsupport(див. --work-dir). -
-Г, --допоможіть
Покажіть повідомлення допомоги і вийдіть. У поєднанні з --tech, також опція техніка дисплея.
-
-J, --xz
Використовуйте формат tar/xz для зібраного набору замість стандартного tar/gz. Ігнорується, якщо система
tar(1)не підтримує--use-compress-programабоxz(1)не знайдено. -
-n NAMESPACE, --namespace=NAMESPACE
Збирати додаткові дані з NAMESPACE, специфічного для застосунку Kubernetes. За замовчуванням:
powerflex. -
-N, --пропуск пробілу-перевірка
Пропустіть безкоштовну перевірку місця на диску перед збором даних.
-
- p PATH, --collector-path=PATH
Зберіть додатковий шлях PATH. Приймаються лише абсолютні шляхи. Приймає джокери; дикі карти мають бути процитовані. Цю опцію можна вказати кілька разів для збору кількох шляхів.
-
-Q, --тихо, --тиша
Приглушуйте повідомлення на стандартному виході.
-
-s, --skip-kubernetes-shared
Пропустити збір спільних (кластерних) даних Kubernetes. Дані Kubernetes і хост для кожного вузла все ще збираються. Корисно для багатовузлових колекцій для зменшення розміру; дані кластера слід збирати принаймні з одного вузла.
-
- w WORK_DIR, --work-dir=WORK_DIR
Використовуйте WORK_DIR каталог для тимчасових файлів. За замовчуванням:
/tmp. -
- x FILE, --output-file=FILE
Зберігайте зібраний пакет у файлі з назвою FILE. Відповідний суфікс імені файлу (
.tgz,.zip, тощо) додається автоматично. Якщо FILE —-(тире), записати пучок у стандартний вихід (означає --quiet). Коли пучок записується на стандартний вихід, на диску не створюється файл пучків. За замовчуванням:pfmpSupport. -
-z, --zip
Використовуйте zip-формат для зібраного набору замість стандартного tar/gz. Ігнорується, якщо
zip(1)не знаходиться в системі. -
--overwrite-output-file
Перезапишіть вихідний файл, якщо він уже існує. Коли вихідний файл або каталог явно вказані (через -x або -d), за замовчуванням відмовляється перезаписувати; ця опція перекреслює це.
-
--tech
Включіть опції техніка у вихідному повідомленні допомоги.
Варіанти техніків
Наступні опції призначені для використання техніками підтримки і відображаються у повідомленні допомоги лише тоді, коли вказано --tech.
-
--продовжуйте роботу-дир
Зберігайте згенерований тимчасовий робочий каталог після створення пакету (зазвичай це автоматично очищається).
-
--старі-под-логи
Збирайте старі журнали pod Kubernetes із локального rsyslog сховища. Коли його опускають, струм (
kubectl logs) та попередні (kubectl logs --previous) контейнерні колоди все ще збираються.
СТРУКТУРА ПУЧКА
Вихідний пучок — це один стиснений архів.
- Каталог найвищого рівня bundle — це ім'я хоста зібраної системи.
- Загальні командні виходи хоста йдуть у
server/підкаталог. Назва файлу:<command>+<arguments>+ суфікс (.txtза замовчуванням). Пробіли, замінені на_, неалфавітно-цифрові символи видалені.
Приклад:server/ip_-s_addr.txt - output of ip -s addr - Вихідні команди Kubectl, Helm і Docker потрапляють у відповідні підкаталоги. Вони також організовані за обсягом,
<namespace>/<pod>/<container>, де це застосовно.
Ім'я команди, область об'єктів і аргументи, пов'язані з форматом виводу, видаляються. Назва файлу:<subcommand>+<arguments>+ суфікс (.txtза замовчуванням). Пробіли, замінені на_, неалфавітно-цифрові символи видалені.
Вихідні команди Kubectl Exec зберігаються уexec/підкаталогу капсули.
Приклади:kubectl/version.txt- вихідkubectl versionkubectl/all-namespaces/get_pods.yaml-- вихідkubectl -o=yaml get --all-namespaces podskubectl/powerflex/asmui-7d6944dcb8-zqqtk/asmui/logs_--previous.txt- вихідkubectl logs -n powerflex --container asmui --previous asmui-7d6944dcb8-zqqtkkubectl/powerflex/nats-server-box-6d685b4b7d-cf278/nats-box/exec/nats_stream_report.txt- вихідkubectl exec -n powerflex --container nats-box nats-server-box-6d685b4b7d-cf278 -- nats stream reporthelm/powerflex/get_all_asmmanager.txt- вихідhelm get -n powerflex all asmmanagerdocker/ps_-a.txt- вихідdocker ps -a
- Файли, витягнуті з контейнерів pod, розміщуються під каталогом контейнера на шляху до внутрішньоконтейнерної файлової системи.
Приклад:kubectl/powerflex/thin-deployer-5657659bc7-gzbq4/thin-deployer/opt/Dell/ASM/deployments/8aaa809298a9efe10198aa58c8874f35/deployment.log- копія/opt/Dell/ASM/deployments/8aaa809298a9efe10198aa58c8874f35/deployment.logвитягнуто зсерединиthin-deployerконтейнерthin-deployer-5657659bc7-gzbq4Pod - Файли хост-файлової системи розміщуються на шляху до файлової системи відносно кореня пучків.
Приклади:etc/os-release - copy of /etc/os-releasevar/log/messages - copy of /var/log/messagesproc/cpuinfo - copy of /proc/cpuinfovar/lib/rancher/rke2/agent/logs/kubelet.log - copy of /var/lib/rancher/rke2/agent/logs/kubelet.log
- Приховані файли (з префіксом крапки) «розкриваються» шляхом видалення провідної крапки.
- Журнал виконання утиліти,
pfmp_support.log, розміщується безпосередньо під <назвою> хоста/коренем.
Структура дерева каталогу пучків:
<hostname>/
|-- pfmp_support.log Utility execution log
|-- server/ General command output directory
| |-- ip_-s_addr.txt
| |-- uptime.txt
| |-- uname_-a.txt
| |-- ps_-elF.txt
| |-- dmesg_-T.txt
| +-- ... (one file per collected command)
|
|-- kubectl/ kubectl command output directory
| |-- version.txt Non-namespace-specific commands
| |-- ...
| |-- all-namespaces/ Cross-namespace commands
| | |-- get_pods.txt
| | |-- get_pods.yaml
| | +-- ...
| +-- <namespace>/ Per-namespace Kubernetes data
| +-- <pod>/ Per-pod data
| +-- <container>/ Per-container data
| |-- logs.txt Current container logs
| |-- exec/ Commands executed within container (if any)
| | +-- ...
| |-- <dir>/ Files extracted from container (if any)
| +-- ...
|-- helm/ helm command output directory
|-- docker/ docker command output directory
|
|-- etc/ Host files
| |-- os-release
| |-- sysconfig/
| |-- network/
| +-- ...
|-- var/
| |-- log/
| | |-- messages
| | +-- ...
| |-- lib/rancher/rke2/
| +-- ...
|-- proc/
| |-- cpuinfo
| |-- meminfo
| +-- ...
|-- sys/
|-- ...
|
|-- powerflex-pfmpsupport-extra/ Extra diagnostic data (if present)
+-- powerflex-pfmpsupport-backup/ Backed-up configuration files (if any)
ДИСКОВИЙ ПРОСТІР
Вимоги до місця на диску для тимчасових файлів і отриманого пакету можуть суттєво відрізнятися.
Утиліта намагається мінімізувати тимчасове використання простору; вона обмежена командними виходами та копіями зібраної віртуальної файлової системи (/proc та /sys) справ.
Щоб мінімізувати використання дискового простору на хості PowerFlex Manager, пакет можна транслювати з віддаленого хоста за допомогою --output-file=-. Під час потокового трансляції файл bundle записується безпосередньо на стандартний вихід (stdout); він не створюється на диску.
Перед збором даних утиліта оцінює необхідний дисковий простір як для тимчасового робочого каталогу, так і для вихідного пакета.
Якщо оцінений необхідний простір перевищує доступний простір у відповідній файловій системі(ах), утиліта завершує роботу з помилкою. Цю перевірку можна обійти за допомогою --пропуску пробілу-check.
Робочий каталог і каталог вихідних даних можуть знаходитися в різних файлових системах; кожна перевіряється незалежно.
Орієнтовні вимоги до простору записуються у лог-файл утиліти, pfmp_support.log.
СТАТУС ВИЇЗДУ
| 0 | Успішне завершення |
| 1 | Помилка (некоректні аргументи, недостатньо місця, інша інстанція вже запущена, помилка генерації bundle, зафіксований сигнал тощо) |
ФАЙЛИ
<WORK_DIR>/pfmp_support.log |
Журнал виконання (також включений до набору) |
<WORK_DIR>/powerflex-pfmpsupport-tmp/ |
Тимчасовий робочий довідник (очищено після успіху) |
/tmp/powerflex-pfmpsupport/pfmpSupport.tgz |
Розташування вихідного пучка за замовчуванням |
<WORK_DIR>/powerflex-pfmpsupport-extra/
/tmp/powerflex-pfmpsupport-extra/ |
Додаткові каталоги діагностичних даних |
/tmp/powerflex-pfmpsupport-backup/ |
Тимчасові резервні копії змінених конфігураційних файлів (автоматично створені) |
НАВКОЛИШНЄ СЕРЕДОВИЩЕ
Передумови
- Утиліта має запускатися як root (або користувач із достатніми правами для читання системних файлів, виконання діагностичних команд, взаємодії з кластером Kubernetes та доступу
/proc,/sysтощо). - Стандартні утиліти:
tar,gzip,stat,find,awk,sed,getopt(1)(покращено),nice. - Опціонально:
zip(для--zip),xz(для--xz).
Паралельність
Одночасно може працювати лише один екземпляр pfmp_support. Утиліта перевіряє наявність існуючого запущеного екземпляра за допомогою pidof(1) і припиняється, якщо знайдено такий.
Обробка сигналів
Пастки утилітарних пристроїв INT, EXIT, та TERM сигналів під час збору даних. Після отримання сигналу він:
- Відновлює всі резервні файли конфігурації.
- Прибирає тимчасові каталоги.
- Виходи зі статусом 1.
Журнал виконання зберігається, а його шлях друкується зі стандартною помилкою.
ПРИКЛАДИ
Зберіть стандартний пакет підтримки:
pfmp_support
Збирати пучки з кількох вузлів у кластері Kubernetes.
- На одному вузлі з
kubectlтаhelmдоступ, зберіть усі дані Kubernetes:pfmp_support - На наступних вузлах пропускайте спільні дані Kubernetes:
pfmp_support --skip-kubernetes-shared
Транслювати пакет через SSH-з'єднання, не створюючи файл bundle на віддаленому хості PowerFlex Manager:
ssh <host> 'pfmp_support --output-file=-' > pfmpSupport-<host>.tgz
Використовуйте інший робочий довідник, щоб уникнути заповнення /tmp:
pfmp_support --work-dir=/var/tmp
Додайте власні шляхи до набору:
pfmp_support --collect-path=/opt/custom/app/logs --collect-path='/var/log/app*'