Internal Monitoring (Host Agent)
Monitor resource usage (CPU, memory, disk, network) on servers and VMs by periodically pushing metrics from the Manako CLI. Unlike external polling, this is a push-based approach where the server sends metrics to Manako.
Differences from External Monitoring
Section titled “Differences from External Monitoring”| External Monitoring (HTTP/TCP/Ping, etc.) | Internal Monitoring (Host Agent) | |
|---|---|---|
| Direction | Manako → Server | Server → Manako |
| What it checks | Availability, response, port connectivity | CPU, memory, disk, network |
| Firewall | Inbound access required | Outbound only required |
| How it runs | Manako checks on a schedule | CLI runs from server cron |
Standalone Agent Installation
Section titled “Standalone Agent Installation”manako-agent is a daemon-mode standalone binary. No Node.js or npm required — runs as a systemd / launchd / Windows Service.
# One-liner install + service registrationcurl -fsSL https://get.manako.dev/agent | sh -s -- <AGENT_TOKEN>
# System-wide install (requires sudo)curl -fsSL https://get.manako.dev/agent | sh -s -- <AGENT_TOKEN> --systembrew tap elchika-inc/manakobrew install manako-agent
# Register as a service after installmanako-agent agent install --token <AGENT_TOKEN># One-liner install$env:MANAKO_TOKEN="<AGENT_TOKEN>"; iwr https://get.manako.dev/agent.ps1 -useb | iexAfter installation, verify with manako-agent agent status.
-
Create a monitor in the dashboard
Select Internal Monitoring (Host Agent) from “New Monitor” in the Manako dashboard. Alternatively, create it from the CLI:
Terminal window manako monitors add <server-name> -t host_agent -n "prod-web-01"After creation, the agent token is displayed. This token is only shown once — save it somewhere safe.
-
Install the CLI
Terminal window npm install -g manakoTerminal window # Run directly without installingnpx manako metrics push --token <token> -
Test metrics push
Terminal window manako metrics push --token <agent-token> --dry-runThe
--dry-runflag collects metrics and prints the JSON without actually sending it. Once everything looks good, run without--dry-run:Terminal window manako metrics push --token <agent-token> -
Configure cron
Open
crontab -eon your server and add an entry to run every 5 minutes:Terminal window */5 * * * * /usr/local/bin/manako metrics push --token <agent-token>Terminal window * * * * * /usr/local/bin/manako metrics push --token <agent-token>/etc/systemd/system/manako-metrics.service [Unit]Description=Manako Host Metrics Push[Service]Type=oneshotExecStart=/usr/local/bin/manako metrics push --token <agent-token>/etc/systemd/system/manako-metrics.timer [Unit]Description=Manako Metrics Push Timer[Timer]OnBootSec=1minOnUnitActiveSec=5min[Install]WantedBy=timers.targetTerminal window systemctl enable --now manako-metrics.timer
Collected Metrics
Section titled “Collected Metrics”| Metric | Description |
|---|---|
| CPU | Usage across all cores (%) |
| Memory | Used / total capacity |
| Disk | Usage per mount point (%) |
| Network | Bytes received and sent per interface |
Host information (hostname, OS, architecture, agent version) is also recorded.
Viewing in the Dashboard
Section titled “Viewing in the Dashboard”Time-series graphs are available in the Metrics tab of the monitor detail page. You can select a display period of 1 hour, 24 hours, 7 days, or 30 days.
If no data has been received for more than 5 minutes, a warning “No response for more than 5 minutes” is displayed.
Troubleshooting
Section titled “Troubleshooting”If metrics are not arriving
Check the error log:
cat /tmp/manako-agent.logCommon causes:
- Invalid token → Retrieve it via
manako monitors agent-token <monitor-id> - Outbound connections blocked on the server → Allow access to
hb.manako.dev(HTTPS/443)
Verify cron is running
# systemd environmentsjournalctl -u cron --since "10 min ago"
# macOSlog show --last 10m | grep -i cron