Uso de la herramienta support-bundles

La herramienta support-bundles recopila varios tipos de paquetes o modos de datos de diagnóstico de Private Cloud Appliance, como el estado de la comprobación del sistema, las salidas de comandos y los logs.

Según las opciones de comandos proporcionadas, estos paquetes pueden contener logs o estados. Todos los modos recopilan archivos en un directorio de paquetes. No se permite más de un proceso de paquete de soporte a la vez. Se crea un archivo de bloqueo de paquete de soporte al principio de la recopilación de paquetes y se elimina cuando se completa la recopilación de paquetes.

Todos los comandos support-bundles se devuelven inmediatamente y la recopilación de paquetes se ejecuta en segundo plano. Esto se debe a que las recopilaciones de paquetes pueden tardar horas en completarse. Los paquetes se almacenan durante dos días y, a continuación, se suprimen automáticamente.

Se admiten los siguientes tipos de paquetes:

  • Modo de conexión. Recopila datos sobre el estado actual de Private Cloud Appliance.

  • Modo de porción de tiempo. Recopila datos por intervalos de tiempo. Estos resultados se pueden limitar aún más especificando el nombre de pod, el trabajo y la etiqueta k8s_app.

  • Modo de combinación. Recopila una combinación de datos de triaje y división de tiempo.

  • Modo nativo. Recopila datos de los nodos de gestión, cálculo y ZFS y de los hosts de ILOM y Cisco.

Una buena manera de comenzar a investigar un problema es recopilar un paquete combo. Busque NOT_HEALTHY en los resultados del modo triage y compárelo con lo que ve en los resultados del modo time_slice.

El comando support-bundles necesita una opción de modo. Todos los modos aceptan la opción de número de solicitud de servicio. Consulte la siguiente tabla. Los modos de porción de tiempo y nativo tienen opciones adicionales.

Opción

Descripción

Necesario

-m mode

El tipo de paquete.

-sr SR_number

--sr_number SR_number

El número de solicitud de servicios.

no

La salida del comando support-bundles se almacena en el siguiente directorio del nodo de gestión, donde bundle-type es el modo: triage, time_slice, combo o native:

/nfs/shared_storage/support_bundles/SR_number_bundle-type-bundle_timestamp/

SR_number se utiliza si ha proporcionado la opción -sr. Si está creando el paquete de soporte para una solicitud de servicio, especifique SR_number.

Este directorio contiene un archivo de progreso de recopilación de paquetes y un archivo de almacenamiento cuyo nombre es el siguiente:

bundle-type_collection.log
SR_number_bundle-type-bundle_timestamp.tar.gz

El archivo de almacenamiento contiene un archivo header.json con los siguientes componentes predeterminados:

  • current-time: registro de hora

  • create-support-bundle: línea de comandos que se ha utilizado

  • sr-number: número de solicitud de servicio asociado al archivo de almacenamiento

Conexión al Nodo de Gestión

Para utilizar el comando support-bundles, inicie sesión como root en el nodo de gestión que ejecuta recursos de marcapasos. Recopile los datos primero desde el nodo de gestión que ejecuta los recursos de Marcapasos y, a continuación, desde otros nodos de gestión según sea necesario.

Si no sabe qué nodo de gestión está ejecutando recursos de marcapasos, inicie sesión en cualquier nodo de gestión y compruebe el estado del cluster de marcapasos. El siguiente comando muestra que los recursos del cluster de marcapasos se están ejecutando en pcamn01.

[root@pcamn01 ~]# pcs status
Cluster name: mncluster
Stack: corosync
Current DC: pcamn01
...
Full list of resources:

