Auto Remediation Configuration Menu
The submenu is displayed exactly as follows:
The submenu is displayed exactly as follows:
| Option | What it does | Underlying command |
|---|---|---|
| 1 | Optionally edit auto_remediation.conf, then reload it into operator, cluster-manager, and node-manager. Skipped when unchanged. | ./auto_remediation.sh --reload-config |
| 2 | Preview SMTP from AppViewX product settings, confirm, and sync to monitoring. | ./auto_remediation.sh --sync-smtp --non-interactive |
| 3 | Show masked auto_remediation.conf, then export applied Node Manager / Cluster Manager configuration. | ./auto_remediation.sh --view-config <type> |
| 4 | Create the YAML from the template if missing, optionally open an editor, then validate YAML. | Local file edit + YAML validation |
| 5 | Apply auto_remediation_config.yaml to Node Manager, Cluster Manager, or both. Skipped when unchanged. | ./auto_remediation.sh --apply-config <type> --yes --non-interactive |
| 6 | Process pending alert records immediately. | ./auto_remediation.sh --run-alert-cycle |
| 7 | Generate an HTML or CSV report from RQLite. | ./auto_remediation.sh --report --format html|csv |
| 8 | Leave the submenu and return to the Interactive IU main menu. | No script invocation |
Reload Configuration
Purpose
Reload the latest scripts/auto_remediation.conf values into the Auto Remediation operator, Cluster Manager, and Node Manager without reinstalling the platform. You can review and update conf flags first.
When to use it
Expected output
Then use menu option 3 (View Configuration) and confirm the published values. Passwords remain masked.
| Situation | Expected result |
|---|---|
| Conf edit with no flag differences | No configuration changes detected in auto_remediation.conf. |
| Reload with no live differences | [INFO] No configuration changes detected. Reload is not required. |
| Reload with differences | Components are updated. [SUCCESS] Configuration reloaded successfully. Backup path is logged. |
| RQLite node list changed | Reload is aborted. RQLite membership cannot be changed by reload; reinstall or redeploy is required. |
Use SMTP from AppViewX Product Settings
Purpose
Copy SMTP settings from AppViewX product settings into Auto Remediation monitoring, then apply them to the operator so alert emails can be sent. This is the supported IU path. Do not use older standalone SMTP-only procedures as the primary workflow.
| Field | Synchronized | Displayed in IU preview |
|---|---|---|
| SMTP_SERVER | Yes | Yes |
| SMTP_PORT | Yes | Yes |
| SMTP_USER | Yes | Yes |
| SMTP_FROM | Yes | Yes |
| SMTP_TO | Yes | Yes |
| SMTP_PASSWORD | Yes (vault-encrypted in conf; Kubernetes secret for the operator) | Masked as ******** or (not set) |
| SMTP_CONFIG_SOURCE | Set to app_db when product settings are applied | Yes |
| Failure | Typical cause | What to do |
|---|---|---|
| SMTP from AppViewX Product Settings is missing or incomplete | Settings -> General -> SMTP is not fully configured. | Configure SMTP in the AppViewX UI, then retry option 2. |
| Operator deployment not found | Auto Remediation not installed. | Install Auto Remediation, then retry. |
| SMTP_CONFIG_SOURCE=manual and SMTP is complete | Product sync is intentionally skipped for overwrite. | Use Reload Configuration to edit monitoring SMTP, or complete or clear manual SMTP if product SMTP should be used. |
| Sync finished but SMTP is still incomplete | Password or required fields still missing after sync. | Fix product SMTP. Retry option 2 before Run Alert Cycle. |
| Command non-zero exit | Helm or secret apply failed, or application database unreachable. | Check logs/auto_remediation_*.log. Verify application database connectivity and operator health. |
View Configuration
Purpose
Display the current Auto Remediation configuration: a masked summary of auto_remediation.conf, then the currently applied Node Manager and/or Cluster Manager configuration collected from the environment.
| Item | Location |
|---|---|
| Runtime flags | scripts/auto_remediation.conf |
| Check YAML | scripts/auto_remediation_config.yaml |
| Exported view output | logs/auto_remediation_config_<timestamp>/ |
| Section | Keys shown (when present) |
|---|---|
| SMTP | SMTP_CONFIG_SOURCE, SMTP_SERVER, SMTP_PORT, SMTP_USER, SMTP_FROM, SMTP_TO, SMTP_ERROR_TO |
| Alerting | GROUP_BY, ALERT_MIN_COUNT, ALERT_EMAIL_SUBJECT, ALERT_CRON_SCHEDULE, ALERT_MANUAL_TRIGGER_ENABLED, COOLDOWN_PERIOD, COOLDOWN_OVERRIDES, AUTOFIX_ESCALATION_COUNT, AUTOFIX_ESCALATION_WINDOW_MINUTES, WEBHOOK_ENABLED, WEBHOOK_URL |
| Monitoring / Nodes | MONITORING_INTERVAL, AUTO_REMEDIATION_MONITORING_NODES, AUTO_REMEDIATION_RQLITE_NODES, RQLITE_DB_RETENTION_DAYS, CLUSTER_WATCHDOG_ENABLED, CLUSTER_WATCHDOG_CRON_SCHEDULE |
| Reports | REPORT_CRON_SCHEDULE, REPORT_OUTPUT_DIR, REPORT_FORMAT |
| Sensitive | SMTP_PASSWORD_ENCRYPTED shown as (set, hidden) or (not set) |
Expected output
Masked conf summary, then collected YAML or config files under logs/auto_remediation_config_<timestamp>/. The IU then prints View configuration completed.
Prepare/Edit auto_remediation_config.yaml
Purpose
Create scripts/auto_remediation_config.yaml from the shipped template if it does not exist, optionally edit it in a terminal editor, and validate YAML before Apply Configuration.
Configuration file location
| File | Path |
|---|---|
| Working configuration | scripts/auto_remediation_config.yaml |
| Template | scripts/auto_remediation_config-template.yaml.template |
Required sections
IU validation requires these top-level keys:
node_manager: # host-level checks ; cluster_manager:
# cluster-level checks
Optional/Per-plugin settings
| Section | Role | Notes from current template |
|---|---|---|
| node_manager.service | Host services (sshd, kubelet, containerd, firewalld, chrony, and others) | firewalld expected inactive; several optional services ignore_if_not_found |
| node_manager.sysctl | Kernel parameters including IPv6-related keys | ipv6_enabled is set from ENABLE_IPV6 when the file is created from the template |
| node_manager.dns / ulimit / path / command / packages | Resolver, file limits, install paths, identity/SELinux, package presence | Keep template structure |
| node_manager.images / resources / metrics | Image presence and host resource thresholds | Adjust thresholds to site standards |
| node_manager.kube_certs | kubelet/kubeadm certificate validity | autofix is false by default. Enabling it can cause AppViewX downtime. |
| cluster_manager.node_health | Node Ready status | label_selector may be empty for all nodes |
| cluster_manager.pod_health | Pod health by namespace (avx, kube-system, istio-system) | autofix per namespace as in the template |
| cluster_manager.basic_checks | Redis, Mongo, namespace, and web certificate checks | Mongo replica lag keys are present in the template |
| cluster_manager.metrics_cluster | Cluster metrics collection | validate-only in the template |
Recommended workflow after editing
Run Alert Cycle
Purpose
Immediately process waiting Auto Remediation alert records (send a digest according to SMTP and alert settings) instead of waiting for ALERT_CRON_SCHEDULE.
ALERT_MANUAL_TRIGGER_ENABLED
If you must enable it after it was set to false: set the value in auto_remediation.conf, then use Reload Configuration (option 1).
Expected output
On success the IU prints Alert cycle completed. The script logs Manual alert processing completed. If a cycle is already running, the script may report that processing is already in progress (warning; exit 2).
| Log | Location |
|---|---|
| Installer / IU script log | logs/auto_remediation_<timestamp>.log |
| Operator | kubectl logs -n auto-remediation -l app=auto-remediation-operator |
| Alert emailer Job | kubectl get jobs -n auto-remediation ; kubectl logs -n auto-remediation <job-pod> |
Validation
Confirm intended recipients received mail only after SMTP is known-good. Do not log passwords while testing SMTP.
| kubectl get cronjob auto-remediation-operator-alert-emailer -n auto-remediation ; kubectl get jobs -n auto-remediation |
| Issue | Cause | Resolution |
|---|---|---|
| SMTP has not been configured | Empty SMTP_SERVER / SMTP_FROM / SMTP_TO or missing password | Option 2, then retry |
| ALERT_MANUAL_TRIGGER_ENABLED is not true | Flag set to false | Set true in auto_remediation.conf, Reload Configuration, retry |
| Operator not ready | Pods crash-looping or missing | kubectl get pods -n auto-remediation; repair install |
| Alert-emailer CronJob missing | SMTP/alerting not applied to operator | Option 2 (or reload after SMTP is complete) |
| Already in progress | Concurrent cycle | Wait; check jobs; retry |
| No waiting alerts | Nothing queued | Not a platform failure. Wait for monitoring or reproduce an issue. |
Generate Report
Purpose
Generate an Auto Remediation report from the RQLite database (issues and remediation history stored by the platform).
Supported formats
| Format | Output |
|---|---|
| html | Single file auto_remediation_report_YYYYMMDD_HHMMSS.html |
| csv | Directory auto_remediation_report_YYYYMMDD_HHMMSS/ containing per-table CSV files |
PDF, JSON, and other formats are not offered by the current IU and are not supported from this menu.
Output directory
Reports are written to REPORT_OUTPUT_DIR from auto_remediation.conf. If that value is empty, the generator uses ./auto_remediation_reports/ relative to the scripts working directory. The shipped template default is /tmp/auto-remediation-reports.
Command examples (Support)
cd <installer>/appviewx_kubernetes/scripts ; ./auto_remediation.sh --report --format html ;
./auto_remediation.sh --report --format csv ; ./auto_remediation.sh --report --help
Expected output
The IU prints Report generated successfully. The script prints Report generated successfully. and Report saved to: followed by the absolute output path.
Exit
Option 8 exits the Auto Remediation Configuration submenu and returns to the Interactive IU main menu. It does not uninstall Auto Remediation, does not write configuration, and does not stop Kubernetes workloads. The IU prints Exiting Auto Remediation configuration...
Ctrl+C during a submenu action cancels that operation. Ctrl+C at the submenu prompt also exits the submenu.
