Versión de la integración6.4.0
Este check monitoriza IBM MQ a partir de la versión 9.1.
Configuración
Instalación
El check de IBM MQ está incluido en el paquete del Datadog Agent.
Para utilizar el check de IBM MQ, asegúrate de tener instalada la versión 9.1 del Cliente de IBM MQ o una superior (a menos que ya tengas instalada una versión compatible del servidor de IBM MQ en el host del Agent). Por ejemplo, el Cliente redistribuible 9.3. Actualmente, el check de IBM MQ no admite la conexión a un servidor de IBM MQ en z/OS.
En Linux
Actualiza LD_LIBRARY_PATH
para incluir la localización de las bibliotecas. Crea esta variable de entorno si aún no existe.
Por ejemplo, si instalaste el cliente en /opt
:
export LD_LIBRARY_PATH=/opt/mqm/lib64:/opt/mqm/lib:$LD_LIBRARY_PATH
Nota: la versión 6 del Agent o superiores utilizan upstart
, systemd
o launchd
para orquestar el servicio datadog-agent. Puede ser necesario añadir variables de entorno a los archivos de configuración del servicio en las siguientes localizaciones predeterminadas:
- Upstart (Linux):
/etc/init/datadog-agent.conf
- Systemd (Linux):
/lib/systemd/system/datadog-agent.service
- Launchd (MacOS):
~/Library/LaunchAgents/com.datadoghq.agent.plist
Ejemplo de la configuración para systemd
:
[Unit]
Description="Datadog Agent"
After=network.target
Wants=datadog-agent-trace.service datadog-agent-process.service
StartLimitIntervalSec=10
StartLimitBurst=5
[Service]
Type=simple
PIDFile=/opt/datadog-agent/run/agent.pid
Environment="LD_LIBRARY_PATH=/opt/mqm/lib64:/opt/mqm/lib:$LD_LIBRARY_PATH"
User=dd-agent
Restart=on-failure
ExecStart=/opt/datadog-agent/bin/agent/agent run -p /opt/datadog-agent/run/agent.pid
[Install]
WantedBy=multi-user.target
Ejemplo de la configuración para upstart
:
description "Datadog Agent"
start on started networking
stop on runlevel [!2345]
respawn
respawn limit 10 5
normal exit 0
console log
env DD_LOG_TO_CONSOLE=false
env LD_LIBRARY_PATH=/opt/mqm/lib64:/opt/mqm/lib:$LD_LIBRARY_PATH
setuid dd-agent
script
exec /opt/datadog-agent/bin/agent/agent start -p /opt/datadog-agent/run/agent.pid
end script
post-stop script
rm -f /opt/datadog-agent/run/agent.pid
end script
Ejemplo de la configuración para launchd
:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>KeepAlive</key>
<dict>
<key>SuccessfulExit</key>
<false/>
</dict>
<key>Label</key>
<string>com.datadoghq.agent</string>
<key>EnvironmentVariables</key>
<dict>
<key>DD_LOG_TO_CONSOLE</key>
<string>false</string>
<key>LD_LIBRARY_PATH</key>
<string>/opt/mqm/lib64:/opt/mqm/lib</string>
</dict>
<key>ProgramArguments</key>
<array>
<string>/opt/datadog-agent/bin/agent/agent</string>
<string>run</string>
</array>
<key>StandardOutPath</key>
<string>/var/log/datadog/launchd.log</string>
<key>StandardErrorPath</key>
<string>/var/log/datadog/launchd.log</string>
<key>ExitTimeOut</key>
<integer>10</integer>
</dict>
</plist>
Cada vez que se produce una actualización del Agent, estos archivos se borran y deben actualizarse de nuevo.
De manera alternativa, si utilizas Linux, asegúrese de que el conector del tiempo de ejecución pueda encontrar las bibliotecas una vez instalado el Cliente de MQ. Por ejemplo, con ldconfig:
Pon la localización de la biblioteca en un archivo de configuración ld.
sudo sh -c "echo /opt/mqm/lib64 > /etc/ld.so.conf.d/mqm64.conf"
sudo sh -c "echo /opt/mqm/lib > /etc/ld.so.conf.d/mqm.conf"
Actualiza los enlaces:
En Windows
Hay un archivo llamado mqclient.ini
en el directorio de datos de IBM MQ. Normalmente es C:\ProgramData\IBM\MQ
.
Configura la variable de entorno MQ_FILE_PATH
de modo que apunte hacia el directorio de datos.
Permisos y autenticación
Hay muchas formas de configurar los permisos en IBM MQ. Dependiendo de cómo funcione tu configuración, crea un usuario datadog
dentro de MQ con permisos de solo lectura y, de manera opcional, permisos +chg
. Se requieren permisos +chg
para recopilar métricas de estadísticas de cola de restablecimiento (MQCMD_RESET_Q_STATS
). Si no quieres recopilar estas métricas, puedes deshabilitar collect_reset_queue_metrics
en la configuración. La recopilación de datos de rendimiento de las estadísticas de cola de restablecimiento también restablecerá los datos de rendimiento.
Nota: “Queue Monitoring” (Monitorización de cola) debe estar habilitado en el servidor de MQ y configurado como mínimo en “Medium” (Intermedio). Esto se puede hacer mediante la interfaz de usuario de MQ o con un comando mqsc
en el host del servidor:
> /opt/mqm/bin/runmqsc
5724-H72 (C) Copyright IBM Corp. 1994, 2018.
Starting MQSC for queue manager datadog.
ALTER QMGR MONQ(MEDIUM) MONCHL(MEDIUM)
1 : ALTER QMGR MONQ(MEDIUM) MONCHL(MEDIUM)
AMQ8005I: IBM MQ queue manager changed.
:
One MQSC command read.
No commands have a syntax error.
All valid MQSC commands were processed.
Configuración
Host
Para configurar este check para un Agent que se ejecuta en un host, haz lo siguiente:
Recopilación de métricas
Edita el archivo ibm_mq.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 IBM MQ. Consulta el archivo de ejemplo ibm_mq.d/conf.yaml para conocer todas las opciones de configuración disponibles.
Hay muchas opciones para configurar IBM MQ, dependiendo de cómo lo utilices.
channel
: el canal de IBM MQ.queue_manager
: el administrador de colas denominado.host
: el host donde se ejecuta IBM MQ.port
: el puerto que IBM MQ ha expuesto.convert_endianness
: debes habilitar esta opción si tu servidor de MQ se ejecuta en AIX o IBM i.
Si utilizas una configuración de nombre de usuario y contraseña, puedes definir username
y password
. Si no defines ningún nombre de usuario, se utiliza el del propietario de procesos del Agent (dd-agent
).
Nota: El check solo monitoriza las colas que defines con el parámetro queues
.
queues:
- APP.QUEUE.1
- ADMIN.QUEUE.1
Reinicia el Agent.
Recopilación de logs
Disponible para las versiones del Agent a partir de la 6.0
La recopilación de logs se encuentra deshabilitada de manera predeterminada en el Datadog Agent; habilítala en el archivo datadog.yaml
:
Luego, apunta el archivo de configuración hacia los archivos de logs de MQ adecuados. Puedes quitar las líneas al final del archivo de configuración de la integración de MQ y modificarlas como creas conveniente:
logs:
- type: file
path: '/var/mqm/log/<APPNAME>/active/AMQERR01.LOG'
service: '<APPNAME>'
source: ibm_mq
log_processing_rules:
- type: multi_line
name: new_log_start_with_date
pattern: "\d{2}/\d{2}/\d{4}"
Reinicia el Agent.
Contenedores
En el caso de los entornos en contenedores, consulta las Plantillas de integración de Autodiscovery para obtener orientación sobre la aplicación de los parámetros que se indican abajo.
Recopilación de métricas
Parámetro | Valor |
---|
<INTEGRATION_NAME> | ibm_mq |
<INIT_CONFIG> | en blanco o {} |
<INSTANCE_CONFIG> | {"channel": "DEV.ADMIN.SVRCONN", "queue_manager": "datadog", "host":"%%host%%", "port":"%%port%%", "queues":["<QUEUE_NAME>"]} |
Recopilación de logs
Disponible para las versiones del Agent a partir de la 6.0
La recopilación de logs se encuentra deshabilitada de manera predeterminada en el Datadog Agent. Para habilitarla, consulta Recopilación de logs de Kubernetes.
Parámetro | Valor |
---|
<LOG_CONFIG> | {"source": "ibm_mq", "service": "<SERVICE_NAME>", "log_processing_rules": {"type":"multi_line","name":"new_log_start_with_date", "pattern":"\d{2}/\d{2}/\d{4}"}} |
Validación
Ejecuta el subcomando de estado del Agent y busca ibm_mq
en la sección Checks.
Datos recopilados
Métricas
Eventos
IBM MQ no incluye eventos.
Checks de servicio
Solucionar problemas
Advertencia de permiso MQRC_NOT_AUTHORIZED de las estadísticas de cola de restablecimiento
Si recibes la siguiente advertencia:
Warning: Error getting pcf queue reset metrics for SAMPLE.QUEUE.1: MQI Error. Comp: 2, Reason 2035: FAILED: MQRC_NOT_AUTHORIZED
Esto se debe a que el usuario datadog
no tiene el permiso +chg
para recopilar las métricas de cola de restablecimiento. Para solucionarlo, puedes otorgar permisos +chg
al usuario datadog
mediante setmqaut
y recopilar las métricas de cola de restablecimiento, o bien puedes deshabilitar collect_reset_queue_metrics
:
collect_reset_queue_metrics: false
Utilización de recursos elevada
El check de IBM MQ realiza consultas en el servidor, y a veces estas consultas pueden ser costosas y provocar una degradación en el check.
Si observas que el check tarda demasiado en ejecutarse o que consume muchos recursos de tu host,
puedes reducir potencialmente el contexto del check al intentar lo siguiente:
- Si utilizas
auto_discover_queues
, prueba usar queue_patterns
o queue_regex
en su lugar para descubrir solo determinadas colas. Esto es especialmente importante si tu sistema crea colas dinámicas. - Si utilizas el autodescubrimiento de colas con
queue_patterns
o queue_regex
, intenta ajustar el patrón o regex para que coincida con menos colas. - Deshabilita
auto_discover_channels
si tienes demasiados canales. - Deshabilita
collect_statistics_metrics
.
Errores en los logs
Unpack for type ((67108864,)) not implemented
: si ves errores como éste y tu servidor de MQ se ejecuta en un sistema operativo de IBM, habilita convert_endianness
y reinicia el Agent.
Advertencias en los logs
Error getting [...]: MQI Error. Comp: 2, Reason 2085: FAILED: MQRC_UNKNOWN_OBJECT_NAME
: si ves mensajes como este, es porque la integración está intentando recopilar métricas de una cola que no existe. Esto puede deberse a una configuración incorrecta o, si utilizas auto_discover_queues
, la integración puede descubrir una cola dinámica y luego, cuando intenta recopilar sus métricas, la cola ya no existe. En este caso, puedes mitigar el problema al definir queue_patterns
o queue_regex
más estrictos, o simplemente ignorar la advertencia.
Otro
¿Necesitas ayuda? Ponte en contacto con el equipo de asistencia de Datadog.
Referencias adicionales
Más enlaces, artículos y documentación útiles: