InfraGuard

Server parameter snapshot

A read-only snapshot of an instance's web/DB/kernel/application/misc settings, used as the grounding for AI tuning queries.

Overview — what it does

The [param] button on an Instance card snapshots each instance's server parameters (settings) into infr_instance_param. This is different from instance variables (a secrets dictionary for Tools mashups) — this holds configuration values such as nginx.conf, my.cnf, sysctl, php.ini, haproxy.cfg as a reference snapshot that grounds AI tuning diagnosis. It is not secrets; sensitive values are (redacted) by the probe.

Layout

Five area panels (--grid--5, responsive 5→3→1 columns).

Area Example engines
web nginx · apache
database mysql · mariadb · postgres
kernel linux (sysctl)
application php · php-fpm · python (gunicorn/uwsgi) · java (JVM)
misc haproxy · docker · kafka · elasticsearch · vsftpd

Multi-engine coexistence — engine is part of the unique identity (UNIQUE(instance_id, category, engine, name)). Even if a host runs nginx+apache or mysql+postgres, a same-named parameter (e.g. max_connections) is stored per engine and never mixed. The UI sub-groups by engine inside each area panel.

How to use

Two update paths:

  1. Manual add/edit — the [+] in each panel header.
  2. JSON import — run the probe on the target host and paste its JSON:
# Local probe seeded in Inventory ▸ Tools (no credentials, no external calls)
node infr_server_params_probe.cjs
# Paste the JSON into [param] ▸ JSON import for an idempotent upsert

The probe uses a 5-axis whitelist capturing only key tuning values (memory, workers, execution, timeouts): web nginx -T/apache conf · DB my.cnf/postgresql.conf file parsing (no connection) · kernel sysctl · application php -i/pool.d/gunicorn·JVM heap (ps) · misc config files. Secrets are masked.

Data sources

Why node is excluded — pm2/Node apps do not fit the "one host = one canonical per-engine config" model (many apps per host; ecosystem.config.js belongs to the app repo; volatile per deploy), so they are excluded from application capture. python/java are kept because traditional deployments converge on one app server / single JVM per host.

Access

Read level≥1; write (save/delete/import) level≥2.

Related

The [param] button on the card
The [param] button on the card