Movatterモバイル変換


[0]ホーム

URL:


Loading
  1. Elastic Docs/
  2. Reference/
  3. Ingestion tools/
  4. Elastic integrations/
  5. IBM

IBM MQ integration

Version1.8.0 (View all)
Subscription level
What's this?
Basic
Developed by
What's this?
Elastic
Ingestion method(s)File, Prometheus
Minimum Kibana version(s)9.0.0
8.13.0

IBM MQ is a message-oriented middleware for secure and reliable communication between distributed systems. It supports messaging patterns like queuing, publish/subscribe, and assures message delivery without a direct connection between sender and receiver.

Use the IBM MQ integration to:

  • Collect Queue Manager performance metrics and error logs, providing insights into messages, topics, subscriptions, and operational events.
  • Streamline observability by ingesting IBM MQ metrics and logs into Elasticsearch, enabling centralized monitoring and analysis of IBM MQ environments.
  • Enhance system reliability through real-time analysis and proactive alerting based on collected metrics and logs.

The IBM MQ integration collects logs and metrics data.

Logs provide insights into operations and events within the IBM MQ environment. The errorlog data stream collected by the IBM MQ integration enables users to track errors and warnings, understand their causes, and address issues related to message handling and processing.

Metrics provide statistics on the performance and health of IBM MQ. The qmgr data stream collected by the IBM MQ integration covers Queue Manager performance metrics, including message throughput, topics, subscriptions, and other operational statistics. This allows users to monitor and optimize the performance and reliability of their IBM MQ instances.

Data streams:

  • errorlog: Collects error and warning messages from the IBM MQ Queue Manager, providing details like error descriptions, actions, explanations, and error codes.
  • qmgr: Collects performance metrics from the Queue Manager, including message throughput, topics, subscriptions, and other vital operational statistics.

NOTE:You can monitor and view logs within the ingested documents for IBM MQ using the logs-* index pattern in Discover. For metrics, the corresponding index pattern is metrics-*.

This integration has been tested against IBM MQ v9.1 and IBM MQ v9.2. Currently, theibmmq qmgr data stream is only compatible with the containerized versions of IBM MQ, such as those available fromIBM Cloud Container Registry orDocker Hub.

You need Elasticsearch for storing and searching your data and Kibana for visualizing and managing it. You can use our hosted Elasticsearch Service on Elastic Cloud, which is recommended or self-manage the Elastic Stack on your own hardware.

