# PCMonitor Agent - Troubleshooting Guide

## Masalah: Agent Running tapi Data Tidak Terlihat di Dashboard

### Kemungkinan Penyebab & Solusi

---

## 1️⃣ Periksa Konfigurasi Agent

**Lokasi file:** `C:\ProgramData\PCMonitor\config.json`

```json
{
  "api_url": "http://tracker.lppmunud.id/tracker/api",
  "api_key": "default-api-key",
  "agent_id": "2664732425"
}
```

**Yang perlu dicek:**
- ✅ URL harus tepat: `http://tracker.lppmunud.id/tracker/api`
- ✅ `agent_id` harus ada dan konsisten
- ✅ Tidak ada typo dalam URL

**Jika salah, perbaiki:**
```bash
# Edit config.json dengan Notepad
notepad C:\ProgramData\PCMonitor\config.json

# Kemudian restart service
net stop PCMonitorAgent
net start PCMonitorAgent
```

---

## 2️⃣ Periksa Service Status

**Buka PowerShell as Administrator:**

```powershell
# Cek status service
Get-Service PCMonitorAgent

# Harus menunjukkan: Status = Running

# Jika tidak running, start service:
Start-Service PCMonitorAgent

# Lihat detail:
$svc = Get-Service PCMonitorAgent
$svc.Status
```

**Output yang diharapkan:**
```
Status   Name             DisplayName
------   ----             -----------
Running  PCMonitorAgent   PC Monitor Agent
```

---

## 3️⃣ Periksa Log Files

**Lokasi:** `C:\ProgramData\PCMonitor\Logs\`

```powershell
# Lihat file log terbaru
Get-ChildItem C:\ProgramData\PCMonitor\Logs\ | Sort-Object LastWriteTime -Descending | Select-Object -First 5

# Baca 50 baris terakhir
Get-Content C:\ProgramData\PCMonitor\Logs\Agent_2026-03-27.log -Tail 50

# Cari error
Select-String -Path "C:\ProgramData\PCMonitor\Logs\*.log" -Pattern "error|Error|ERROR|failed|Failed"
```

**Tanda-tanda masalah dalam log:**
- ❌ "Cannot connect to API"
- ❌ "HTTP 404" atau "HTTP 500"
- ❌ "Connection timeout"
- ❌ "Database error"

---

## 4️⃣ Test Konektivitas ke API

**Run Diagnostic Script:**

```powershell
# Buka PowerShell di folder agent-csharp
cd E:\xampp\htdocs\tracker\agent-csharp

# Jalankan diagnostic
.\DIAGNOSTIC.bat
```

**Atau manual test:**

```powershell
# Test API endpoint
$response = Invoke-WebRequest -Uri "http://tracker.lppmunud.id/tracker/api/status" -Method GET
$response.StatusCode    # Harus 200
$response.Content       # Harus menampilkan status

# Test kirim activity
$body = @{
    agent_id = "2664732425"
    activity_type = "test"
    app_name = "PowerShell"
    description = "Test dari diagnostic"
} | ConvertTo-Json

$response = Invoke-WebRequest `
    -Uri "http://tracker.lppmunud.id/tracker/api/activity" `
    -Method POST `
    -Body $body `
    -ContentType "application/json"

$response.StatusCode    # Harus 200
$response.Content      # Harus success
```

---

## 5️⃣ Periksa Database (di Webhost)

**Cek table `agents` apakah agent sudah terdaftar:**

```sql
-- Login ke database tracker
SELECT * FROM agents;

-- Atau cek dengan agent_id
SELECT * FROM agents WHERE agent_id = '2664732425';

-- Lihat aktivitas yang masuk
SELECT * FROM pc_activities 
ORDER BY created_at DESC 
LIMIT 10;

-- Lihat berapa banyak records per agent
SELECT agent_id, COUNT(*) as total FROM pc_activities GROUP BY agent_id;
```

**Jika agent tidak terdaftar:**
```sql
INSERT INTO agents (agent_id, agent_name, pc_name, pc_ip, os_info, status) 
VALUES ('2664732425', 'Agent-001', 'PC-TARGET', 'IP.ADDR', 'Windows 10', 'online');
```

---

## 6️⃣ Periksa Firewall & Network

**Test dari command line:**

```bash
# Ping webhost
ping tracker.lppmunud.id

