feat: refactor 30+ skills to Anthropic progressive disclosure pattern
- All SKILL.md files now <500 lines (avg reduction 69%) - Detailed content extracted to references/ subdirectories - Frontmatter standardised: only name + description (Anthropic standard) - New skills: brand-guidelines, spec-coauthor, report-templates, skill-creator - Design skills: anti-slop guidelines, premium-proposals reference - Removed non-standard frontmatter fields (triggers, version, author, category) Plugins affected: infraestrutura, marketing, dev-tools, crm-ops, gestao, core-tools, negocio, perfex-dev, wordpress, design-media Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
281
infraestrutura/skills/easypanel-monitor/SKILL.md
Normal file
281
infraestrutura/skills/easypanel-monitor/SKILL.md
Normal file
@@ -0,0 +1,281 @@
|
||||
---
|
||||
name: easypanel-monitor
|
||||
description: Monitorizacao de servicos EasyPanel -- estado de todos os servicos Docker, uso de recursos, disco e logs de erros com tabela resumo OK/DOWN/WARN.
|
||||
---
|
||||
|
||||
# /easypanel-monitor - Monitorizacao EasyPanel
|
||||
|
||||
Verificacao rapida do estado de todos os servicos no EasyPanel (VM 101) com identificacao de problemas.
|
||||
|
||||
---
|
||||
|
||||
## Quando usar
|
||||
|
||||
- Verificacao diaria do estado dos servicos
|
||||
- Apos alertas de servicos down
|
||||
- Antes de deploys (validar estado actual)
|
||||
- Diagnostico rapido de problemas de recursos
|
||||
|
||||
## Quando nao usar
|
||||
|
||||
- Para troubleshooting aprofundado de um servico especifico (usar `/easypanel-troubleshoot`)
|
||||
- Para rollback de versao (usar `/easypanel-rollback`)
|
||||
- Para deploy de servicos (usar `/easypanel-deploy`)
|
||||
|
||||
---
|
||||
|
||||
## Sintaxe
|
||||
|
||||
```bash
|
||||
/easypanel-monitor # Check completo (servicos + recursos + disco)
|
||||
/easypanel-monitor quick # Apenas estado dos servicos (OK/DOWN)
|
||||
/easypanel-monitor <servico> # Detalhe de um servico especifico (logs + stats)
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Servidor alvo
|
||||
|
||||
| Alias SSH | IP | Porta | Funcao |
|
||||
|-----------|-----|-------|--------|
|
||||
| **easy** | 5.9.90.70 | 22 | EasyPanel (VM 101) |
|
||||
|
||||
```javascript
|
||||
mcp__ssh-unified__ssh_execute({
|
||||
server: "easy",
|
||||
command: "<comando>"
|
||||
})
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Workflow completo
|
||||
|
||||
### Passo 1: Estado dos servicos (docker service ls)
|
||||
|
||||
```bash
|
||||
docker service ls --format "table {{.Name}}\t{{.Replicas}}\t{{.Image}}\t{{.Ports}}"
|
||||
```
|
||||
|
||||
**Classificacao:**
|
||||
- **OK** - Replicas X/X (todas activas)
|
||||
- **DOWN** - Replicas 0/X (nenhuma activa)
|
||||
- **WARN** - Replicas parciais ou servico sem replicas esperadas
|
||||
|
||||
### Passo 2: Identificar servicos DOWN (0/N replicas)
|
||||
|
||||
```bash
|
||||
docker service ls --format "{{.Name}} {{.Replicas}}" | awk '$2 ~ /^0\//'
|
||||
```
|
||||
|
||||
Para cada servico DOWN, obter logs:
|
||||
|
||||
```bash
|
||||
docker service logs <nome-servico> --tail 10 --no-trunc 2>&1
|
||||
```
|
||||
|
||||
### Passo 3: Uso de recursos (docker stats)
|
||||
|
||||
```bash
|
||||
docker stats --no-stream --format "table {{.Name}}\t{{.CPUPerc}}\t{{.MemUsage}}\t{{.MemPerc}}\t{{.NetIO}}\t{{.BlockIO}}"
|
||||
```
|
||||
|
||||
**Thresholds:**
|
||||
|
||||
| Metrica | OK | WARN | CRITICAL |
|
||||
|---------|-----|------|----------|
|
||||
| CPU | <70% | 70-90% | >90% |
|
||||
| RAM | <70% | 70-85% | >85% |
|
||||
| RAM absoluto | <512MB | 512MB-1GB | >1GB |
|
||||
|
||||
### Passo 4: Espaco em disco
|
||||
|
||||
```bash
|
||||
df -h / /var/lib/docker
|
||||
```
|
||||
|
||||
**Thresholds:**
|
||||
|
||||
| Disco | OK | WARN | CRITICAL |
|
||||
|-------|-----|------|----------|
|
||||
| / | <70% | 70-85% | >85% |
|
||||
| /var/lib/docker | <70% | 70-85% | >85% |
|
||||
|
||||
Verificar imagens Docker nao utilizadas:
|
||||
|
||||
```bash
|
||||
docker system df
|
||||
```
|
||||
|
||||
### Passo 5: Logs de erros recentes (servicos com problemas)
|
||||
|
||||
Para servicos DOWN ou WARN:
|
||||
|
||||
```bash
|
||||
docker service logs <nome-servico> --tail 10 --no-trunc 2>&1 | grep -iE "error|fatal|panic|oom|killed|fail"
|
||||
```
|
||||
|
||||
### Passo 6: Verificar tarefas falhadas
|
||||
|
||||
```bash
|
||||
docker service ls -q | xargs -I {} docker service ps {} --format "{{.Name}} {{.CurrentState}} {{.Error}}" --filter "desired-state=shutdown" 2>/dev/null | grep -i "failed\|rejected\|error" | head -20
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Template de output
|
||||
|
||||
```markdown
|
||||
## EasyPanel Monitor - [DATA]
|
||||
|
||||
**Servidor:** easy.descomplicar.pt (5.9.90.70)
|
||||
|
||||
### Estado dos servicos
|
||||
|
||||
| Servico | Replicas | Estado | CPU | RAM | Notas |
|
||||
|---------|----------|--------|-----|-----|-------|
|
||||
| descomplicar_api | 1/1 | OK | 2.3% | 128MB | - |
|
||||
| descomplicar_n8n | 1/1 | OK | 5.1% | 256MB | - |
|
||||
| descomplicar_db | 0/1 | DOWN | - | - | Connection refused |
|
||||
| descomplicar_redis | 1/1 | WARN | 85% | 490MB | CPU elevado |
|
||||
|
||||
**Resumo:** X/Y servicos OK | Z DOWN | W WARN
|
||||
|
||||
### Disco
|
||||
|
||||
| Mount | Usado | Disponivel | % | Estado |
|
||||
|-------|-------|------------|---|--------|
|
||||
| / | 45G | 55G | 45% | OK |
|
||||
| /var/lib/docker | 30G | 70G | 30% | OK |
|
||||
|
||||
Docker system: X imagens, Y containers, Z volumes (total: XGB)
|
||||
|
||||
### Alertas
|
||||
|
||||
**CRITICAL:**
|
||||
- descomplicar_db: 0/1 replicas - servico DOWN
|
||||
Logs: `[erro relevante dos logs]`
|
||||
|
||||
**WARN:**
|
||||
- descomplicar_redis: CPU a 85% (threshold 70%)
|
||||
|
||||
### Accoes recomendadas
|
||||
|
||||
1. [URGENTE] Investigar descomplicar_db: `/easypanel-troubleshoot db`
|
||||
2. [IMPORTANTE] Monitorizar descomplicar_redis - CPU elevado
|
||||
3. [MELHORIA] Limpar imagens Docker nao utilizadas: `docker system prune`
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Modo quick
|
||||
|
||||
Apenas passo 1 e 2. Output resumido:
|
||||
|
||||
```markdown
|
||||
## EasyPanel Quick Check - [DATA]
|
||||
|
||||
| Servico | Estado |
|
||||
|---------|--------|
|
||||
| descomplicar_api | OK |
|
||||
| descomplicar_n8n | OK |
|
||||
| descomplicar_db | DOWN |
|
||||
|
||||
**X/Y OK** | Z alertas
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Modo servico especifico
|
||||
|
||||
Para `/easypanel-monitor <servico>`:
|
||||
|
||||
```bash
|
||||
# Estado
|
||||
docker service inspect <servico> --pretty
|
||||
|
||||
# Tarefas (historico)
|
||||
docker service ps <servico>
|
||||
|
||||
# Logs (ultimas 50 linhas)
|
||||
docker service logs <servico> --tail 50 --no-trunc 2>&1
|
||||
|
||||
# Stats do container
|
||||
docker stats --no-stream --filter "name=<servico>"
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Integracao com API EasyPanel
|
||||
|
||||
Alternativa via API tRPC (ver `/easypanel-api`):
|
||||
|
||||
```bash
|
||||
TOKEN=$(cat /etc/easypanel/.api-token)
|
||||
|
||||
# Stats do sistema
|
||||
curl -s "http://localhost:3000/api/trpc/monitor.getSystemStats" \
|
||||
-H "Authorization: Bearer $TOKEN"
|
||||
|
||||
# Stats Docker tasks
|
||||
curl -s "http://localhost:3000/api/trpc/monitor.getDockerTaskStats" \
|
||||
-H "Authorization: Bearer $TOKEN"
|
||||
|
||||
# Projectos e servicos
|
||||
curl -s "http://localhost:3000/api/trpc/projects.listProjectsAndServices" \
|
||||
-H "Authorization: Bearer $TOKEN"
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## MCPs necessarios
|
||||
|
||||
- `ssh-unified` - Acesso ao servidor easy (obrigatorio)
|
||||
- `mcp-time` - Data/hora para o report (obrigatorio)
|
||||
- `desk-crm-v3` - Comentar resultado em tarefa (opcional)
|
||||
|
||||
---
|
||||
|
||||
## Anti-patterns
|
||||
|
||||
| Anti-pattern | Problema | Solucao |
|
||||
|--------------|----------|---------|
|
||||
| Ignorar servicos DOWN | Problemas acumulam | Sempre investigar com /easypanel-troubleshoot |
|
||||
| Nao verificar disco | Disco cheio causa crash geral | Incluir df -h sempre |
|
||||
| docker stats sem --no-stream | Bloqueia terminal | Sempre usar --no-stream |
|
||||
| Ignorar tarefas falhadas | Crash loops nao detectados | Verificar desired-state=shutdown |
|
||||
| Nao limpar imagens | Disco enche | docker system prune periodico |
|
||||
|
||||
---
|
||||
|
||||
## Checklist de execucao
|
||||
|
||||
- [ ] Conectar via SSH ao servidor easy
|
||||
- [ ] docker service ls (estado de todos os servicos)
|
||||
- [ ] Identificar servicos DOWN (0/N replicas)
|
||||
- [ ] docker stats --no-stream (recursos)
|
||||
- [ ] df -h (espaco em disco)
|
||||
- [ ] docker system df (uso Docker)
|
||||
- [ ] Logs de servicos com problemas (--tail 10)
|
||||
- [ ] Tarefas falhadas (docker service ps --filter)
|
||||
- [ ] Classificar cada servico: OK / WARN / DOWN
|
||||
- [ ] Gerar tabela resumo
|
||||
- [ ] Listar accoes recomendadas priorizadas
|
||||
- [ ] Report formatado (Markdown)
|
||||
|
||||
---
|
||||
|
||||
## Skills relacionadas
|
||||
|
||||
| Skill | Quando usar |
|
||||
|-------|-------------|
|
||||
| `/easypanel-troubleshoot` | Diagnostico aprofundado de servico com problema |
|
||||
| `/easypanel-rollback` | Reverter deploy falhado |
|
||||
| `/easypanel-deploy` | Deploy de novo servico ou actualizacao |
|
||||
| `/easypanel-validate` | Validacao pos-deploy |
|
||||
| `/easypanel-api` | Referencia API tRPC |
|
||||
| `/server-health` | Health check do servidor CWP (nao EasyPanel) |
|
||||
|
||||
---
|
||||
|
||||
*Skill v1.0.0 | 12-03-2026 | Descomplicar(r)*
|
||||
Reference in New Issue
Block a user