Apache APISIX se integra con Google Cloud Logging para mejorar el procesamiento de logs

API7.ai

December 22, 2021

Ecosystem

Apache APISIX-Google Cloud Logging cover

El registro es una infraestructura importante para los sistemas distribuidos. Puede ayudar a los desarrolladores a observar el estado de operación del servicio, mejorar la eficiencia de la resolución de problemas y diagnóstico del servicio, y realizar análisis multidimensionales para mejorar la estabilidad general y la eficiencia operativa del sistema.

Google Cloud Logging es un servicio de gestión de registros en tiempo real proporcionado por Google Cloud, que ofrece almacenamiento a nivel de EB, búsqueda, análisis y servicios de alertas. El navegador de registros de Google Cloud Logging permite buscar, ordenar y analizar registros de manera fácil y eficiente, y también proporciona consultas guardadas y funciones gráficas enriquecidas para que los resultados del filtrado de registros sean recuperables y más intuitivos.

Apache APISIX ha admitido previamente la integración de HTTP Logger, TCP Logger, Kafka Logger, UDP Logger, RocketMQ Logger, SkyWalking Logger, Aliyun Cloud Logging(SLS) y muchas otras soluciones de servicios de registro en la nube y de código abierto.

Recientemente, Apache APISIX también ha añadido soporte para Google Cloud Logging, ofreciendo a los usuarios una nueva solución de registro cuando utilizan Apache APISIX como puerta de enlace: usar google-cloud-logging para reenviar los registros de solicitudes de Apache APISIX al servicio de Google Cloud Logging para su análisis y almacenamiento.

Cuando el plugin está habilitado, Apache APISIX tomará la información del contexto de la solicitud en la fase de registro y la serializará en LogEntry de Google Cloud Logging, luego enviará los datos de registro serializados a la cola por lotes, y cuando la cola por lotes alcance un umbral de tiempo o entradas establecido por el usuario, los datos de registro se reenviarán al servicio de Google Cloud Logging a través de la API de Google Cloud.

Este artículo explicará cómo configurar y utilizar el servicio de Google Cloud Logging en Apache APISIX.

Configurar Google Cloud

  1. Abra su navegador y visite la página de inicio de Google Cloud.
  2. Ingrese su nombre de usuario y contraseña para iniciar sesión en la consola de Google Cloud.
  3. Haga clic en el menú izquierdo de la consola de Google Cloud y seleccione "IAM & Admin > Crear un proyecto" para comenzar a crear un proyecto. crear un proyecto
  4. Ingrese un nombre de proyecto, seleccione un nombre de organización y haga clic en "CREAR" para crear el proyecto. crear un proyecto-2
  5. Cuando el proyecto se haya creado con éxito, la esquina superior derecha de la consola indicará que la creación fue exitosa. notificación del proyecto
  6. Haga clic en la ventana para seleccionar el proyecto, o seleccione la ruta de operación del proyecto en la barra de navegación superior de la página de inicio de la consola. Después de seleccionar el proyecto, será redirigido a la página de inicio de la consola, donde ya podrá ver los datos sobre el proyecto actual en la barra de navegación superior y la información del proyecto en el centro de información. ver su proyecto
  7. Después de crear el proyecto, necesita crear una cuenta de servicio para el proyecto. Vuelva a la página de inicio de la consola de Google Cloud y haga clic en "IAM & Admin > Cuenta de servicio" en el menú izquierdo para comenzar a crear una cuenta de servicio. comenzar a crear una cuenta de servicio
  8. Haga clic en "CREAR CUENTA DE SERVICIO" para crear la cuenta de servicio. crear una cuenta de servicio
  9. Ingrese el nombre de la cuenta de servicio y el ID (el ID generalmente sigue la generación de la cuenta), y luego haga clic en "CREAR Y CONTINUAR". crear una cuenta de servicio-2
  10. Haga clic en "Rol" y escriba "Logging Admin" en el cuadro de búsqueda para buscar este rol y seleccione "Logging Admin" como el rol. crear una cuenta de servicio-3
  11. Haga clic en "HECHO" para completar la creación de la cuenta de servicio y saltar a la página de inicio de la cuenta de servicio. En este punto, puede ver la cuenta que acaba de crear y sus detalles en la lista. información de la cuenta de servicio
  12. Haga clic en "Administrar claves" en la última columna de la cuenta de servicio para ingresar a la interfaz de gestión de claves secretas. ingresar a la interfaz de gestión de claves secretas
  13. Haga clic en "AGREGAR CLAVE > Crear nueva clave" para comenzar a crear una nueva clave secreta. crear una nueva clave secreta
  14. Seleccione el tipo de clave secreta como "JSON" en la página emergente, y luego haga clic en "CREAR" para crear una nueva clave secreta. crear una nueva clave secreta-2
  15. La información de la clave privada se descargará automáticamente al directorio de descargas predeterminado del sistema a través de su navegador. Cuando habilite el plugin google-cloud-logging, necesitará usar la información en esta clave privada, así que guarde el archivo de la clave privada. Descargar su clave

Configurar Apache APISIX

Habilitar el plugin google-cloud-logging

Opción 1: Configuración de carga de archivo de clave

  1. Cargue el archivo de clave privada al servidor del nodo de Apache APISIX.
  2. Configure la ruta del archivo en google-cloud-logging.auth_file, como se muestra a continuación:
