Splunk Observability Cisco Intersight Integration
Prerequisites
| Tool or access |
Purpose |
Verify |
| Bash and Python 3 |
Run bundled setup and validation helpers |
bash --version && python3 --version |
| Required product/platform access |
Inspect or configure the selected target |
Complete the documented preflight |
| Credential files for live modes |
Keep secrets out of chat |
Verify paths only |
Workflow Overview
┌───────────┐ ┌───────────────┐ ┌───────────────┐ ┌─────────────────┐
│ Preflight │ → │ Render/review │ → │ Apply/handoff │ → │ Validate evidence │
└───────────┘ └───────────────┘ └───────────────┘ └─────────────────┘
When to Activate
- Send Cisco Intersight, UCS, HyperFlex, or UCS-X compute metrics to Splunk Observability Cloud, configure the
cisco_intersight OTel receiver, or render UCS chassis health dashboards and detectors. This is independent of
Cisco AI Pod and.
- Preview and review the splunk observability cisco intersight integration workflow before any live apply phase.
- Diagnose failed prerequisites, generated assets, configuration, or validation evidence.
Scope
Follow the documented read-only or render-first path whenever it is available.
This skill does not imply permission to mutate live systems. Require explicit
apply flags, protected credentials, and operator review for state changes.
Examples
Inspect the supported setup modes before selecting one:
bash skills/splunk-observability-cisco-intersight-integration/scripts/setup.sh --help
Expected output: usage, supported modes, and required arguments are displayed
without changing the target environment.
Inspect validation modes before running completion checks:
bash skills/splunk-observability-cisco-intersight-integration/scripts/validate.sh --help
Expected output: offline, live, and completion options are displayed when the
skill supports them; help exits without mutation.
Troubleshooting
| Issue |
Cause |
Resolution |
| Preflight fails |
A required tool or access path is missing |
Resolve it before rendering or applying |
| Rendered assets are incomplete |
Required non-secret inputs are absent |
Complete intake and render again |
| Apply is blocked |
Review, credentials, or explicit acceptance is missing |
Use the documented handoff |
| Validation is incomplete |
Live evidence is unavailable |
Record the gap and keep completion open |
This is a standalone reusable skill for Cisco Intersight (UCS management plane) metrics in Splunk Observability Cloud. It is independent of the AI Pod umbrella — useful for any UCS deployment. The AI Pod skill composes this skill via subprocess + yq deep-merge.
The Splunk Platform TA path (Splunk_TA_Cisco_Intersight) lives in cisco-intersight-setup. That's a different layer (Splunk Platform side); this skill is the O11y side.
What it renders
intersight-integration/intersight-otel-deployment.yaml — Deployment in a separate intersight-otel namespace, points at http://<release>-splunk-otel-collector-agent.<ns>.svc.cluster.local:4317 (configurable).
intersight-integration/intersight-credentials-secret.yaml — K8s Secret manifest stub for intersight-key-id and intersight-key (placeholders only; renderer never reads the key files).
intersight-integration/intersight-otel-config.yaml — ConfigMap for intersight-otel.toml (lets the user override the OTLP collector endpoint when their collector ns/release differs).
intersight-integration/intersight-otel-namespace.yaml — Namespace manifest.
splunk-otel-overlay/intersight-pipeline.yaml — pipeline addition that admits Intersight OTLP traffic on the agent.
dashboards/intersight-overview.signalflow.yaml — UCS power/thermal, fan speed, network throughput, alarms, advisories, VM inventory.
detectors/<name>.yaml — alarm count delta, security advisory delta, host temp ceiling, host power floor.
scripts/setup.sh, render_assets.py, validate.sh, handoff-base-collector.sh, handoff-dashboards.sh, handoff-detectors.sh, apply-intersight-manifests.sh.
metadata.json.
Safety Rules
- Never ask for the Intersight API key ID or private key in conversation.
- Use
--intersight-key-id-file (chmod 600 enforced) for the key ID and --intersight-key-file (chmod 600 enforced) for the private key. The renderer never reads either file; the K8s Secret is created out-of-band.
- Reject
--intersight-key-id, --intersight-key, --api-key, --client-secret.
- O11y token via
--o11y-token-file (passed through to base collector). Reject --o11y-token, --access-token, --token, --bearer-token, --api-token, --sf-token.
Primary Workflow
Generate or locate your Intersight API key (Account Settings -> API Keys in the Intersight UI). Save the key ID and private key to chmod-600 files.
Render:
bash skills/splunk-observability-cisco-intersight-integration/scripts/setup.sh \
--render --validate \
--realm us0 \
--cluster-name lab-cluster \
--collector-release splunk-otel-collector \
--collector-namespace splunk-otel \
--output-dir splunk-observability-cisco-intersight-rendered
Create the Intersight credentials Secret out-of-band:
kubectl create namespace intersight-otel
kubectl create secret generic intersight-api-credentials -n intersight-otel \
--from-file=intersight-key-id=/tmp/intersight_key_id \
--from-file=intersight-key=/tmp/intersight_private_key.pem
Apply the manifests + handoffs:
# Direct one-shot apply via the skill (recommended). Refuses without
# --accept-k8s-apply, prints the active kube-context first, and runs the
# rendered apply-intersight-manifests.sh helper.
bash skills/splunk-observability-cisco-intersight-integration/scripts/setup.sh \
--apply --accept-k8s-apply
# Equivalent manual flow (helpful for review or CI staging):
bash splunk-observability-cisco-intersight-rendered/scripts/apply-intersight-manifests.sh
bash splunk-observability-cisco-intersight-rendered/scripts/handoff-base-collector.sh
bash splunk-observability-cisco-intersight-rendered/scripts/handoff-dashboards.sh
bash splunk-observability-cisco-intersight-rendered/scripts/handoff-detectors.sh
--apply --accept-k8s-apply --dry-run performs a server-side dry-run via
kubectl --dry-run=server without mutating the cluster. The Secret created
in step 3 is never auto-applied — the apply helper aborts if it is missing.
Hand-offs
Out of scope (companion skill)
Validation
bash skills/splunk-observability-cisco-intersight-integration/scripts/validate.sh
Static checks: manifest validity, no inline credentials, OTLP endpoint shape. With --live: prefers oc and falls back to kubectl, probes the intersight-otel namespace, checks the live OTLP target service/config, and fails if the pod logs show OTLP metrics export errors such as unknown service opentelemetry.proto.collector.metrics.v1.MetricsService.
See reference.md and references/intersight-deployment.md, intersight-secrets.md, dashboards-catalog.md, troubleshooting.md for details.
1---2name: splunk-observability-cisco-intersight-integration3description: Use when the user asks to send Cisco Intersight, UCS, HyperFlex, or UCS-X compute metrics to Splunk Observability Cloud, configure the cisco_intersight OTel receiver, or render UCS chassis health dashboards and detectors. This is independent of Cisco AI Pod and complements the Splunk Platform TA skill cisco-intersight-setup. Render and validate Cisco Intersight (UCS management plane) metrics into Splunk Observability Cloud through the Intersight OTel integration. Emits the namespace, Secret stub, Deployment, endpoint ConfigMap, Splunk OTel pipeline overlay, dashboards, detectors, and handoff scripts without reading key material.4---56# Splunk Observability Cisco Intersight Integration78## Prerequisites910| Tool or access | Purpose | Verify |11|---|---|---|12| Bash and Python 3 | Run bundled setup and validation helpers | `bash --version && python3 --version` |13| Required product/platform access | Inspect or configure the selected target | Complete the documented preflight |14| Credential files for live modes | Keep secrets out of chat | Verify paths only |1516## Workflow Overview1718```text19┌───────────┐ ┌───────────────┐ ┌───────────────┐ ┌─────────────────┐20│ Preflight │ → │ Render/review │ → │ Apply/handoff │ → │ Validate evidence │21└───────────┘ └───────────────┘ └───────────────┘ └─────────────────┘22```2324## When to Activate2526- Send Cisco Intersight, UCS, HyperFlex, or UCS-X compute metrics to Splunk Observability Cloud, configure the27 cisco_intersight OTel receiver, or render UCS chassis health dashboards and detectors. This is independent of28 Cisco AI Pod and.29- Preview and review the splunk observability cisco intersight integration workflow before any live apply phase.30- Diagnose failed prerequisites, generated assets, configuration, or validation evidence.3132## Scope3334Follow the documented read-only or render-first path whenever it is available.35This skill does not imply permission to mutate live systems. Require explicit36apply flags, protected credentials, and operator review for state changes.3738## Examples3940Inspect the supported setup modes before selecting one:4142```bash43bash skills/splunk-observability-cisco-intersight-integration/scripts/setup.sh --help44```4546Expected output: usage, supported modes, and required arguments are displayed47without changing the target environment.4849Inspect validation modes before running completion checks:5051```bash52bash skills/splunk-observability-cisco-intersight-integration/scripts/validate.sh --help53```5455Expected output: offline, live, and completion options are displayed when the56skill supports them; help exits without mutation.5758## Troubleshooting5960| Issue | Cause | Resolution |61|---|---|---|62| Preflight fails | A required tool or access path is missing | Resolve it before rendering or applying |63| Rendered assets are incomplete | Required non-secret inputs are absent | Complete intake and render again |64| Apply is blocked | Review, credentials, or explicit acceptance is missing | Use the documented handoff |65| Validation is incomplete | Live evidence is unavailable | Record the gap and keep completion open |6667This is a **standalone reusable skill** for Cisco Intersight (UCS management plane) metrics in Splunk Observability Cloud. It is **independent of the AI Pod** umbrella — useful for any UCS deployment. The AI Pod skill composes this skill via subprocess + yq deep-merge.6869The Splunk Platform TA path (`Splunk_TA_Cisco_Intersight`) lives in [cisco-intersight-setup](../cisco-intersight-setup/SKILL.md). That's a different layer (Splunk Platform side); this skill is the O11y side.7071## What it renders7273- `intersight-integration/intersight-otel-deployment.yaml` — Deployment in a separate `intersight-otel` namespace, points at `http://<release>-splunk-otel-collector-agent.<ns>.svc.cluster.local:4317` (configurable).74- `intersight-integration/intersight-credentials-secret.yaml` — K8s Secret manifest stub for `intersight-key-id` and `intersight-key` (placeholders only; renderer never reads the key files).75- `intersight-integration/intersight-otel-config.yaml` — ConfigMap for `intersight-otel.toml` (lets the user override the OTLP collector endpoint when their collector ns/release differs).76- `intersight-integration/intersight-otel-namespace.yaml` — Namespace manifest.77- `splunk-otel-overlay/intersight-pipeline.yaml` — pipeline addition that admits Intersight OTLP traffic on the agent.78- `dashboards/intersight-overview.signalflow.yaml` — UCS power/thermal, fan speed, network throughput, alarms, advisories, VM inventory.79- `detectors/<name>.yaml` — alarm count delta, security advisory delta, host temp ceiling, host power floor.80- `scripts/setup.sh`, `render_assets.py`, `validate.sh`, `handoff-base-collector.sh`, `handoff-dashboards.sh`, `handoff-detectors.sh`, `apply-intersight-manifests.sh`.81- `metadata.json`.8283## Safety Rules8485- Never ask for the Intersight API key ID or private key in conversation.86- Use `--intersight-key-id-file` (chmod 600 enforced) for the key ID and `--intersight-key-file` (chmod 600 enforced) for the private key. The renderer never reads either file; the K8s Secret is created out-of-band.87- Reject `--intersight-key-id`, `--intersight-key`, `--api-key`, `--client-secret`.88- O11y token via `--o11y-token-file` (passed through to base collector). Reject `--o11y-token`, `--access-token`, `--token`, `--bearer-token`, `--api-token`, `--sf-token`.8990## Primary Workflow91921. Generate or locate your Intersight API key (Account Settings -> API Keys in the Intersight UI). Save the key ID and private key to chmod-600 files.93942. Render:9596 ```bash97 bash skills/splunk-observability-cisco-intersight-integration/scripts/setup.sh \98 --render --validate \99 --realm us0 \100 --cluster-name lab-cluster \101 --collector-release splunk-otel-collector \102 --collector-namespace splunk-otel \103 --output-dir splunk-observability-cisco-intersight-rendered104 ```1051063. Create the Intersight credentials Secret out-of-band:107108 ```bash109 kubectl create namespace intersight-otel110 kubectl create secret generic intersight-api-credentials -n intersight-otel \111 --from-file=intersight-key-id=/tmp/intersight_key_id \112 --from-file=intersight-key=/tmp/intersight_private_key.pem113 ```1141154. Apply the manifests + handoffs:116117 ```bash118 # Direct one-shot apply via the skill (recommended). Refuses without119 # --accept-k8s-apply, prints the active kube-context first, and runs the120 # rendered apply-intersight-manifests.sh helper.121 bash skills/splunk-observability-cisco-intersight-integration/scripts/setup.sh \122 --apply --accept-k8s-apply123124 # Equivalent manual flow (helpful for review or CI staging):125 bash splunk-observability-cisco-intersight-rendered/scripts/apply-intersight-manifests.sh126 bash splunk-observability-cisco-intersight-rendered/scripts/handoff-base-collector.sh127 bash splunk-observability-cisco-intersight-rendered/scripts/handoff-dashboards.sh128 bash splunk-observability-cisco-intersight-rendered/scripts/handoff-detectors.sh129 ```130131 `--apply --accept-k8s-apply --dry-run` performs a server-side dry-run via132 `kubectl --dry-run=server` without mutating the cluster. The Secret created133 in step 3 is never auto-applied — the apply helper aborts if it is missing.134135## Hand-offs136137- Splunk OTel Collector base install: [splunk-observability-otel-collector-setup](../splunk-observability-otel-collector-setup/SKILL.md).138- Dashboards: [splunk-observability-dashboard-builder](../splunk-observability-dashboard-builder/SKILL.md).139- Detectors: [splunk-observability-native-ops](../splunk-observability-native-ops/SKILL.md).140141## Out of scope (companion skill)142143- Splunk Platform TA path (`Splunk_TA_Cisco_Intersight`): [cisco-intersight-setup](../cisco-intersight-setup/SKILL.md).144145## Validation146147```bash148bash skills/splunk-observability-cisco-intersight-integration/scripts/validate.sh149```150151Static checks: manifest validity, no inline credentials, OTLP endpoint shape. With `--live`: prefers `oc` and falls back to `kubectl`, probes the `intersight-otel` namespace, checks the live OTLP target service/config, and fails if the pod logs show OTLP metrics export errors such as `unknown service opentelemetry.proto.collector.metrics.v1.MetricsService`.152153See `reference.md` and `references/intersight-deployment.md`, `intersight-secrets.md`, `dashboards-catalog.md`, `troubleshooting.md` for details.