Aarkam / Aarkam Wiki / Installation / Abodi Diagnostic Sidecar Installation
Diagnostics Installation

Abodi Diagnostic Sidecar Installation

Deploying Abodi.Agent on physical storage nodes and connecting to Abodi.Server for ML diagnostics.

Last updated: Sep 23, 2026

Abodi.Agent is the lightweight hardware observability sidecar deployed on every physical storage node. It continuously samples drive telemetry, correlates stress signals, and communicates with Abodi.Server and Rokka.Coordinator to protect against sudden disk death.


1. Prerequisites

  • Physical Host Access: Root/Administrator privileges to query physical drive S.M.A.R.T. counters.
  • Linux Packages: Install smartmontools and nvme-cli:
    sudo apt-get install -y smartmontools nvme-cli   # Debian / Ubuntu
    sudo dnf install -y smartmontools nvme-cli       # RHEL / Rocky Linux
    

2. Configuration (appsettings.json)

Configure /opt/abodi-agent/appsettings.json:

{
  "Logging": {
    "LogLevel": {
      "Default": "Information"
    }
  },
  "Abodi": {
    "NodeId": "storage-node-01",
    "PollIntervalSeconds": 10,
    "TargetDevices": [
      "/dev/nvme0n1",
      "/dev/nvme1n1"
    ],
    "CoordinatorEndpoint": "https://192.168.1.11:57774",
    "CentralServerEndpoint": "https://192.168.1.10:57777"
  },
  "Kestrel": {
    "Endpoints": {
      "Http": {
        "Url": "http://0.0.0.0:7776"
      },
      "Https": {
        "Url": "https://0.0.0.0:57776"
      }
    }
  }
}

3. Systemd Service Setup

Create /etc/systemd/system/abodi-agent.service:

[Unit]
Description=Abodi Hardware Diagnostic Sidecar Agent
After=network.target rokka-storagenode.service

[Service]
WorkingDirectory=/opt/abodi-agent
ExecStart=/usr/bin/dotnet /opt/abodi-agent/Abodi.Agent.dll
Restart=always
RestartSec=10
KillSignal=SIGINT
SyslogIdentifier=abodi-agent
User=root

[Install]
WantedBy=multi-user.target

Enable and start the service:

sudo systemctl daemon-reload
sudo systemctl enable --now abodi-agent

4. Validating Telemetry Streams

Verify that Abodi is reading drive counters and generating valid health scores:

# Query local agent health score
am abodi score storage-node-01

# View live SMART metrics feed
am abodi live storage-node-01 --watch 2s