Asegúrate de disponer de un usuario de MapR (con nombre, contraseña, UID y GID) con el permiso ‘consume’ en el flujo (stream) /var/mapr/mapr.monitoring/metricstreams. Puede ser un usuario existente o un usuario nuevo.
Si utilizas Python 3 con el Agent v7, reemplaza pip por pip3.
Añade /opt/mapr/lib/ a /etc/ld.so.conf (o un archivo en /etc/ld.so.conf.d/). Esto es necesario para que la mapr-streams-library que utiliza el Agent encuentre las bibliotecas compartidas de MapR.
Vuelve a cargar las bibliotecas ejecutando sudo ldconfig.
Configura la integración mediante la especificación de la localización del ticket.
Notas adicionales
Si no tienes habilitada la “seguridad” en el clúster, puedes continuar sin un ticket.
Si tu entorno de producción no admite herramientas de compilación como gcc (necesarias para compilar la mapr-streams-library), es posible generar un archivo wheel compilado de la biblioteca en una instancia de desarrollo y distribuir el archivo wheel compilado a producción. Los hosts de desarrollo y producción tienen que ser lo suficientemente similares para que el archivo wheel compilado sea compatible. Puedes ejecutar sudo -u dd-agent /opt/datadog-agent/embedded/bin/pip wheel --global-option=build_ext --global-option="--library-dirs=/opt/mapr/lib" --global-option="--include-dirs=/opt/mapr/include/" mapr-streams-python para crear el archivo de wheel en la máquina de desarrollo. Luego, debes ejecutar sudo -u dd-agent /opt/datadog-agent/embedded/bin/pip install <THE_WHEEL_FILE> en la máquina de producción.
Si utilizas Python 3 con el Agent v7, asegúrate de reemplazar pip por pip3 al instalar la mapr-streams-library.
Configuración
Recopilación de métricas
Edita el archivo mapr.d/conf.yaml, que se encuentra en la carpeta conf.d/ en la raíz del directorio de configuración del Agent, para empezar a recopilar los datos de rendimiento de MapR. Consulta el archivo de ejemplo mapr.d/conf.yaml para conocer todas las opciones de configuración disponibles.
Define el parámetro ticket_location de la configuración como la ruta del ticket de larga duración que creaste.
MapR utiliza FluentD para los logs. Debes usar el complemento de FluentD para Datadog para recopilar los logs de MapR. El siguiente comando descarga e instala el complemento en el directorio correcto.
Luego, actualiza /opt/mapr/fluentd/fluentd-<VERSION>/etc/fluentd/fluentd.conf con la siguiente sección.
<match *>
@type copy
<store> # This section is here by default and sends the logs to ElasticCache for Kibana.
@include /opt/mapr/fluentd/fluentd-<VERSION>/etc/fluentd/es_config.conf
include_tag_key true
tag_key service_name
</store>
<store> # This section also forwards all the logs to Datadog:
@type datadog
@id dd_agent
include_tag_key true
dd_source mapr # Sets "source: mapr" on every log to allow automatic parsing on Datadog.
dd_tags "<KEY>:<VALUE>"
service <YOUR_SERVICE_NAME>
api_key <YOUR_API_KEY>
</store>
Consulta el fluent_datadog_plugin para obtener más detalles sobre las opciones que puedes utilizar.
El Agent entra en un bucle de error luego de configurar la integración de MapR.
Ha habido algunos casos en los que la biblioteca de C dentro de mapr-streams-python genera errores de segmentación debido a problemas de permisos. Asegúrate de que el usuario del dd-agent tenga permiso de lectura en el archivo del ticket y que dicho usuario del dd-agent pueda ejecutar comandos de la maprcli cuando la variable de entorno MAPR_TICKETFILE_LOCATION esté apuntando hacia el ticket.
La integración parece funcionar correctamente, pero no envía ninguna métrica.
Asegúrate de dejar que el Agent se ejecute durante al menos un par de minutos, ya que la integración extrae datos de un tema y MapR necesita introducir datos en ese tema.
Si eso no funciona, pero al ejecutar el Agent manualmente con sudo se muestran datos, se trata de un problema con los permisos. Revisa todo. El usuario de Linux del dd-agent debe ser capaz de utilizar un ticket almacenado localmente, lo que le permite ejecutar consultas en MapR como usuario X (que puede o no ser el mismo dd-agent). Además, el usuario X debe tener el permiso consume en el flujo /var/mapr/mapr.monitoring/metricstreams.
Ves el mensaje confluent_kafka was not imported correctly ...
El entorno integrado del Agent no pudo ejecutar el comando import confluent_kafka. Esto significa que la mapr-streams-library no se instaló dentro del entorno integrado o que no puede encontrar las bibliotecas mapr-core. El mensaje de error debería incluir más detalles.