# Test akses port 80
telnet tracker.lppmunud.id 80

# Resolve DNS
nslookup tracker.lppmunud.id

# Trace route
tracert tracker.lppmunud.id

# Test từ PC target ke webhost (dari PowerShell)
Test-NetConnection tracker.lppmunud.id -Port 80
```

**Kemungkinan masalah:**
- ❌ Firewall memblokir outbound ke port 80
- ❌ Proxy diperlukan
- ❌ DNS tidak resolve
- ❌ Network tidak terhubung

**Solusi:**
```powershell
# Buka port di firewall (jika perlu)
New-NetFirewallRule -DisplayName "Allow to Webhost" `
    -Direction Outbound `
    -Action Allow `
    -Protocol TCP `
    -RemoteAddress "tracker.lppmunud.id" `
    -RemotePort 80
```

---

## 7️⃣ Periksa Dashboard Filter

**Kemungkinan:**
- Dashboard filter tidak cocok dengan agent_id
- Tab/filter menampilkan agent lain
- Database query error

**Solusi:**
1. Buka Dashboard: http://localhost/tracker/dashboard
2. Periksa filter di atas tabel agents
3. Pastikan tidak ada filter yang membatasi
4. Refresh browser (Ctrl+F5)
5. Buka Dev Tools (F12) lihat error di Console

---

## 8️⃣ Complete Diagnostic Checklist

| # | Check Point | Periksa | Status |
|----|-------------|---------|--------|
| 1 | Service Running | `Get-Service PCMonitorAgent` | ✓/✗ |
| 2 | Config File | `C:\ProgramData\PCMonitor\config.json` | ✓/✗ |
| 3 | API URL Correct | `http://tracker.lppmunud.id/tracker/api` | ✓/✗ |
| 4 | API Reachable | `Invoke-WebRequest ...api/status` | ✓/✗ |
| 5 | Network Connected | `ping tracker.lppmunud.id` | ✓/✗ |
| 6 | Logs Exist | `C:\ProgramData\PCMonitor\Logs\` | ✓/✗ |
| 7 | No Errors in Log | Scan untuk "error" | ✓/✗ |
| 8 | Agent in Database | `SELECT * FROM agents` | ✓/✗ |
| 9 | Activity in Database | `SELECT * FROM pc_activities` | ✓/✗ |
| 10 | Dashboard Displays | Refresh & check | ✓/✗ |

---

## 🔧 Quick Fixes

### Masalah: "Cannot connect to API"
```powershell
# 1. Restart service
Restart-Service PCMonitorAgent

# 2. Check config
notepad C:\ProgramData\PCMonitor\config.json

# 3. Test URL in browser
Start-Process "http://tracker.lppmunud.id/tracker/api/status"

# 4. Check firewall
Test-NetConnection tracker.lppmunud.id -Port 80
```

### Masalah: "API not found (404)"
```
Pastikan URL di config EXACT:
✓ http://tracker.lppmunud.id/tracker/api
✗ http://tracker.lppmunud.id/api  (missing /tracker)
✗ http://tracker.lppmunud.id/tracker/api/  (extra slash)
```

### Masalah: "Database error"
```
1. Check MySQL running di webhost
2. Check database 'tracker' exists
3. Check tables created:
   - agents
   - pc_activities
   - running_processes
   - remote_commands
   - bandwidth_control
```

### Masalah: "Service won't start"
```powershell
# Check logs for startup error
Get-Content C:\ProgramData\PCMonitor\Logs\Agent_*.log -Tail 50

# Restart service manually
net stop PCMonitorAgent
net start PCMonitorAgent

# Check error
$svc = Get-Service PCMonitorAgent
$svc
```

---

## 📞 Support

Jika masih tidak bekerja, kumpulkan:

1. **Log file** dari `C:\ProgramData\PCMonitor\Logs\`
2. **Config file** dari `C:\ProgramData\PCMonitor\config.json`
3. **Service status** output dari `Get-Service PCMonitorAgent`
4. **Network test** output dari `Test-NetConnection tracker.lppmunud.id -Port 80`
5. **Database query** hasil dari `SELECT * FROM agents`

---

**Last Updated:** 2026-03-27  
**Version:** 1.0
