master
md 301 lines 13 KB
Rendered Raw
1 # IBM i (AS/400) Monitoring Solutions Comparison
2
3 This document provides a comprehensive comparison of IBM i monitoring solutions and their capabilities.
4
5 ## Solutions Overview
6
7 ### 1. Netdata IBM.d AS400 Module
8 **Repository**: https://github.com/netdata/netdata
9 **Language**: Go
10 **Connection**: ODBC (unixODBC + IBM i Access ODBC Driver)
11 **Architecture**: Direct ODBC connection with configurable reset statistics
12 **IBM i Version**: 7.2+ (enhanced features for 7.3+, 7.4+)
13 **Unique Features**:
14 - Real-time, high-resolution metrics
15 - Statistics reset control
16 - Cardinality management
17 - Extensive network, disk health, and HTTP server monitoring
18
19 ### 2. Datadog IBM i Integration
20 **Repository**: https://github.com/DataDog/integrations-core/tree/master/ibm_i
21 **Language**: Python
22 **Connection**: ODBC (IBM i Access ODBC Driver)
23 **Architecture**: Subprocess-based query execution with connection pooling
24 **IBM i Version**: 7.2+ (enhanced support for 7.3+)
25 **Unique Features**:
26 - Message queue monitoring with severity filtering
27 - Job queue detail breakdown (released, scheduled, held)
28 - Normalized CPU metrics
29 - Job queue duration tracking
30
31 ### 3. Prometheus JDBC Exporter (ThePrez)
32 **Repository**: https://github.com/ThePrez/prometheus-exporter-jdbc
33 **Language**: Java
34 **Connection**: JDBC (IBM JT400 bundled)
35 **Architecture**: Multi-threaded metric collection
36 **IBM i Version**: Any version with JDBC support
37 **Unique Features**:
38 - Custom SQL queries
39 - Multi-row/single-row modes
40 - Service Commander integration
41 - Interval-based or point-in-time collection
42
43 ### 4. IBM i Remote Prometheus Monitoring (Chadys)
44 **Repository**: https://github.com/Chadys/ibmi-remote-prometeus-monitoring
45 **Language**: Python
46 **Connection**: ODBC (pyodbc)
47 **Architecture**: Prometheus client library with continuous refresh
48 **IBM i Version**: 7.2+ (gracefully handles version differences)
49 **Unique Features**:
50 - Prometheus-compliant naming
51 - Automatic unit conversion
52 - Graceful downtime handling
53 - Multi-server support
54
55 ### 5. Check_AS400 Nagios Plugin
56 **Repository**: https://github.com/cjt74392/check_as400
57 **Language**: Java
58 **Connection**: Telnet (optionally SSL/TLS)
59 **Architecture**: Command-line plugin for Nagios
60 **IBM i Version**: 5.3+ (adaptations up to 7.3)
61 **Unique Features**:
62 - Multi-language support (EN/FR/DE/IT)
63 - iCluster/MIMIX high availability monitoring
64 - Job-specific checks and troubleshooting
65 - Problem management integration
66
67 ### 6. IBM Nagios for i (Official) - ARCHIVED
68 **Repository**: https://github.com/IBM/nagios-for-i *(No longer maintained)*
69 **Language**: Java
70 **Connection**: JDBC (IBM JT400)
71 **Architecture**: Daemon server or standalone process
72 **IBM i Version**: 7.1+ (DiskConfig not supported in 7.5+)
73 **Unique Features**:
74 - SQL Services based monitoring
75 - Daemon mode for efficiency
76 - HMC monitoring support
77 - Nagios XI wizard integration
78
79 ### 7. New Relic AS/400 Integration
80 **Repository**: https://github.com/newrelic-experimental/nri-as400
81 **Language**: Java
82 **Connection**: JT400 native APIs
83 **Architecture**: 5 separate OHI for New Relic Infrastructure
84 **IBM i Version**: Any version supporting JT400
85 **Unique Features**:
86 - Message queue checkpoint management
87 - Separate OHI components for modular deployment
88 - Detailed job-level monitoring with MSGW status
89 - Storage pool thread transition metrics
90
91 ### 8. Uptime Infrastructure Monitor AS/400 Plugin
92 **Repository**: https://github.com/uptimesoftware/ibm-as400-monitor
93 **Language**: Java
94 **Connection**: JT400 native APIs with program calls
95 **Architecture**: Plugin for Uptime Infrastructure Monitor (v7.3-7.7)
96 **IBM i Version**: Any version supporting JT400
97 **Unique Features**:
98 - PTF (Program Temporary Fix) monitoring
99 - Multiple specialized monitor types
100 - Custom command execution (DRIFT/RTVASPPERC)
101 - Simple plugin-based deployment
102
103 ### 9. Zabbix AS/400 Templates
104 **Repositories**:
105 - https://github.com/zabbix/community-templates
106 - https://github.com/muutech/zabbix-templates
107 **Language**: N/A (template configurations)
108 **Connection**: SNMP or Agent emulator (requires external implementation)
109 **Architecture**: Templates for Zabbix monitoring system (v3.0+)
110 **IBM i Version**: Depends on SNMP support or agent emulator
111 **Unique Features**:
112 - Process discovery
113 - Output queue monitoring
114 - SNMP-based memory monitoring
115 - *Note: Templates only - requires separate implementation*
116
117 ## Metrics Comparison
118
119 ### Legend
120 - ✅ = Fully supported
121 - ⚠️ = Partial support
122 - ❌ = Not supported
123 - 🔧 = Configurable/Custom
124 - 📊 = With performance data
125
126 ### System & CPU Metrics
127
128 | Metric | Netdata | Datadog | Prometheus | Chadys | check_as400 | IBM Nagios | New Relic | Uptime | Zabbix |
129 |--------|---------|---------|------------|--------|-------------|------------|-----------|---------|--------|
130 | CPU Utilization | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ⚠️¹ |
131 | CPU Configuration | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
132 | CPU Capacity | ✅ | ✅ | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ |
133 | CPU Rate/Activity | ✅ | ❌ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
134 | Min/Max CPU | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
135 | Per-Job CPU | ✅ | ✅ | 🔧 | ❌ | ✅ | ✅ | ✅ | ❌ | ⚠️¹ |
136 | Top CPU Jobs | ✅² | ❌ | 🔧 | ❌ | ✅ | ❌ | ❌ | ❌ | ⚠️¹ |
137
138 ¹ *Depends on agent emulator implementation*
139 ² *Enable `collect_active_jobs` to capture top CPU jobs*
140
141 ### Memory & Storage Metrics
142
143 | Metric | Netdata | Datadog | Prometheus | Chadys | check_as400 | IBM Nagios | New Relic | Uptime | Zabbix |
144 |--------|---------|---------|------------|--------|-------------|------------|-----------|---------|--------|
145 | Memory Pools | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ✅ | ❌ | ⚠️¹ |
146 | Pool Threads | ✅ | ❌ | ✅ | ✅ | ❌ | ❌ | ✅ | ❌ | ❌ |
147 | Main Storage | ✅ | ❌ | ✅ | ✅ | ❌ | ❌ | ✅ | ✅ | ⚠️² |
148 | Temp Storage | ✅ | ⚠️ | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ |
149 | Storage Buckets | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
150 | Address Usage | ❌ | ❌ | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ |
151
152 ¹ *Depends on agent emulator*
153 ² *SNMP version supports via HOST-RESOURCES-MIB*
154
155 ### Disk & ASP Metrics
156
157 | Metric | Netdata | Datadog | Prometheus | Chadys | check_as400 | IBM Nagios | New Relic | Uptime | Zabbix |
158 |--------|---------|---------|------------|--------|-------------|------------|-----------|---------|--------|
159 | Disk Busy | ✅ | ✅ | 🔧 | ❌ | ✅ | ❌ | ❌ | ❌ | ⚠️¹ |
160 | Disk I/O | ✅ | ✅ | 🔧 | ❌ | ❌ | ❌ | ❌ | ❌ | ⚠️¹ |
161 | Disk Space | ✅ | ✅ | 🔧 | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ |
162 | Disk Health | ✅ | ❌ | 🔧 | ❌ | ✅ | ⚠️² | ❌ | ❌ | ✅ |
163 | SSD Metrics | ✅ | ❌ | 🔧 | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
164 | ASP Usage | ✅ | ✅ | 🔧 | ❌ | ✅ | ✅ | ❌ | ✅ | ✅ |
165 | ASP Storage | ✅ | ❌ | 🔧 | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
166
167 ¹ *Depends on agent emulator*
168 ² *Not supported in 7.5+*
169
170 ### Job & Workload Metrics
171
172 | Metric | Netdata | Datadog | Prometheus | Chadys | check_as400 | IBM Nagios | New Relic | Uptime | Zabbix |
173 |--------|---------|---------|------------|--------|-------------|------------|-----------|---------|--------|
174 | Active Jobs | ✅ | ✅ | 🔧 | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ |
175 | Job by Type | ✅ | ❌ | 🔧 | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
176 | Job Status | ✅ | ✅ | 🔧 | ❌ | ✅ | ✅ | ✅ | ✅ | ⚠️¹ |
177 | Job Queues | ✅ | ✅ | 🔧 | ❌ | ✅ | ❌ | ✅ | ✅ | ⚠️¹ |
178 | Subsystems | ✅ | ✅ | 🔧 | ❌ | ✅ | ✅ | ❌ | ❌ | ❌ |
179 | Job Temp Storage | ✅ | ✅ | 🔧 | ❌ | ✅ | ✅ | ❌ | ❌ | ❌ |
180 | Job Threads | ✅ | ❌ | 🔧 | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ |
181
182 ¹ *Depends on agent emulator*
183
184 ### Network & Messaging
185
186 | Metric | Netdata | Datadog | Prometheus | Chadys | check_as400 | IBM Nagios | New Relic | Uptime | Zabbix |
187 |--------|---------|---------|------------|--------|-------------|------------|-----------|---------|--------|
188 | Network Connections | ✅ | ❌ | 🔧 | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
189 | Network Interfaces | ✅ | ❌ | 🔧 | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
190 | HTTP Servers | ✅ | ❌ | 🔧 | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
191 | Message Queues | ✅ | ✅ | 🔧 | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ |
192 | Output Queues | ✅ | ❌ | 🔧 | ❌ | ✅ | ❌ | ❌ | ❌ | ✅ |
193 | Message Checkpoints | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ |
194
195 ### Special Features
196
197 | Feature | Netdata | Datadog | Prometheus | Chadys | check_as400 | IBM Nagios | New Relic | Uptime | Zabbix |
198 |---------|---------|---------|------------|--------|-------------|------------|-----------|---------|--------|
199 | HA Monitoring | ❌ | ❌ | ❌ | ❌ | ✅¹ | ❌ | ❌ | ❌ | ❌ |
200 | PTF Monitoring | ❌ | ❌ | 🔧 | ❌ | ❌ | ❌ | ❌ | ✅ | ❌ |
201 | System Values | ❌ | ❌ | 🔧 | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
202 | Plan Cache | ✅ | ❌ | 🔧 | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
203 | Custom SQL | ❌ | ⚠️ | ✅ | ⚠️ | ❌ | ✅ | ❌ | ⚠️² | ❌ |
204 | Problem Detection | ❌ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ |
205 | Long Running SQL | ❌ | ❌ | 🔧 | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ |
206 | Login Test | ❌ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ |
207
208 ¹ *MIMIX and iCluster support*
209 ² *Custom commands like DRIFT/RTVASPPERC*
210
211 ## Implementation Comparison
212
213 | Aspect | Netdata | Datadog | Prometheus | Chadys | check_as400 | IBM Nagios | New Relic | Uptime | Zabbix |
214 |--------|---------|---------|------------|--------|-------------|------------|-----------|---------|--------|
215 | **Deployment** | Plugin | Agent | Standalone | Standalone | Nagios Plugin | Nagios Plugin | NR OHI | Plugin | Template |
216 | **Multi-Server** | ✅ | ✅ | ❌¹ | ✅ | ✅ | ✅ | ✅ | ✅ | ⚠️² |
217 | **Statistics Reset** | ✅ | ❌ | ✅ | ✅ | N/A | N/A | ✅ | ✅ | ⚠️² |
218 | **Auto-adapt Version** | ✅ | ✅ | ❌ | ✅ | ❌ | ✅ | ✅ | ✅ | ⚠️² |
219 | **Daemon Mode** | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ⚠️² |
220 | **Security** | 🔒 | 🔒 | 🔒 | 🔒 | ⚠️³ | 🔒 | 🔒 | 🔒 | ⚠️² |
221 | **Maintenance** | ✅ Active | ✅ Active | ✅ Active | ✅ Active | ✅ Active | ❌ Archived | ⚠️ Experimental | ❓ Unknown | N/A⁴ |
222
223 ¹ *One remote server at a time*
224 ² *Depends on agent emulator implementation*
225 ³ *Telnet unencrypted by default, SSL/TLS optional*
226 *Template only, requires implementation*
227 🔒 *Encrypted connection*
228
229 ## SQL Services & APIs Used
230
231 | Service/API | Netdata | Datadog | Prometheus | Chadys | check_as400 | IBM Nagios | New Relic | Uptime | Zabbix |
232 |-------------|---------|---------|------------|--------|-------------|------------|-----------|---------|--------|
233 | SYSTEM_STATUS() | ✅ | ✅ | 🔧 | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
234 | SYSTEM_ACTIVITY_INFO() | ✅ | ❌ | 🔧 | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ |
235 | ACTIVE_JOB_INFO() | ✅ | ✅ | 🔧 | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ |
236 | MEMORY_POOL() | ✅ | ❌ | 🔧 | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
237 | MEMORY_POOL_INFO | ❌ | ✅ | 🔧 | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
238 | SYSDISKSTAT | ✅ | ✅ | 🔧 | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
239 | MESSAGE_QUEUE_INFO | ❌ | ✅ | 🔧 | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ |
240 | NETSTAT_INFO | ✅ | ❌ | 🔧 | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
241 | HTTP_SERVER_INFO | ✅ | ❌ | 🔧 | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
242 | SYSTMPSTG | ✅ | ❌ | 🔧 | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
243 | QWCRSSTS API | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ | ✅ | ❌ |
244 | QUSRJOBI API | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ |
245 | Telnet/Screen Scraping | ❌ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ |
246 | SNMP | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ⚠️¹ |
247
248 ¹ *SNMP version available*
249 🔧 *Configurable via custom SQL*
250
251 ## Unique Capabilities by Solution
252
253 **Netdata**:
254 - Network interface and HTTP server monitoring (exclusive)
255 - SSD health and age monitoring
256 - Comprehensive temporary storage tracking with buckets
257 - Plan cache monitoring
258 - Message and output queue metrics with cardinality safeguards
259 - Built-in cardinality limits to prevent metric explosion
260 - Statistics reset control
261
262 **Datadog**:
263 - Message severity filtering
264 - Job queue duration tracking
265 - Normalized CPU metrics
266
267 **Prometheus JDBC**:
268 - Full custom SQL support
269 - Multi-row/single-row collection modes
270 - Service Commander integration
271
272 **Chadys**:
273 - Automatic unit conversion to Prometheus standards
274 - Graceful downtime handling
275
276 **check_as400**:
277 - HA monitoring (MIMIX/iCluster)
278 - Problem detection and management
279 - Multi-language support (EN/FR/DE/IT)
280 - Login test capability
281
282 **New Relic**:
283 - Binary message queue checkpointing
284 - Storage pool thread transition metrics
285
286 **Uptime**:
287 - PTF (Program Temporary Fix) monitoring (exclusive)
288 - Custom command execution (DRIFT/RTVASPPERC)
289
290 **Zabbix**:
291 - Template-based configuration
292 - Process discovery
293 - SNMP support option
294
295 ## Notes on IBM i Version Compatibility
296
297 All solutions adapt functionality based on IBM i version:
298 - **7.2**: Basic functionality for all solutions
299 - **7.3+**: Enhanced queries, active job info, subsystem monitoring
300 - **7.4+**: Full SYSTEM_STATUS() detailed info (Netdata)
301 - **Legacy (5.3-7.1)**: Only check_as400 fully supports