Install
openclaw skills install cisco-asa-syslogParse, interpret, and analyze Cisco ASA (Adaptive Security Appliance) firewall syslog messages. Use this skill whenever working with Cisco ASA log files, sys...
openclaw skills install cisco-asa-syslogThis skill teaches you how to read, parse, and interpret log messages generated by Cisco ASA firewalls. All ASA logs are delivered via the syslog protocol, so understanding syslog is foundational before working with ASA-specific content.
All Cisco ASA log messages are transported and formatted using the syslog standard (RFC 3164 / RFC 5424). You must understand syslog before interpreting ASA messages.
Every syslog message carries a numeric severity (0 = most critical, 7 = least critical):
| Level | Keyword | Meaning |
|---|---|---|
| 0 | Emergency | System is unusable |
| 1 | Alert | Immediate action required |
| 2 | Critical | Critical conditions |
| 3 | Error | Error conditions |
| 4 | Warning | Warning conditions |
| 5 | Notice | Normal but significant events |
| 6 | Informational | Routine informational messages |
| 7 | Debug | Verbose diagnostic output |
Facility codes indicate the source subsystem (0-23). Cisco ASA uses local4 (code 20) by default, but this is configurable on the device.
The PRI header encodes both facility and severity:
PRI = (Facility x 8) + Severity
Example: local4 (20) + Informational (6) -> (20 x 8) + 6 = 166, shown as <166> in the log header. This is the most common PRI value seen in ASA logs.
<PRI>TIMESTAMP HOSTNAME TAG: MESSAGE
Example: <166>Jan 15 10:22:01 fw01 : %ASA-6-302013: Built outbound TCP connection...
Enabled via "logging timestamp rfc5424". Uses ISO 8601 UTC timestamps:
<PRI>VERSION TIMESTAMP HOSTNAME APP-NAME PROCID MSGID STRUCTURED-DATA MSG
Example: <166>1 2018-06-27T12:17:46Z asa - - - %ASA-6-110002: Failed to locate egress interface...
Every ASA event message follows this pattern, regardless of syslog envelope:
%ASA-severity-message_id: message_text
| Field | Description |
|---|---|
| %ASA | Fixed literal prefix on all ASA messages |
| severity | Single digit 0-7 matching syslog severity levels above |
| message_id | 6-digit numeric ID uniquely identifying the event type |
| message_text | Human-readable description with variable substitutions |
<PRI> TIMESTAMP HOSTNAME : %ASA-severity-message_id: message_text
Real example (RFC 3164): <166>Jan 15 10:22:01 fw01 : %ASA-6-302013: Built outbound TCP connection 12345 for outside:203.0.113.1/443 (203.0.113.1/443) to inside:192.168.1.100/54321 (192.168.1.100/54321)
Real example (RFC 5424): <166>1 2024-01-15T10:22:01Z fw01 - - - %ASA-6-302013: Built outbound TCP connection...
The 6-digit message ID encodes the functional category in its first 3 digits:
| Range | Category |
|---|---|
| 1xxxxx | System, interfaces, failover, hardware |
| 2xxxxx | VPN failover, high availability |
| 3xxxxx | Firewall, connection tracking, NAT |
| 4xxxxx | Security, IPS, ACL, threat detection |
| 5xxxxx | User authentication, identity |
| 6xxxxx | VPN crypto, IPSec, SSL, remote access |
| 7xxxxx | Application inspection, protocol handling |
| 8xxxxx | Management, platform, clustering |
ASA message text uses descriptive named placeholders:
| Token | Meaning |
|---|---|
| interface_name | ASA interface (e.g., inside, outside) |
| src_ip/port | Source IP and port |
| dst_ip/port | Destination IP and port |
| protocol | IP protocol (TCP, UDP, ICMP, etc.) |
| conn_id | Unique connection tracking number |
| direction | inbound or outbound |
| reason | Cause of event (e.g., SYN Timeout, FIN) |
| username | Authenticated user identity |
| group | VPN tunnel group or policy name |
| access_list | Name of the ACL that matched |
| action | permit or deny |
Extract the core ASA fields from any log line:
%ASA-(?P<severity>\d)-(?P<message_id>\d{6}):\s+(?P<message_text>.+)
Full line including syslog envelope:
^(?P<timestamp>\S+\s+\S+\s+\S+|\S+T\S+Z)\s+(?P<hostname>\S+)\s+:\s+%ASA-(?P<severity>\d)-(?P<message_id>\d{6}):\s+(?P<message_text>.+)$
Detailed documentation for each message ID is maintained in separate files organized by range, matching Cisco's official documentation structure:
| File | Message ID Range |
|---|---|
references/Syslog Messages 101001 to 199027.md | 101001 - 199027 |
references/Syslog Messages 201002 to 219002.md | 201002 - 219002 |
references/Syslog Messages 302003 to 342008.md | 302003 - 342008 |
references/Syslog Messages 400000 to 450002.md | 400000 - 450002 |
references/Syslog Messages 500001 to 520025.md | 500001 - 520025 |
references/Syslog Messages 602101 to 622102.md | 602101 - 622102 |
references/Syslog Messages 701001 to 714011.md | 701001 - 714011 |
references/Syslog Messages 715001 to 721019.md | 715001 - 721019 |
references/Syslog Messages 722001 to 776020.md | 722001 - 776020 |
references/Syslog Messages 776201 to 833333.md | 776201 - 833333 |
For serverity levels, refer to references/Messages Listed by Severity Level.md
For overall information of Cisco ASA syslog messages, refer to references/About Cisco Secure Firewall ASA.md
Official Cisco source: https://www.cisco.com/c/en/us/td/docs/security/asa/syslog/asa-syslog.html