scsi_fencing (stonith:fence_scsi): Stopped (disabled)
Resource Group: mgmt-rg
vip-mgmt-int (ocf::heartbeat:IPaddr2): Started pcamn01
vip-mgmt-host (ocf::heartbeat:IPaddr2): Started pcamn01
vip-mgmt-ilom (ocf::heartbeat:IPaddr2): Started pcamn01
vip-mgmt-lb (ocf::heartbeat:IPaddr2): Started pcamn01
vip-mgmt-ext (ocf::heartbeat:IPaddr2): Started pcamn01
l1api (systemd:l1api): Started pcamn01
haproxy (ocf::heartbeat:haproxy): Started pcamn01
pca-node-state (systemd:pca_node_state): Started pcamn01
dhcp (ocf::heartbeat:dhcpd): Started pcamn01
hw-monitor (systemd:hw_monitor): Started pcamn01

Daemon Status:
corosync: active/enabled
pacemaker: active/enabled
pcsd: active/enabled

Modo de triaje

En el modo triage, se consulta a Prometheus platform_health_check para los estados HEALTHY y NOT_HEALTHY. Si se encuentra NOT_HEALTHY, utilice el modo time_slice para obtener más detalles.

# support-bundles -m triage

Los siguientes archivos están en el archivo de almacenamiento de salida.

Archivo

Descripción

header.json

Registro de hora y línea de comandos para generar este paquete.

compute_node_info.json

Pods que se ejecutan en el nodo de cálculo.

hardware_info.json

Lista de componentes de hardware recuperada de hms, todos los ipmitool fru que se ejecutan en todos los nodos de cálculo y gestión de estado listos, toda la información de cabezales zfssa.

management_node_info.json

Pods que se ejecutan en el nodo de gestión.

rack_info.json

Tiempo de instalación y versión del rack.

loki_search_results.log.n

Archivos de fragmentos en json.

Modo de porción de tiempo

En el modo de división de tiempo, los datos se recopilan especificando los registros de hora de inicio y finalización. Se requieren las dos opciones siguientes:

  • -s start_date

  • -e end_date

El modo de segmento de tiempo tiene las siguientes opciones además de las opciones de modo y número de solicitud de servicio. Estas opciones ayudan a limitar la recopilación de datos. Si no especifica la opción -j o --all, los datos se recopilan de todos los trabajos del comprobador de estado.

  • Solo se puede especificar uno de los valores --job_name, --all y --k8s_app.

  • Si no se especifica ninguno de los valores --job_name, --all o --k8s_app, el filtrado de pod se producirá por defecto (.+checker).

  • La opción --all puede recopilar una gran cantidad de datos. Es posible que desee limitar su porción de tiempo a 48 horas.

Ejemplo:

# support-bundles -m time_slice -j flannel-checker -s 2021-05-29T22:40:00.000Z \
-e 2021-06-29T22:40:00.000Z -l INFO

Vea más ejemplos a continuación.

Opción

Descripción

Necesario

-s timestamp

--start_date timestamp

Fecha de inicio con el formato yyyy-mmm-ddTHH:mm:ss

El argumento mínimo es yyyy-mmm-dd

-e timestamp

--end_date timestamp

Fecha de finalización con el formato yyyy-mmm-ddTHH:mm:ss

El argumento mínimo es yyyy-mmm-dd

-j job_name

--job_name job_name

Nombre de trabajo de Loki. Valor por defecto: .+checker

Consulte Consulta de lista de etiquetas a continuación.

no

--k8s_app label

Valor de etiqueta k8s_app que se va a consultar en el trabajo k8s-stdout-logs.

Consulte Consulta de lista de etiquetas a continuación.

no
--all Consulta todos los nombres de trabajo, excepto los trabajos conocidos por demasiados registros, como audit, kubernetes-audit, vault-audit y la etiqueta k8s_app pcacoredns. no

-l level

--levelname level

Nivel de mensaje

no

--pod_name pod_name

Nombre del pod (como kube o network-checker) para filtrar la salida según el pod. Sólo son necesarias las letras iniciales.

no

-t timeout

--timeout timeout

Timeout en segundos para una sola consulta de Loki. Por defecto, son 180 segundos.

no

Consulta de lista de etiquetas

Utilice la consulta de lista de etiquetas para mostrar los nombres de trabajo disponibles y los valores de etiqueta k8s_app.

