a6c4302c00
Complete documentation for monitor and tag management workflows: New documentation: - README.md: Quick reference and complete workflow guide - TAG_MANAGEMENT.md: Comprehensive tag management strategies - tag_monitor.sh: Quick CLI script to tag monitors Updated documentation: - API.md: Added tag management section with quick reference Coverage: - Adding monitors with tags (complete workflow) - Updating and deleting monitors - Tag management strategies and patterns - Common tagging patterns by service type - Troubleshooting guide - Best practices and maintenance tasks All common operations are now documented with examples.
Uptime Kuma Management
Complete documentation for managing Uptime Kuma monitors and tags via CLI and API.
Quick Reference
Prerequisites
# Set credentials (add to ~/.bashrc for persistence)
export UPTIME_KUMA_USERNAME="poprhythm"
export UPTIME_KUMA_PASSWORD="your_password"
Common Commands
# List all monitors
./manage_monitors.py list
# Add a monitor
./manage_monitors.py add --name "Service" --url "https://example.com"
# Update a monitor
./manage_monitors.py update --id 123 --interval 120
# Delete a monitor
./manage_monitors.py delete --id 123
# Tag a monitor
./tag_monitor.sh 123 3 4 # Tag as application + web
# View all tags
./check_tags.py
Documentation Files
| File | Purpose |
|---|---|
| SETUP.md | Initial setup and installation |
| API.md | Complete API usage and examples |
| TAG_MANAGEMENT.md | Comprehensive tag management guide |
| TAG_SUMMARY.md | Current tag schema and assignments |
Scripts
| Script | Purpose |
|---|---|
manage_monitors.py |
Main CLI for monitor CRUD operations |
tag_monitor.sh |
Quick script to tag monitors |
check_tags.py |
View current tag assignments |
add_tags.py |
Bulk tag assignment (requires editing) |
fix_missing_tags.py |
Add specific tags to specific monitors |
Complete Workflow: Adding a New Monitor
Step 1: Add the Monitor
./manage_monitors.py add \
--name "New Service" \
--url "https://newservice.com" \
--type http \
--interval 60
Step 2: Get Monitor ID
./manage_monitors.py list | grep "New Service"
# Output: 16 New Service http https://newservice.com
Step 3: Tag the Monitor
# Choose appropriate tags based on service type:
# - Web service: 3 (application) + 4 (web)
# - Database: 3 (application) + 5 (database)
# - Storage: 7 (infrastructure) + 8 (storage)
# - VM: 7 (infrastructure) + 10 (vm)
./tag_monitor.sh 16 3 4
Step 4: Verify
./check_tags.py | grep "New Service"
# Should show the monitor with its tags
Tag Reference
| ID | Tag | Use For |
|---|---|---|
| 1 | hardware | Physical hardware monitoring |
| 2 | monitoring | Monitoring systems |
| 3 | application | Software applications |
| 4 | web | Web services |
| 5 | database | Database systems |
| 6 | media | Media servers |
| 7 | infrastructure | Core infrastructure |
| 8 | storage | Storage systems |
| 9 | virtualization | Virtualization platforms |
| 10 | vm | Virtual machines |
Monitor Types
| Type | Example URL | Use For |
|---|---|---|
http |
https://example.com |
HTTP/HTTPS endpoints |
tcp |
hostname:port |
TCP port checks |
ping |
192.168.1.1 |
ICMP ping |
dns |
example.com |
DNS resolution |
docker |
Container name | Docker container health |
Common Tagging Patterns
# Web application
./manage_monitors.py add --name "GitLab" --url "https://gitlab.example.com"
./tag_monitor.sh NEW_ID 3 4 # application + web
# Database
./manage_monitors.py add --name "PostgreSQL" --url "db.example.com:5432" --type tcp
./tag_monitor.sh NEW_ID 3 5 # application + database
# Storage/NAS
./manage_monitors.py add --name "Storage" --url "nas.example.com" --type ping
./tag_monitor.sh NEW_ID 7 8 # infrastructure + storage
# Virtual Machine
./manage_monitors.py add --name "VM Host" --url "vm.example.com" --type ping
./tag_monitor.sh NEW_ID 7 10 # infrastructure + vm
# Hardware monitoring
./manage_monitors.py add --name "Server Fan" --url "..." --type mqtt
./tag_monitor.sh NEW_ID 1 2 # hardware + monitoring
Troubleshooting
Authentication Issues
# Check credentials are set
echo $UPTIME_KUMA_USERNAME
echo $UPTIME_KUMA_PASSWORD
# If not set, export them
export UPTIME_KUMA_USERNAME="poprhythm"
export UPTIME_KUMA_PASSWORD="your_password"
Monitor Not Found
# List all monitors to verify ID
./manage_monitors.py list
Tag Already Exists
This is normal if you try to add a tag that's already assigned. It can be ignored.
SSL Certificate Warnings
These warnings are expected for self-signed certificates and can be ignored. The scripts use ssl_verify=False to handle this.
Web UI
Access the web interface at: https://uptime.kolpacksoftware.com
- Filter by tags
- View status pages
- Manage notifications
- Configure settings
Best Practices
- Always tag new monitors immediately after creation
- Use 2-3 tags per monitor for better organization
- Document custom tags if you add new tag types
- Run audits periodically with
check_tags.py - Set credentials persistently in your shell profile
- Use descriptive names for monitors (include service purpose)
- Group related services using consistent tagging
Getting Help
- Setup issues: See SETUP.md
- API questions: See API.md
- Tag management: See TAG_MANAGEMENT.md
- Current tags: See TAG_SUMMARY.md
- Uptime Kuma docs: https://github.com/louislam/uptime-kuma/wiki
Maintenance
Regular Tasks
Weekly:
- Review untagged monitors:
./check_tags.py | grep "No tags" - Verify critical monitors are up
Monthly:
- Review and update monitor intervals
- Clean up old/unused monitors
- Verify tag schema still makes sense
As Needed:
- Update documentation when adding new tag types
- Adjust check intervals based on service criticality
- Review and optimize notification rules