curl http://127.0.0.1:9080/apisix/admin/routes/1  -H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1' -X PUT -d '
{
    "uri":"/logging.do",
    "upstream":{
        "type":"roundrobin",
        "nodes":{
            "127.0.0.1:1980":1
        }
    },
    "plugins":{
        "google-cloud-logging":{
            // Archivo de clave privada de Google Cloud Logging
            "auth_file":"/ruta/al/apache-apisix-fcafc68c2f41.json",
            // Número máximo de entradas por cola por lotes.
            "batch_max_size": 1,
            // Tiempo máximo para refrescar el búfer en segundos.
            "inactive_timeout": 10
        }
    }
}'

Opción 2: Declarar configuraciones en JSON

  1. Abra el archivo de clave privada.
  2. Configure el valor de project_id en google-cloud-logging.auth_config.project_id.
  3. Configure el valor de private_key en google-cloud-logging.auth_config.private_key. Como se muestra a continuación:
curl http://127.0.0.1:9080/apisix/admin/routes/1  -H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1' -X PUT -d '
{
    "uri":"/logging.do",
    "upstream":{
        "type":"roundrobin",
        "nodes":{
            "127.0.0.1:1980":1
        }
    },
    "plugins":{
        "google-cloud-logging":{
            // Archivo de clave privada de Google Cloud Logging
            "auth_config":{
                "project_id":"apache-apisix",
                "private_key":"-----BEGIN RSA PRIVATE KEY-----su clave privada-----END RSA PRIVATE KEY-----"
            },
            // Número máximo de entradas por cola por lotes.
            "batch_max_size": 1,
            // Tiempo máximo para refrescar el búfer en segundos.
            "inactive_timeout": 10
        }
    }
}'

Parámetros

NombreRequeridoValor por DefectoDescripción
auth_configNon/aArchivo de clave privada de Google Cloud Logging. Debe configurarse auth_config o auth_file.
auth_config.private_keyn/aClave privada de Google Cloud Logging.
auth_config.project_idn/aID del proyecto de la cuenta de servicio de Google.
auth_config.token_uriNooauth2.googleapis.com/tokenURI del token que solicita la cuenta de servicios de Google.
auth_config.entries_uriNologging.googleapis.com/v2/entries
API de escritura de entradas de registro de Google Log Service.
auth_config.scopesNo["https://www.googleapis.com/auth/logging.read","https://www.googleapis.com/auth/logging.write","https://www.googleapis.com/auth/logging.admin","https://www.googleapis.com/auth/cloud-platform"]Alcance de acceso de la cuenta de servicios de Google, consulte: OAuth 2.0 Scopes for Google APIs
auth_fileNon/aRuta al archivo JSON de la cuenta de servicios de Google (debe configurarse auth_config o auth_file)
ssl_verifyNoTRUEHabilitar autenticación SSL, configurado según las opciones de documentación de OpenResty.
resourceNo{"type": "global"}Recursos monitoreados de Google, consulte MonitoredResource.
log_idNoapisix.apache.org%2FlogsID de registro de Google, referencia: LogEntry.
max_retry_countNo0Número máximo de reintentos antes de la eliminación de la tubería de procesamiento.
retry_delayNo1Número de segundos que debe retrasarse la ejecución del proceso si falla.
buffer_durationNo60Duración máxima (en segundos) de la entrada más antigua en el lote que debe procesarse primero.
inactive_timeoutNo10Tiempo máximo para refrescar el búfer en segundos.
batch_max_sizeNo100Tiempo máximo para refrescar el búfer en segundos.

Verificar que el plugin está funcionando correctamente

  1. Ejecute el siguiente comando para enviar una solicitud a Google Cloud Logging.

    curl -i http://127.0.0.1:9080/logging.do
    HTTP/1.1 200 OK
    Content-Type: text/html; charset=utf-8
    Transfer-Encoding: chunked
    Connection: keep-alive
    Date: Fri, 10 Dec 2021 09:57:52 GMT
    Server: APISIX/2.11.0
    
    Hola, Google Cloud Logging
    
  2. Abra su navegador y visite la página de inicio de Google Cloud.

  3. Ingrese su nombre de usuario y contraseña para iniciar sesión en la consola de Google Cloud.

  4. Vea el registro de solicitudes enviadas a través del navegador de registros, y los resultados devueltos se muestran a continuación. Ver el registro

Deshabilitar el plugin google-cloud-logging

Puede eliminar el bloque de configuración relacionado con google-cloud-logging para desactivar el plugin si ha terminado de usarlo.

curl http://127.0.0.1:9080/apisix/admin/routes/1  -H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1' -X PUT -d '
{
    "uri":"/logging.do",
    "upstream":{
        "type":"roundrobin",
        "nodes":{
            "127.0.0.1:1980":1
        }
    },
    "plugins":{
    }
}'

Resumen

Este artículo describe los pasos detallados para la interfaz entre Apache APISIX y Google Cloud Logging. Esperamos que este artículo le brinde una comprensión más clara del uso de Google Cloud Logging en Apache APISIX y facilite la operación práctica posterior.

Apache APISIX no solo se compromete a mantener su propio alto rendimiento, sino que también siempre ha prestado gran atención a la construcción de su ecosistema de código abierto. Actualmente, Apache APISIX tiene más de 10 plugins relacionados con el registro y admite la interfaz con proyectos de registro de código abierto principales en la industria.

Si tiene la necesidad de conectarse a otros registros, visite el GitHub de Apache APISIX y deje sus sugerencias a través de un issue; o suscríbase a la lista de correo de Apache APISIX y exprese sus pensamientos por correo electrónico.

Artículos relacionados

Apache APISIX se integra con SkyWalking para crear un procesamiento completo de registros

Apache APISIX & RocketMQ ayuda a las capacidades de monitoreo de registros de API del usuario

Tags: