with one click
node-logs
// Retrieve logs from a Kubernetes node. Supports journalctl (systemd units) and file-based logs. Use when you need to inspect node-level logs (containerd, kubelet, etc.). Execute via node_script tool.
// Retrieve logs from a Kubernetes node. Supports journalctl (systemd units) and file-based logs. Use when you need to inspect node-level logs (containerd, kubelet, etc.). Execute via node_script tool.
Guide for writing and improving Siclaw skills. Read this when creating or modifying a skill. Covers SKILL.md format, script execution modes, and best practices.
Check node health and diagnose node-level issues (NotReady, DiskPressure, MemoryPressure, PIDPressure). Inspects node conditions, resource allocation, and real-time usage.
Diagnose DNS resolution failures in the cluster (NXDOMAIN, timeouts, SERVFAIL). Checks CoreDNS health, service endpoints, and DNS configuration.
Ping a pod's gateway for a given network interface. Auto-detects gateway IP from the routing table, then pings it. First resolve_pod_netns, then node_script with netns param.
Show the gateway for a network interface in a Kubernetes pod. Reads the routing table via `ip -j route` from the pod's network namespace. First resolve_pod_netns, then node_script with netns param.
Diagnose NetworkPolicy-related connectivity issues (traffic unexpectedly blocked, default-deny effects, egress blocking DNS). Identifies which NetworkPolicies affect a pod, checks ingress/egress rules, and verifies CNI support.
| name | node-logs |
| description | Retrieve logs from a Kubernetes node. Supports journalctl (systemd units) and file-based logs. Use when you need to inspect node-level logs (containerd, kubelet, etc.). Execute via node_script tool. |
Use the node_script tool to run this skill:
node_script: node="<node>", skill="node-logs", script="get-node-logs.sh", args="<args>"
Required (one of):
| Parameter | Description |
|---|---|
--unit UNIT | Systemd unit name (e.g. containerd, kubelet). Use this or --file. |
--file PATH | Log file path on the node (e.g. /var/log/messages). Use this or --unit. |
Optional:
| Parameter | Default | Description |
|---|---|---|
--since DURATION | 1h ago | Time range for journalctl (only with --unit), e.g. 30m ago, 2h ago, today |
--grep PATTERN | — | Case-insensitive grep filter pattern |
--tail N | 200 | Maximum number of output lines |
Check containerd logs on a node:
node_script: node="node-1", skill="node-logs", script="get-node-logs.sh", args="--unit containerd --tail 50"
Search containerd logs for a specific image:
node_script: node="node-1", skill="node-logs", script="get-node-logs.sh", args='--unit containerd --grep "myregistry.com/myapp" --since "2h ago"'
Check kubelet logs for errors:
node_script: node="node-1", skill="node-logs", script="get-node-logs.sh", args='--unit kubelet --grep "error" --since "30m ago"'
Read a log file on the node:
node_script: node="node-1", skill="node-logs", script="get-node-logs.sh", args='--file /var/log/messages --grep "containerd" --tail 100'
Check containerd or cri-o logs when pods fail to start, images fail to pull, or containers crash unexpectedly.
Check kubelet logs for node-level issues like pod evictions, volume mount failures, or resource pressure.
Read /var/log/messages, /var/log/syslog, or other log files for kernel or system-level issues affecting the node.