Granting User Access to IBM MQ Monitoring
Understanding Access Control for IBM MQ Monitoring
Nodinite provides a multi-layered security model for controlling who can monitor, manage, and resolve IBM MQ issues. Rather than granting blanket MQ admin rights (dangerous and difficult to audit), you grant fine-grained access via roles, Monitor Views, and alerts.
On this page, you will learn:
- How Nodinite access control layers protect your IBM MQ environments
- How to create Monitor Views that filter what users see
- How to assign Roles that grant specific permissions (view-only, purge, edit thresholds, etc.)
- Step-by-step examples for common access scenarios
- How to propagate alerts to users via Alarm Plugins
Access Control Architecture
Nodinite enforces access control at three levels:
Level 1: User Authentication
Every user must log in with valid Nodinite credentials (Windows AD, LDAP, or local). This establishes who is accessing the system.
Recommendation: Integrate with your corporate Active Directory so user accounts are automatically managed; terminating access is as simple as disabling the AD account.
Level 2: Role-Based Permissions
Roles define what actions a user is allowed to perform:
| Role | Permissions | Typical User |
|---|---|---|
| Administrator | Full access to all features, configuration, user management, audit logs | MQ infrastructure team |
| Monitoring Agent Manager | Configure agent settings, enable/disable resources, manage monitoring policies | Operations manager |
| Remote Actions User | Execute remote actions (purge, browse, edit thresholds) | Operations team, application support |
| Monitor User | View monitoring data, search history, receive alerts (no modifications) | Business operations, managers |
| Custom Role (user-defined) | Fine-grained permissions per organization (e.g., "Purge Test Queues Only") | Domain-specific access |
A user can be assigned multiple roles. Permissions are cumulative (if user has Role A with "view" and Role B with "purge", user can both view and purge).
Recommendation: Create custom Roles matching your organization's teams:
- Application Support Team – View-only access to application queues
- Database Team – Manage database-related queues and channels
- Operations Night Shift – Full purge/browse/edit permissions during night hours
- Business Analyst – Summary alerts, dashboards, no tactical access
Level 3: Monitor View Filters
Monitor Views are scoped dashboards that control which resources (queues, channels, listeners, etc.) a user can see and manage. Even if a user has "purge" permission (Role level), they can only purge queues in Monitor Views they're assigned to.
Example:
Operations Team Role has "purge" permission
↓
BUT
↓
Operations Team assigned to Monitor View "Production-ORDERS" only
↓
RESULT: Operations can purge ORDERS.* queues but cannot see (and thus cannot purge) INVOICES.* queues
This scope limiting ensures:
- Operators cannot accidentally affect queues outside their domain
- Business units see only their applications
- Compliance teams see only regulated resources
- Help desk is limited to specific queues they're authorized to manage
Implementing Role-Based Access: Step-by-Step
Prerequisites
Before delegating access, ensure:
- IBM MQ Monitoring Agent installed – Agent must be running and monitoring your queue managers
- Administrator access – You must have Administrator or equivalent role to configure access
- Users created in Nodinite – Each team member must have a Nodinite user account
- Queue managers configured – Agent is connected to and monitoring your queue managers
Step 1: Define User Roles
First, create or customize Roles matching your organizational structure.
How to create a custom role:
- Log in as Administrator
- Navigate to Administration → Access Management → Roles
- Click "Create Role"
- Name the role (e.g., "Operations - Queue Management")
- Select permissions:
- View Monitoring – ✅ (always enable for active users)
- Execute Remote Actions – ✅ (allow purge, browse, edit thresholds)
- Download Reports – ✅ (allow metric exports)
- Modify Monitor Views – ❌ (not needed for operators)
- Manage Agents – ❌ (only for infrastructure team)
- System Administration – ❌ (only for admins)
- Save the role
Role template examples:
- Read-Only Operator – View, Download Reports only. Use for: managers, business analysts who need situational awareness but not tactical control.
- Queue Manager – View, Remote Actions, Download Reports. Use for: operations team managing queues.
- Channel Specialist – View, Remote Actions (channels/listeners only). Use for: team managing inter-queue-manager connectivity.
- Full Administrator – All permissions. Use for: MQ infrastructure team.
Step 2: Create Monitor Views for Resource Filtering
Monitor Views control which resources a user can see and act upon. You'll create one Monitor View per team or application domain.
How to create a Monitor View:
Log in as Administrator
Navigate to Administration → Monitor Management → Monitor Views
Click "Create Monitor View"
Basic properties:
- Name: (e.g., "ORDERS Application - Operations")
- Description: "Monitoring and management for ORDERS application queues and channels"
- Agent: Select "IBM MQ Monitoring Agent"
Add resources to monitor – Use filters to select which queues, channels, listeners to include:
- Filter by queue name pattern:
ORDERS.*(includes ORDERS.IN, ORDERS.OUT, ORDERS.DLQ, etc.) - Filter by channel name:
ORDERS.* - Filter by queue manager: (select specific queue managers)
- Set expected states (mark test queues as "Expected to be OK" even if full, to suppress alerts)
- Filter by queue name pattern:
Assign users/roles:
- Click "Add Permissions"
- Select roles (e.g., "Operations - Queue Management")
- Select users in that role who can see this Monitor View
- Choose permission level:
- View Only – Users can see resources and historical data but cannot execute actions
- View + Actions – Users can view and execute remote actions (purge, browse, etc.)
Configure alert propagation (optional):
- Enable "Propagate alerts to external systems"
- Select Alarm Plugins (email, Teams, Slack) to notify users when resources in this view transition to Error state
Save the Monitor View
Example Monitor Views:
| Monitor View Name | Audience | Filtered Resources | Permissions |
|---|---|---|---|
| ORDERS-Ops | Operations Team | ORDERS.*, ORDERS queue manager channels | View + Purge/Browse/Edit Thresholds |
| INVOICES-Accounting | Accounting Team | INVOICES.*, invoice-related channels | View Only |
| All-Production-MQ | MQ Admins | All production resources | View + Full Remote Actions |
| Night-Shift-Ops | Night Operations | Critical-only queues, channels, listeners | View + Emergency Actions (purge, restart) |
Step 3: Assign Users to Monitor Views and Roles
Now link users to roles and Monitor Views.
How to assign a user to a role:
- Navigate to Administration → Access Management → Users
- Select the user
- Click "Assign Roles"
- Check roles this user should have (e.g., "Operations - Queue Management")
- Save
How to assign a user to a Monitor View:
- Navigate to the Monitor View you created
- Click "Manage Permissions"
- Add the user or role
- Set permission level (View Only or View + Actions)
- Save
Verification: Log in as the user (or use "Test as User" feature) and confirm:
- User sees ONLY the Monitor Views assigned to them
- User sees ONLY the resources filtered into those Monitor Views
- Action buttons (Purge, Browse, Edit Thresholds) are visible only if user's role has "Remote Actions" permission
Step-by-Step Examples
Example 1: Delegating Queue Management to Operations Team
Scenario: Your operations team manages ORDERS and PAYMENTS queues in production. They should be able to monitor, purge, and browse messages without accessing MQ Explorer or granting them mqm group membership.
Steps:
Create role "Operations - Queue Management"
- Permissions: View Monitoring ✅, Remote Actions ✅
- No system admin access
Create Monitor View "ORDERS+PAYMENTS-Production"
- Filter: Queue names matching
ORDERS.*ORPAYMENTS.* - Queue managers: Production-QM1, Production-QM2 only
- Users: Operations Team members
- Filter: Queue names matching
Assign role to operations team:
- Add "Operations - Queue Management" role to 5 users (ops team members)
Assign Monitor View to operations team:
- Set permissions to "View + Remote Actions"
- Grant purge, browse, edit thresholds permissions
Test:
- Log in as an ops team member
- Verify you see ONLY ORDERS and PAYMENTS queues (no INVOICES, REPORTS, etc.)
- Click Purge on a queue; confirm you can execute the action
- Check Audit Log shows your action
Result: Operations team can independently manage queue backlog without:
- Granting MQ Explorer access
- Requiring MQ admin intervention
- Exposing queue manager configuration details
- Allowing accidental access to unrelated queues
Example 2: Read-Only Access for Business Users
Scenario: Your finance manager needs visibility into invoice processing. Wants to know when queues are backing up, but should never execute actions (no modify permissions).
Steps:
Create role "Finance - View Only"
- Permissions: View Monitoring ✅, Download Reports ✅
- Remote Actions ❌
Create Monitor View "Finance-Dashboards"
- Filter: Queues matching
INVOICES.*,PAYMENTS.*,REPORTS.* - Exclude test queues (queue manager filtering)
- Custom dashboard showing queue depth trends, error count, age metrics
- Filter: Queues matching
Assign role + Monitor View:
- Add finance manager to "Finance - View Only" role
- Add finance manager to "Finance-Dashboards" Monitor View with "View Only" permission
Configure alerts:
- Add Alarm Plugins (Teams, email) to propagate INVOICES queue errors to finance manager
- Manager receives Teams message: "INVOICES.OUT queue depth 850 (Error: >800)"
Test:
- Finance manager logs in; sees charts and metrics only
- No Purge, Browse, or Edit buttons visible
- Receives alerts when invoice queues have issues
Result: Finance manager has strategic visibility without tactical control; can escalate to operations team if action needed.
Example 3: Segregating Dev/Test/Production Access
Scenario: Your organization has dev, test, and production environments. Different teams maintain each. Prevent test team from accidentally accessing production queues.
Steps:
Create three roles:
- "Dev Developers" – Full remote actions on dev resources
- "QA Test Team" – Full remote actions on test resources
- "Production Ops" – Full remote actions on production resources (most restricted)
Create three Monitor Views:
- "Dev-All" – Filters for dev queue managers only; assigned to "Dev Developers" role
- "Test-All" – Filters for test queue managers only; assigned to "QA Test Team" role
- "Production-All" – Filters for production queue managers only; assigned to "Production Ops" role
Enforce separation:
- Dev developer never sees production queue managers (different Monitor View)
- If dev developer tries to switch to another Monitor View, gets "Access Denied"
- Accidental or malicious access to production is prevented at UI level (and enforced server-side)
Audit trail:
- Audit Log shows every action per environment; easy to track who did what and where
Result: Environment separation enforced; teams cannot cross boundaries even if they try.
Alert Propagation to Users
Once Monitor Views are configured, configure Alarm Plugins to notify users when resources transition to Error state.
Supported notification channels:
- Email – Alert emailed to user distribution lists
- Microsoft Teams – Alerts posted to Teams channels
- Slack – Alerts posted to Slack channels
- PagerDuty – Critical alerts trigger on-call incidents
- Custom Webhooks – Integrate with ticketing systems (Jira, ServiceNow), APM tools, etc.
How to configure email alerts for a Monitor View:
- Navigate to the Monitor View
- Click "Manage Alerts"
- Enable "Propagate state changes to external systems"
- Select alarm plugin: "Email"
- Recipient list: operations@company.com, john.ops@company.com
- Trigger conditions:
- Alert on Error state (queue depth exceeded, message aged)
- Alert on Unavailable state (queue manager or network issue)
- Alert on Warning state (optional; can be noisy)
- Save
Alert example email:
Subject: IBM MQ Alert - ORDERS.IN Queue Error
Queue Manager: Production-QM1
Queue: ORDERS.IN
Alert: Queue Depth Error
Current Depth: 950 messages
Error Threshold: 900 messages
Severity: Error (Critical)
Historical Data:
- Peak depth last 24h: 950 (this alert)
- Average depth last 24h: 250
- Oldest message age: 35 minutes (threshold: 30 minutes)
Recommended Actions:
1. Check consumer application logs for processing errors
2. Verify ORDERS.IN is not Get inhibited
3. Consider purging if issue is resolved and message backlog is stale
4. Review with application owner on why processing slowed
View in Nodinite: [https://nodinite.company.com/monitor/...]
- :Nodinite: Monitoring System
Access Control Patterns
Pattern 1: Tiered Escalation
Use when: Issues escalate from level 1 (frontline) to level 2 (senior) to level 3 (specialists)
Implementation:
Level 1 - Frontline Support
- Monitor View: High-level metrics, queue depths only
- Permissions: View Only (no actions)
- Action: Escalate to Level 2 when queue depth Error occurs
Level 2 - Operations Team
- Monitor View: Full queue details, message browsing
- Permissions: View + Purge, Browse, Edit basic thresholds
- Action: Purge if consumer is restarted; escalate complex issues to Level 3
Level 3 - MQ Specialist
- Monitor View: All resources including channels, listeners, queue manager config
- Permissions: View + Full remote actions, configuration changes
- Action: Investigate root cause, modify queue manager settings if needed
Benefit: Each level has exactly the access needed; escalation is fast and tracked.
Pattern 2: Application Team Self-Service
Use when: Application teams own their integration queues; ops provides platform
Implementation:
Application Team Developers
- Monitor View: Application-specific queues and channels only
- Permissions: View + Browse, Download messages
- Cannot: Purge, modify thresholds (prevents accidental data loss)
- Action: Investigate message issues, request ops to purge if needed
Application Team Lead
- Monitor View: Same as developers
- Permissions: View + Full remote actions
- Cannot: Modify global agent settings or other applications' queues
- Action: Escalate to ops only if issue persists across restarts
Operations Platform Team
- Monitor View: All applications
- Permissions: Full
- Action: Support escalations, tune global monitoring settings, manage queue managers
Benefit: Teams manage their own resources; ops focuses on infrastructure health.
Pattern 3: Business-Driven Monitoring
Use when: Business stakeholders need to understand integration health
Implementation:
Business Stakeholders (Non-Technical)
- Monitor View: High-level dashboards, order/payment/invoice counts
- Permissions: View Only, Download Reports
- Alerts: Daily summary (not real-time; less noisy)
- Action: Review trends; escalate if pattern suggests systemic issue
Business Analyst (Technical)
- Monitor View: Same queues as stakeholders
- Permissions: View + Download + Message browse (for investigation)
- Cannot: Purge (prevents data loss of business records)
- Action: Analyze patterns, recommend threshold adjustments
Operations Team
- Full monitoring and management access to same queues
- Action: Execute remediations recommended by analysts
Benefit: Business understands integration health; operations responds to identified issues.
Troubleshooting Access Issues
Q: User cannot see any Monitor Views
A: Check: (1) User has a role assigned? (2) Role has "View Monitoring" permission? (3) Monitor View has user/role added to permissions? Verify all three layers.
Q: User can see Monitor View but no resources appear
A: Check: (1) Is the IBM MQ Monitoring Agent configured and running? (2) Are monitored resources (queues, channels) being discovered (may take 1-2 polling cycles)? (3) Are resources matching the Monitor View's filters (check filter expressions)?
Q: User has "purge" role but Purge button is greyed out
A: Check: (1) Monitor View permission set to "View + Actions" (not "View Only")? (2) Queue state is "OK" (some actions disabled for Error/Unavailable queues)? (3) User's role has "Remote Actions" permission?
Q: Alerts not being sent despite configuring Alarm Plugin
A: Check: (1) Alert plugin configured and tested (Test button in Alarm Plugin setup)? (2) Monitor View has alert propagation enabled? (3) Resource in Monitor View is transitioning to Error state (alerts don't fire for OK state)? Check audit log to confirm actions are being recorded.
Security Best Practices
1. Principle of Least Privilege
Grant only the minimum permissions needed. Don't assign "Administrator" role when "Monitor User" or "Remote Actions User" is sufficient.
2. Separation of Duties
Prevent single person from controlling multiple critical resources. Example:
- Developer A manages application deployment but cannot execute purge on production queues
- Operations A can execute purge but cannot deploy new agent configurations
- Manager B approves both but does not execute either
3. Regular Access Reviews
Quarterly, review user roles and Monitor View assignments. Remove access when team members change roles or leave organization. Track in Audit Log.
4. Monitor the Monitors
Set up alerts on Audit Log events. Alert when:
- Non-authorized user attempts action (failed permission check)
- Unexpected user executes unusual action (mass purge, configuration change)
- After-hours access to sensitive resources
5. Sensitive Data Protection
If queues contain PII, payment data, or secrets:
- Restrict "Browse Messages" and "Download" permissions carefully
- Consider data masking in Nodinite UI (if available)
- Ensure audit logs are retained for compliance (SoC2, HIPAA, etc.)
Next Step
Monitoring IBM MQ – Start monitoring queues and channels with configured thresholds
Related Topics
Configuration Guide – Set up monitoring thresholds and agent settings
Managing IBM MQ – Learn remote actions available to teams
Roles – Understand role-based access control system
Monitor Views – Create and manage monitoring dashboards
Alarm Plugins – Configure alert notifications (email, Teams, Slack)
Audit Log – Review user actions and changes for compliance
Prerequisites – Verify prerequisites before setting up access