To ingest data from IBM MQ:

  • You should specify Hostname and Port (example: localhost:9157) of Prometheus endpoint (/metrics).
  • You should specify the path of IBM MQ Queue Manager Error logs. (default paths:/var/mqm/errors/*.LOG and/var/mqm/qmgrs/*/errors/*.LOG)

For step-by-step instructions on how to set up an integration, check theGetting started guide.

Enable Metrics in IBM MQ: Ensure that theMQ_ENABLE_METRICS environment variable is set to true for user's IBM MQ service to expose the metrics endpoint.

The Docker image starts the runmqserver process, which spawns the HTTP server exposing metrics in Prometheus format on port9157.

After the integration is successfully configured, clicking on the Assets tab of the IBM MQ Integration should display a list of available dashboards. Click on the dashboard available for user's configured data stream. It should be populated with the required data.

  • In version 1.3.0 of this integration, the field type ofibmmq.errorlog.error.description has been changed fromtext tokeyword. It is therefore recommended to update theibmmq.errorlog.error.description field to use thekeyword type wherever it is being used. This can be achieved by using theUpdate By Query API, allowing for a seamless transition of the field type fromtext tokeyword facross all relevant documents.

Theqmgr data stream collectsperformance metrics of Queue Manager like messages, topics, subscriptions and calls.

Example
{    "@timestamp": "2024-05-28T10:25:41.537Z",    "agent": {        "ephemeral_id": "2a2b7004-c50a-4ee2-9bc6-78d99713b117",        "id": "476beedd-c7de-4696-a85b-d20aa455d46a",        "name": "docker-fleet-agent",        "type": "metricbeat",        "version": "8.12.0"    },    "data_stream": {        "dataset": "ibmmq.qmgr",        "namespace": "ep",        "type": "metrics"    },    "ecs": {        "version": "8.11.0"    },    "elastic_agent": {        "id": "476beedd-c7de-4696-a85b-d20aa455d46a",        "snapshot": false,        "version": "8.12.0"    },    "event": {        "agent_id_status": "verified",        "category": [            "web"        ],        "dataset": "ibmmq.qmgr",        "duration": 15347292,        "ingested": "2024-05-28T10:25:53Z",        "kind": "metric",        "module": "ibmmq",        "type": [            "info"        ]    },    "host": {        "architecture": "x86_64",        "containerized": true,        "hostname": "docker-fleet-agent",        "id": "829324aac17946dcace17006fa82a2d2",        "ip": [            "192.168.243.9"        ],        "mac": [            "02-42-AC-1F-00-07"        ],        "name": "docker-fleet-agent",        "os": {            "codename": "focal",            "family": "debian",            "kernel": "3.10.0-1160.102.1.el7.x86_64",            "name": "Ubuntu",            "platform": "ubuntu",            "type": "linux",            "version": "20.04.6 LTS (Focal Fossa)"        }    },    "ibmmq": {        "labels": {            "job": "ibmmq",            "qmgr": "QM1"        },        "qmgr": {            "calls": {                "failed": {                    "callback": {                        "count": 0                    },                    "close": {                        "count": 0                    },                    "connections": {                        "count": 0                    },                    "get": {                        "count": 2                    },                    "inquire": {                        "count": 0                    },                    "open": {                        "count": 0                    },                    "set": {                        "count": 0                    },                    "subscription_request": {                        "count": 0                    }                },                "succeeded": {                    "callback": {                        "count": 0                    },                    "close": {                        "count": 0                    },                    "connections": {                        "count": 0                    },                    "control": {                        "count": 0                    },                    "disconnect": {                        "count": 0                    },                    "inquire": {                        "count": 4                    },                    "open": {                        "count": 0                    },                    "set": {                        "count": 0                    },                    "status": {                        "count": 0                    },                    "subscription_request": {                        "count": 0                    }                }            },            "destructive": {                "get": {                    "bytes": 4868,                    "count": 13                }            },            "log": {                "written": {                    "bytes": {                        "logical": 0,                        "physical": 0                    }                }            },            "messages": {                "commit": {                    "count": 0                },                "expired": {                    "count": 0                },                "failed": {                    "browse": {                        "count": 0                    },                    "mq": {                        "put": {                            "count": 0                        },                        "put1": {                            "count": 0                        }                    }                },                "mq": {                    "put": {                        "bytes": 4868,                        "count": 13                    }                },                "non_persistent": {                    "browse": {                        "bytes": 0,                        "count": 0                    },                    "destructive": {                        "get": {                            "count": 13                        }                    },                    "get": {                        "bytes": 4868                    },                    "mq": {                        "put": {                            "count": 13                        },                        "put1": {                            "count": 0                        }                    },                    "put": {                        "bytes": 4868                    }                },                "persistent": {                    "browse": {                        "bytes": 0,                        "count": 0                    },                    "destructive": {                        "get": {                            "count": 0                        }                    },                    "get": {                        "bytes": 0                    },                    "mq": {                        "put": {                            "count": 0                        },                        "put1": {                            "count": 0                        }                    },                    "put": {                        "bytes": 0                    }                },                "published": {                    "subscribers": {                        "bytes": 3500,                        "count": 13                    }                },                "purged": {                    "queue": {                        "count": 0                    }                }            },            "rollback": {                "count": 0            },            "subscription": {                "durable": {                    "alter": {                        "count": 0                    },                    "create": {                        "count": 0                    },                    "delete": {                        "count": 0                    },                    "resume": {                        "count": 0                    }                },                "failed": {                    "create_alter_resume": {                        "count": 0                    },                    "delete": {                        "count": 0                    }                },                "non_durable": {                    "create": {                        "count": 0                    },                    "delete": {                        "count": 0                    }                }            },            "topic": {                "mq": {                    "put": {                        "count": 13,                        "failed": {                            "count": 0                        },                        "non_persistent": {                            "count": 13                        },                        "persistent": {                            "count": 0                        }                    }                },                "put": {                    "bytes": 3500                }            }        }    },    "metricset": {        "name": "collector",        "period": 10000    },    "service": {        "address": "http://elastic-package-service-ibmmq-1:9157/metrics",        "type": "ibmmq"    },    "tags": [        "ibmmq-qmgr"    ]}

ECS Field Reference

Refer to the followingdocument for detailed information on ECS fields.

Exported fields
FieldDescriptionTypeMetric Type
@timestampEvent timestamp.date
agent.idUnique identifier of this agent (if one exists). Example: For Beats this would be beat.id.keyword
cloud.account.idThe cloud account or organization id used to identify different entities in a multi-tenant environment. Examples: AWS account id, Google Cloud ORG Id, or other unique identifier.keyword
cloud.availability_zoneAvailability zone in which this host, resource, or service is located.keyword
cloud.instance.idInstance ID of the host machine.keyword
cloud.providerName of the cloud provider. Example values are aws, azure, gcp, or digitalocean.keyword
cloud.regionRegion in which this host, resource, or service is located.keyword
container.idUnique container id.keyword
data_stream.datasetData stream dataset.constant_keyword
data_stream.namespaceData stream namespace.constant_keyword
data_stream.typeData stream type.constant_keyword
host.nameName of the host. It can contain what hostname returns on Unix systems, the fully qualified domain name (FQDN), or a name specified by the user. The recommended value is the lowercase FQDN of the host.keyword
ibmmq.labels.jobPrometheus label job.keyword
ibmmq.labels.qmgrName of Queue Manager.keyword
ibmmq.qmgr.calls.failed.callback.countFailed MQCB count.longcounter
ibmmq.qmgr.calls.failed.close.countFailed MQCLOSE count.longcounter
ibmmq.qmgr.calls.failed.connections.countFailed MQCONN/MQCONNX count.longcounter
ibmmq.qmgr.calls.failed.get.countFailed MQGET - count.longcounter
ibmmq.qmgr.calls.failed.inquire.countFailed MQINQ count.longcounter
ibmmq.qmgr.calls.failed.open.countFailed MQOPEN count.longcounter
ibmmq.qmgr.calls.failed.set.countFailed MQSET count.longcounter
ibmmq.qmgr.calls.failed.subscription_request.countFailed MQSUBRQ count.longcounter
ibmmq.qmgr.calls.succeeded.callback.countMQCB count.longcounter
ibmmq.qmgr.calls.succeeded.close.countMQCLOSE count.longcounter
ibmmq.qmgr.calls.succeeded.connections.countMQCONN/MQCONNX count.longcounter
ibmmq.qmgr.calls.succeeded.control.countMQCTL count.longcounter
ibmmq.qmgr.calls.succeeded.disconnect.countMQDISC count.longcounter
ibmmq.qmgr.calls.succeeded.inquire.countMQINQ count.longcounter
ibmmq.qmgr.calls.succeeded.open.countMQOPEN count.longcounter
ibmmq.qmgr.calls.succeeded.set.countMQSET count.longcounter
ibmmq.qmgr.calls.succeeded.status.countMQSTAT count.longcounter
ibmmq.qmgr.calls.succeeded.subscription_request.countMQSUBRQ count.longcounter
ibmmq.qmgr.destructive.get.bytesInterval total destructive get - byte count.longcounter
ibmmq.qmgr.destructive.get.countInterval total destructive get - count.longcounter
ibmmq.qmgr.log.written.bytes.logicalLog - logical bytes written.longcounter
ibmmq.qmgr.log.written.bytes.physicalLog - physical bytes written.longcounter
ibmmq.qmgr.messages.commit.countCommit count.longcounter
ibmmq.qmgr.messages.expired.countExpired message count.longcounter
ibmmq.qmgr.messages.failed.browse.countFailed browse count.longcounter
ibmmq.qmgr.messages.failed.mq.put.countFailed MQPUT count.longcounter
ibmmq.qmgr.messages.failed.mq.put1.countFailed MQPUT1 count.longcounter
ibmmq.qmgr.messages.mq.put.bytesInterval total MQPUT/MQPUT1 byte count.longcounter
ibmmq.qmgr.messages.mq.put.countInterval total MQPUT/MQPUT1 count.longcounter
ibmmq.qmgr.messages.non_persistent.browse.bytesNon-persistent message browse - byte count.longcounter
ibmmq.qmgr.messages.non_persistent.browse.countNon-persistent message browse - count.longcounter
ibmmq.qmgr.messages.non_persistent.destructive.get.countNon-persistent message destructive get - count.longcounter
ibmmq.qmgr.messages.non_persistent.get.bytesGot non-persistent messages - byte count.longcounter
ibmmq.qmgr.messages.non_persistent.mq.put.countNon-persistent message MQPUT count.longcounter
ibmmq.qmgr.messages.non_persistent.mq.put1.countNon-persistent message MQPUT1 count.longcounter
ibmmq.qmgr.messages.non_persistent.put.bytesPut non-persistent messages - byte count.longcounter
ibmmq.qmgr.messages.persistent.browse.bytesPersistent message browse - byte count.longcounter
ibmmq.qmgr.messages.persistent.browse.countPersistent message browse - count.longcounter
ibmmq.qmgr.messages.persistent.destructive.get.countPersistent message destructive get - count.longcounter
ibmmq.qmgr.messages.persistent.get.bytesGet persistent messages - byte count.longcounter
ibmmq.qmgr.messages.persistent.mq.put.countPersistent message MQPUT count.longcounter
ibmmq.qmgr.messages.persistent.mq.put1.countPersistent message MQPUT1 count.longcounter
ibmmq.qmgr.messages.persistent.put.bytesPut persistent messages - byte count.longcounter
ibmmq.qmgr.messages.published.subscribers.bytesPublished to subscribers - byte count.longcounter
ibmmq.qmgr.messages.published.subscribers.countPublished to subscribers - message count.longcounter
ibmmq.qmgr.messages.purged.queue.countPurged queue count.longcounter
ibmmq.qmgr.rollback.countRollback count.longcounter
ibmmq.qmgr.subscription.durable.alter.countAlter durable subscription count.longcounter
ibmmq.qmgr.subscription.durable.create.countCreate durable subscription count.longcounter
ibmmq.qmgr.subscription.durable.delete.countDelete durable subscription count.longcounter
ibmmq.qmgr.subscription.durable.resume.countResume durable subscription count.longcounter
ibmmq.qmgr.subscription.failed.create_alter_resume.countFailed create/alter/resume subscription count.longcounter
ibmmq.qmgr.subscription.failed.delete.countSubscription delete failure count.longcounter
ibmmq.qmgr.subscription.non_durable.create.countCreate non-durable subscription count.longcounter
ibmmq.qmgr.subscription.non_durable.delete.countDelete non-durable subscription count.longcounter
ibmmq.qmgr.topic.mq.put.countTopic MQPUT/MQPUT1 interval total.longcounter
ibmmq.qmgr.topic.mq.put.failed.countFailed topic MQPUT/MQPUT1 count.longcounter
ibmmq.qmgr.topic.mq.put.non_persistent.countNon-persistent - topic MQPUT/MQPUT1 count.longcounter
ibmmq.qmgr.topic.mq.put.persistent.countPersistent - topic MQPUT/MQPUT1 count.longcounter
ibmmq.qmgr.topic.put.bytesInterval total topic bytes put.longcounter
service.addressAddress where data about this service was collected from. This should be a URI, network address (ipv4:port or [ipv6]:port) or a resource path (sockets).keyword

Theerrorlog data stream collectsError logs of Queue Manager which include the description, action, explanation and code of the error.

Example
{    "@timestamp": "2024-05-28T10:29:59.860Z",    "agent": {        "ephemeral_id": "cbbb6e1e-c10f-4635-bb3e-b42063268637",        "id": "476beedd-c7de-4696-a85b-d20aa455d46a",        "name": "docker-fleet-agent",        "type": "filebeat",        "version": "8.12.0"    },    "data_stream": {        "dataset": "ibmmq.errorlog",        "namespace": "ep",        "type": "logs"    },    "ecs": {        "version": "8.11.0"    },    "elastic_agent": {        "id": "476beedd-c7de-4696-a85b-d20aa455d46a",        "snapshot": false,        "version": "8.12.0"    },    "event": {        "agent_id_status": "verified",        "created": "2024-05-28T10:30:26.219Z",        "dataset": "ibmmq.errorlog",        "ingested": "2024-05-28T10:30:38Z",        "kind": "event",        "module": "ibmmq",        "type": [            "error"        ]    },    "host": {        "hostname": "99726abecb7d",        "name": "docker-fleet-agent"    },    "ibmmq": {        "errorlog": {            "error": {                "action": "Host Info :- Linux 3.10.0-1160.102.1.el7.x86_64 (MQ Linux (x86-64 platform) 64-bit) Installation :- /opt/mqm (Installation1) Version :- 9.2.4.0 (p924-L211105.DE) ACTION: None.",                "code": "AMQ6287I",                "description": "IBM MQ V9.2.4.0 (p924-L211105.DE).",                "explanation": "IBM MQ system"            },            "insert": {                "comment": [                    "Linux 3.10.0-1160.102.1.el7.x86_64 (MQ Linux (x86-64 platform) 64-bit)",                    "/opt/mqm (Installation1)",                    "9.2.4.0 (p924-L211105.DE)"                ]            },            "installation": "Installation1"        }    },    "input": {        "type": "log"    },    "log": {        "file": {            "path": "/tmp/service_logs/AMQERR01.LOG"        },        "flags": [            "multiline"        ],        "offset": 0    },    "process": {        "pid": 58.1,        "title": "crtmqm"    },    "service": {        "version": "9.2.4.0"    },    "tags": [        "forwarded",        "ibmmq-errorlog"    ],    "user": {        "name": "root"    }}

ECS Field Reference

Refer to the followingdocument for detailed information on ECS fields.

Exported fields
FieldDescriptionType
@timestampEvent timestamp.date
data_stream.datasetData stream dataset.constant_keyword
data_stream.namespaceData stream namespace.constant_keyword
data_stream.typeData stream type.constant_keyword
ibmmq.errorlog.error.actionDefines what to do when the error occurs.keyword
ibmmq.errorlog.error.codeError code.keyword
ibmmq.errorlog.error.descriptionError description.keyword
ibmmq.errorlog.error.explanationExplains the error in more detail.keyword
ibmmq.errorlog.insert.arithChanging content based on error.id.keyword
ibmmq.errorlog.insert.commentChanging content based on error.id.keyword
ibmmq.errorlog.installationThis is the installation name which can be given at installation time. Each installation of IBM MQ on UNIX, Linux, and Windows, has a unique identifier known as an installation name. The installation name is used to associate things such as queue managers and configuration files with an installation.keyword
ibmmq.errorlog.queue_managerName of the queue manager. Queue managers provide queuing services to applications, and manages the queues that belong to them.keyword
input.typeThe input type from which the event was generated. This field is set to the value specified for the type option in the input section of the Filebeat config file.keyword
log.flagsThis field contains the flags of the event.keyword
log.offsetThe file offset the reported line starts at.long

This integration includes one or more Kibana dashboards that visualizes the data collected by the integration. The screenshots below illustrate how the ingested data is displayed.

ibmmq calls
ibmmq messages
ibmmq subscriptions
ibmmq-errorlog
Changelog
VersionDetailsMinimum Kibana version
1.8.0Enhancement (View pull request)
Improve documentation
9.0.0
8.13.0
1.7.0Enhancement (View pull request)
Allow @custom pipeline access to event.original without setting preserve_original_event.
9.0.0
8.13.0
1.6.1Bug fix (View pull request)
Added description to ssl nodes including links to documentation.
9.0.0
8.13.0
1.6.0Enhancement (View pull request)
Add support for Kibana9.0.0.
9.0.0
8.13.0
1.5.0Enhancement (View pull request)
Allow the usage of deprecated log input and support for stack 9.0
8.13.0
1.4.2Bug fix (View pull request)
Update links to getting started docs
8.13.0
1.4.1Enhancement (View pull request)
Update the IBM MQ compatibility section.
8.13.0
1.4.0Enhancement (View pull request)
ECS version updated to 8.11.0. Update the kibana constraint to ^8.13.0. Modified the field definitions to remove ECS fields made redundant by the ecs@mappings component template.
8.13.0
1.3.0Enhancement (View pull request)
Enable secret for thepassword field and add dashboard-level filters.
8.12.0
1.2.5Bug fix (View pull request)
Drop empty events from errorlog data stream responses.
8.8.0
1.2.4Bug fix (View pull request)
Add null and ignore_missing check to handle event.original field.
8.8.0
1.2.3Bug fix (View pull request)
Remove forwarded tag from metrics data stream.
8.8.0
1.2.2Bug fix (View pull request)
Update the docker image.
8.8.0
1.2.1Enhancement (View pull request)
Update description for compatibility
8.8.0
1.2.0Enhancement (View pull request)
Enable time series data streams for the metrics datasets. This dramatically reduces storage for metrics and is expected to progressively improve query performance. For more details, seehttps://www.elastic.co/guide/en/elasticsearch/reference/current/tsds.html.
8.8.0
1.1.0Enhancement (View pull request)
Added metric_type mappings for qmgr datastream for TSDB enablement
8.5.0
1.0.0Enhancement (View pull request)
Make IBM MQ GA
8.5.0
0.6.0Enhancement (View pull request)
Added dimension fields for qmgr datastream for TSDB enablement
8.5.0
0.5.0Enhancement (View pull request)
Rename ownership from obs-service-integrations to obs-infraobs-integrations
8.5.0
0.4.0Enhancement (View pull request)
Migrate visualizations to lens.
8.5.0
0.3.1Enhancement (View pull request)
Added categories and/or subcategories.
8.2.0
0.3.0Enhancement (View pull request)
Update ECS version to 8.5.1
8.2.0
0.2.0Enhancement (View pull request)
Added infrastructure category.
8.2.0
0.1.1Enhancement (View pull request)
IBM MQ integration package with "qmgr" data stream
8.2.0
0.1.0Enhancement (View pull request)
IBM MQ integration package with "errorlog" data stream
8.2.0

[8]ページ先頭

©2009-2026 Movatter.jp