Files
proxDoc/README.md
Jared Vititoe 76f7aaa64c Bump version to 1.2.0 and update changelog
Update version number and document all changes from the
issue fixes including new features, bug fixes, and
performance improvements.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-05 10:56:29 -05:00

138 lines
4.4 KiB
Markdown

# ProxDoc - The Proxmox System Doctor
ProxDoc is a comprehensive diagnostic tool for Proxmox server health monitoring and system examination.
## Features
- Complete system diagnostics and health checks
- **DriveAtlas integration** for physical drive bay mapping
- **Ceph cluster health** monitoring (OSD tree, pool usage, disk usage)
- **Node Exporter status** check for Prometheus monitoring
- **hwmon daemon status** for hardware monitoring
- **Quick health check** mode for fast assessments
- Temperature monitoring
- Disk health status via SMART
- CPU and RAM information
- Detailed memory DIMM information (slots, speed, manufacturer)
- Motherboard and system information
- Storage information including ZFS pools
- Network diagnostics with ethtool integration
- Detailed NIC information (driver, firmware, link speed)
- HBA/Storage controller detection and details
- Hardware information
- Service status monitoring
- VM and Container status
## Requirements
The script requires the following tools to be installed:
- dmidecode
- lscpu
- ip
- smartctl
- sensors
- lspci
Optional tools for enhanced diagnostics:
- ethtool (for detailed NIC information including link speed and firmware)
- netstat (for network statistics)
## Usage
Run remotely via curl:
```bash
curl -sL "http://10.10.10.63:3000/LotusGuild/proxDoc/raw/branch/main/proxDoc.sh" | bash -s -- [OPTION]
```
### Examples
```bash
# Full system diagnostics
curl -sL "http://10.10.10.63:3000/LotusGuild/proxDoc/raw/branch/main/proxDoc.sh" | bash -s -- --diags
# Quick health check
curl -sL "http://10.10.10.63:3000/LotusGuild/proxDoc/raw/branch/main/proxDoc.sh" | bash -s -- --quick
# Check services
curl -sL "http://10.10.10.63:3000/LotusGuild/proxDoc/raw/branch/main/proxDoc.sh" | bash -s -- --services
# Show drive bay mapping
curl -sL "http://10.10.10.63:3000/LotusGuild/proxDoc/raw/branch/main/proxDoc.sh" | bash -s -- --drives
```
### Available Options
- `--help`: Show the help guide
- `--diags`: Perform full system examination
- `--quick`: Quick health check (services, temps, disks)
- `--drives`: Show physical drive bay mapping (DriveAtlas)
- `--ceph`: Check Ceph cluster health
- `--node-exporter`: Check Node Exporter status
- `--hwmon`: Check hwmon daemon status
- `--services`: Check vital Proxmox services
- `--vm-list`: Check VM vitals
- `--ct-list`: Check container vitals
- `--backup`: Review backup health
- `--checks=LIST`: Run only specific checks (comma-separated)
- Valid checks: cpu, ram, memory, storage, disk, network, hardware, temps, services, ceph, vms, containers
## Output Information
The script provides detailed information about:
- System information and Proxmox version
- CPU model, cores, and frequency
- RAM usage and detailed DIMM information
- Motherboard manufacturer, model, and serial number
- Storage status
- Disk health
- Network configuration
- Detailed NIC information (driver, MAC, speed, firmware)
- HBA/Storage controller details
- Hardware details including PCI devices
- System load
- Service status
- Recent system errors
- VM and container status
## Note
- This script must be run as root
- Designed for Proxmox environments
- Supports Proxmox version 6.0 and above
- No local installation required - runs directly from Gitea
## Version
Current Version: 1.2.0
### Changelog
#### v1.2.0
- Fixed variable quoting in disk iteration loops (security)
- Added input validation with whitelist of valid options
- Added examples to help documentation
- Added timeout protection to smartctl and ceph commands
- Added `--checks=` option for selective diagnostics
- Extracted magic strings into named constants
- Added validation for potentially empty variables
- Standardized error handling with cleanup trap
- Added optional logging infrastructure (PROXDOC_LOGFILE)
- Cached disk list and unit files to reduce command overhead
- Added efficient process wait utility function
- Fixed CPU MHz parsing showing multiple values
- Fixed memory DIMM table not displaying data
- Fixed bonding_masters showing as network interface
#### v1.1.0
- Added DriveAtlas integration (`--drives`) for physical drive bay mapping
- Added Ceph cluster health monitoring (`--ceph`)
- Added Node Exporter status check (`--node-exporter`)
- Added hwmon daemon status check (`--hwmon`)
- Added quick health check mode (`--quick`)
- Added container list option (`--ct-list`)
- Full diagnostics now include all monitoring checks
- Improved error handling with graceful fallbacks
- Optimized for remote execution via curl
#### v1.0.0
- Initial release