# support-bundles -m label_list
2021-10-14T23:19:18.265 - support_bundles - INFO - Starting Support Bundles
2021-10-14T23:19:18.317 - support_bundles - INFO - Locating filter-logs Pod
2021-10-14T23:19:18.344 - support_bundles - INFO - Executing command - ['python3', 
'/usr/lib/python3.6/site-packages/filter_logs/label_list.py']
2021-10-14T23:19:18.666 - support_bundles - INFO -
Label:  job
Values: ['admin', 'api-server', 'asr-client', 'asrclient-checker', 'audit', 'cert-checker', 'ceui', 
'compute', 'corosync', 'etcd', 'etcd-checker', 'filesystem', 'filter-logs', 'flannel-checker', 
'his', 'hms', 'iam', 'k8s-stdout-logs', 'kubelet', 'kubernetes-audit', 'kubernetes-checker', 
'l0-cluster-services-checker', 'messages', 'mysql-cluster-checker', 'network-checker', 'ovm-agent', 
'ovn-controller', 'ovs-vswitchd', 'ovsdb-server', 'pca-healthchecker', 'pca-nwctl', 'pca-platform-l0', 
'pca-platform-l1api', 'pca-upgrader', 'pcsd', 'registry-checker', 'sauron-checker', 'secure', 
'storagectl', 'uws', 'vault', 'vault-audit', 'vault-checker', 'zfssa-checker', 'zfssa-log-exporter']
 
Label:  k8s_app
Values: ['admin', 'api', 'asr-client', 'asrclient-checker', 'brs', 'cert-checker', 'compute', 
'default-http-backend', 'dr-admin', 'etcd', 'etcd-checker', 'filesystem', 'filter-logs', 
'flannel-checker', 'fluentd', 'ha-cluster-exporter', 'has', 'his', 'hms', 'iam', 'ilom', 
'kube-apiserver', 'kube-controller-manager', 'kube-proxy', 'kubernetes-checker', '
l0-cluster-services-checker', 'loki', 'loki-bnr', 'mysql-cluster-checker', 'mysqld-exporter', 
'network-checker', 'pcacoredns', 'pcadnsmgr', 'pcanetwork', 'pcaswitchmgr', 'prometheus', 'rabbitmq', 
'registry-checker', 'sauron-api', 'sauron-checker', 'sauron-grafana', 'sauron-ingress-controller', 
'sauron-mandos', 'sauron-operator', 'sauron-prometheus', 'sauron-prometheus-gw', 
'sauron-sauron-exporter', 'sauron.oracledx.com', 'storagectl', 'switch-metric', 'uws', 'vault-checker', 
'vmconsole', 'zfssa-analytics-exporter', 'zfssa-csi-nodeplugin', 'zfssa-csi-provisioner', 'zfssa-log-exporter']

Ejemplos:

  • Sin etiqueta de trabajo, sin etiqueta k8s_app, recopile el log de todos los comprobadores de estado.

    # support-bundles -m time_slice -sr 3-xxxxxxxxxxx -s "2022-01-11T00:00:00" -e "2022-01-12T23:59:59"
  • Un trabajo ceui.

    # support-bundles -m time_slice -sr 3-xxxxxxxxxxx -j ceui -s "2022-01-11T00:00:00" -e "2022-01-12T23:59:59"
  • Un comprobador de red k8s_app.

    # support-bundles -m time_slice -sr 3-xxxxxxxxxxx --k8s_app network-checker -s "2022-01-11T00:00:00" -e "2022-01-12T23:59:59"
  • Todos los puestos y la fecha.

    # support-bundles -m time_slice -sr 3-xxxxxxxxxxx -s `date -d "2 days ago" -u +"%Y-%m-%dT%H:%M:%S.000Z"` -e `date -d +u +"%Y-%m-%dT%H:%M:%S.000Z"`
  • Todos los trabajos.

    # support-bundles -m time_slice -sr 3-xxxxxxxxxxx --all -s "2022-01-11T00:00:00" -e "2022-01-12T23:59:59"

