All checks were successful
Reindex Knowledge Base / reindex (push) Successful in 3s
Adds title, description, type, domain, and tags frontmatter to every doc for improved KB semantic search. The description field is prepended to every search chunk, and domain/type/tags enable filtered queries. Type values: context, guide, runbook, reference, troubleshooting Domain values match directory structure (networking, docker, etc.) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
177 lines
4.9 KiB
Markdown
177 lines
4.9 KiB
Markdown
---
|
|
title: "Server Diagnostics Skill"
|
|
description: "Recovered LXC 300 skill reference for automated server troubleshooting. Covers Docker container diagnostics, SSH-based health checks, log reading, metrics collection, remediation workflows, and security constraints."
|
|
type: runbook
|
|
domain: monitoring
|
|
tags: [server-diagnostics, docker, ssh, health-check, remediation, n8n, paper-dynasty]
|
|
---
|
|
|
|
# Server Diagnostics - Automated Troubleshooting
|
|
|
|
## When to Activate This Skill
|
|
- N8N triggers with error context
|
|
- "diagnose container X", "check docker status"
|
|
- "read logs from server", "check disk usage"
|
|
- "troubleshoot server issue"
|
|
- Any automated health check response
|
|
|
|
## Quick Start
|
|
|
|
### Check All Containers
|
|
```bash
|
|
python ~/.claude/skills/server-diagnostics/client.py docker-status paper-dynasty
|
|
```
|
|
|
|
### Quick Health Check (Docker + System Metrics)
|
|
```bash
|
|
python ~/.claude/skills/server-diagnostics/client.py health paper-dynasty
|
|
```
|
|
|
|
### Get Container Logs
|
|
```bash
|
|
python ~/.claude/skills/server-diagnostics/client.py docker-logs paper-dynasty paper-dynasty_discord-app_1 --lines 200
|
|
```
|
|
|
|
### Restart a Container
|
|
```bash
|
|
python ~/.claude/skills/server-diagnostics/client.py docker-restart paper-dynasty paper-dynasty_discord-app_1
|
|
```
|
|
|
|
### System Metrics
|
|
```bash
|
|
python ~/.claude/skills/server-diagnostics/client.py metrics paper-dynasty --type all
|
|
python ~/.claude/skills/server-diagnostics/client.py metrics paper-dynasty --type disk
|
|
```
|
|
|
|
### Run Diagnostic Command
|
|
```bash
|
|
python ~/.claude/skills/server-diagnostics/client.py diagnostic paper-dynasty disk_usage
|
|
python ~/.claude/skills/server-diagnostics/client.py diagnostic paper-dynasty memory_usage
|
|
```
|
|
|
|
## Troubleshooting Workflow
|
|
|
|
When an issue is reported:
|
|
|
|
1. **Quick Health Check** - Get overview of containers and system state
|
|
```bash
|
|
python ~/.claude/skills/server-diagnostics/client.py health paper-dynasty
|
|
```
|
|
|
|
2. **Check MemoryGraph** - Recall similar issues
|
|
```bash
|
|
python ~/.claude/skills/memorygraph/client.py recall "docker container error"
|
|
```
|
|
|
|
3. **Get Container Logs** - Look for errors
|
|
```bash
|
|
python ~/.claude/skills/server-diagnostics/client.py docker-logs paper-dynasty <container> --lines 500 --filter error
|
|
```
|
|
|
|
4. **Remediate if Safe** - Restart if allowed
|
|
```bash
|
|
python ~/.claude/skills/server-diagnostics/client.py docker-restart paper-dynasty <container>
|
|
```
|
|
|
|
5. **Store Solution** - Save to MemoryGraph if resolved
|
|
```bash
|
|
python ~/.claude/skills/memorygraph/client.py store \
|
|
--type solution \
|
|
--title "Fixed <container> issue" \
|
|
--content "Description of problem and solution" \
|
|
--tags "docker,paper-dynasty,troubleshooting" \
|
|
--importance 0.7
|
|
```
|
|
|
|
## Server Inventory
|
|
|
|
| Server | IP | SSH User | Description |
|
|
|--------|-----|----------|-------------|
|
|
| paper-dynasty | 10.10.0.88 | cal | Paper Dynasty Discord bots and services |
|
|
|
|
## Monitored Containers
|
|
|
|
| Container | Critical | Restart Allowed | Description |
|
|
|-----------|----------|-----------------|-------------|
|
|
| paper-dynasty_discord-app_1 | Yes | Yes | Paper Dynasty Discord bot |
|
|
| paper-dynasty_db_1 | Yes | Yes | PostgreSQL database |
|
|
| paper-dynasty_adminer_1 | No | Yes | Database admin UI |
|
|
| sba-website_sba-web_1 | Yes | Yes | SBA website |
|
|
| sba-ghost_sba-ghost_1 | No | Yes | Ghost CMS |
|
|
|
|
## Available Diagnostic Commands
|
|
|
|
- `disk_usage` - df -h
|
|
- `memory_usage` - free -h
|
|
- `cpu_usage` - top -bn1 | head -20
|
|
- `cpu_load` - uptime
|
|
- `process_list` - ps aux --sort=-%mem | head -20
|
|
- `network_status` - ss -tuln
|
|
- `docker_ps` - docker ps -a (formatted)
|
|
- `docker_stats` - docker stats --no-stream
|
|
- `journal_errors` - journalctl -p err -n 50
|
|
|
|
## Security Constraints
|
|
|
|
### DENIED Patterns (Will Be Rejected)
|
|
- rm -rf, rm -r /
|
|
- dd if=, mkfs
|
|
- shutdown, reboot
|
|
- systemctl stop
|
|
- chmod 777
|
|
- wget|sh, curl|sh
|
|
|
|
### Container Restart Rules
|
|
- Only containers in config.yaml with restart_allowed: true
|
|
- N8N container restart is NEVER allowed (it triggers us)
|
|
|
|
## MemoryGraph Integration
|
|
|
|
Before troubleshooting, check for known solutions:
|
|
```bash
|
|
python ~/.claude/skills/memorygraph/client.py recall "docker paper-dynasty"
|
|
```
|
|
|
|
After resolving, store the pattern:
|
|
```bash
|
|
python ~/.claude/skills/memorygraph/client.py store \
|
|
--type solution \
|
|
--title "Brief description" \
|
|
--content "Full explanation..." \
|
|
--tags "docker,paper-dynasty,fix" \
|
|
--importance 0.7
|
|
```
|
|
|
|
## Common Issues and Solutions
|
|
|
|
### Container Not Running
|
|
1. Check logs for crash reason
|
|
2. Check disk space and memory
|
|
3. Attempt restart if allowed
|
|
4. Escalate if restart fails
|
|
|
|
### High Memory Usage
|
|
1. Check which container is consuming
|
|
2. Review docker stats
|
|
3. Check for memory leaks in logs
|
|
4. Consider container restart
|
|
|
|
### Disk Space Low
|
|
1. Run disk_usage diagnostic
|
|
2. Check docker system df
|
|
3. Consider log rotation
|
|
4. Alert user for cleanup
|
|
|
|
## Output Format
|
|
|
|
All commands return JSON:
|
|
```json
|
|
{
|
|
"success": true,
|
|
"stdout": "...",
|
|
"stderr": "...",
|
|
"returncode": 0,
|
|
"data": {...} // Parsed data if applicable
|
|
}
|
|
```
|