Los siguientes archivos están en el archivo de almacenamiento de salida.

Archivo

Descripción

header.json

Registro de hora y línea de comandos para generar este paquete.

loki_search_results.log.n

Archivos de fragmentos en json. Los paquetes de segmentos de tiempo tienen un límite de 500 000 logs por consulta, desde la hora de inicio.

rack_info.json

Tiempo de instalación y versión del rack.

Modo combinado

El modo combo es una combinación de un grupo de triaje y un grupo de segmentos de tiempo. La salida incluye un archivo de almacenamiento y dos archivos log de recopilación: triage_collection.log y time_slice_collection.log.

Los siguientes archivos están en el archivo de almacenamiento de salida.

Archivo

Descripción

triage-bundle_timestamp.tar.gz

Archivo de almacenamiento del grupo de triaje.

time_slice-bundle_timestamp.tar.gz

Archivo de almacenamiento del paquete de segmentos de tiempo.

Los datos del segmento de tiempo recopilados son para trabajos --all desde una hora anterior a la hora actual hasta la hora actual.

Modo nativo

El archivo native_collection.log del directorio de paquetes proporciona información sobre el progreso de la recopilación. Los paquetes nativos pueden tardar horas en recopilarse.

El modo native tiene los siguientes parámetros además del modo y el número de solicitud de servicio.

Parámetro

Descripción

Necesario

-t nativetype

--type nativetype

  • zfs_bundle

  • sosreport

  • ilom_snapshot

  • cisco_bundle

Valor por defecto: zfs_bundle

no

-c component

--component component

Nombre de componente, como el nombre de un nodo de gestión, cálculo o ZFS, o un host de ILOM o Cisco.

no

Los siguientes archivos están en el archivo de almacenamiento de salida.

Archivo

Descripción

header.json

Registro de hora y línea de comandos para generar este paquete.

Archivos de paquete nativos

Estos archivos son específicos de nativetype especificado.

rack_info.json

Tiempo de instalación y versión del rack.

Paquete de ZFS

Cuando nativetype es un paquete de compatibilidad con ZFS, la recopilación se inicia en ambos nodos de ZFS y descarga los nuevos paquetes de compatibilidad con ZFS en el directorio de paquetes. Cuando no se especifica nativetype, zfs_bundle se crea por defecto.

# support-bundles -m native -t zfs_bundle
Paquete de informes de SOS

Cuando nativetype es un grupo de informes de SOS, el informe se recopila del nodo de gestión o nodo de cálculo especificado por el parámetro --component. Si no se especifica --component, el informe se recopila de todos los nodos de gestión y cálculo.

# support-bundles -m native -t sosreport -c pcamn01
Instantánea de ILOM

Cuando nativeType=ilom_snapshot, el valor del parámetro --component es el nombre de host de ILOM de un nodo de gestión o nodo de cálculo. Si no se especifica el parámetro --component, el informe se recopila de todos los hosts ILOM.

# support-bundles -m native -t ilom_snapshot -c ilom-pcacn007
Paquete de Cisco

Cuando nativetype es cisco-bundle, el valor del parámetro --component es un nombre de host interno de gestión, agregación o gestión del conmutador de acceso de Cisco.

# support-bundles -m native -t cisco-bundle -c accsn01

Para crear un tipo de recopilación cisco-bundle, se deben cumplir las siguientes condiciones:

  • El módulo OBFL de Cisco debe estar activado en todos los conmutadores Cisco de Private Cloud Appliance. El módulo OBFL de Cisco está activado de forma predeterminada en todos los conmutadores Cisco de Private Cloud Appliance.

  • El módulo Cisco EEM debe estar activado en todos los conmutadores Cisco de Private Cloud Appliance. El módulo Cisco EEM está habilitado de manera predeterminada en todos los conmutadores Cisco de Private Cloud Appliance.

  • Política de EEM (Embedded Event Manager)