Log Analysis and Diagnostic Data Gathering Questions

Extracting signal from existing logs and diagnostic output to find a root cause: parsing and querying log data, correlating traces and metrics during an investigation, and gathering the right diagnostic information (including asking clarifying questions) before drawing conclusions. Covers text-processing and query techniques for locating evidence in logs (structured log parsing, ElasticSearch/SQL-style log queries, log aggregation and retention trade-offs) and reconstructing a timeline from the data on hand. This is the analysis-of-existing-data skill used during troubleshooting and investigation across infrastructure and operations roles: distinct from monitoring and observability, which is about instrumenting a system so telemetry exists in the first place (see the observability topics for that), and distinct from SIEM-based security detection and formal digital-forensics practice (chain of custody, artifact/disk/memory analysis), which have their own dedicated coverage elsewhere in the catalog.

MediumTechnical
33 practiced

Write a Python 3 script that reads a newline-delimited log file where each line is a JSON object with keys: "timestamp" (ISO 8601), "service", "level", "message". The script should output per-minute error counts (level == "ERROR") for a given service over the last 60 minutes, printing lines like: 2025-03-12 14:05 3. The log may be out-of-order and can be large (~10GB): prioritize streaming and bounded memory.

EasyTechnical
42 practiced

You receive application logs as JSON lines with fields like ts (ISO8601), level, user_id, action, latency_ms (example shown as text: ts=2024-03-10T14:12:05Z level=info user_id=123 action=login latency_ms=42). Provide:

  1. A jq command (or short Python snippet) to compute counts of 'login' actions per minute
  2. A method to compute p95 latency for 'search' actions
  3. A filter to output events where user_id is missing

Explain assumptions about timezone handling and malformed JSON.

EasyTechnical
37 practiced

Given a sample Apache access log line formatted without quotes:

127.0.0.1 - frank [10/Oct/2024:13:55:36 -0700] GET /index.html HTTP/1.1 200 2326

Write a single PCRE regular expression to extract the following named groups: client_ip, user, timestamp, method, path, protocol, status, bytes. Show how you'd run grep -P or awk to capture these fields and mention timestamp parsing caveats (timezones, format).

MediumTechnical
38 practiced

Write a Logstash/ELK grok pattern (or equivalent) for Nginx 'combined' access logs to extract client_ip, timestamp, method, path, protocol, status, bytes_sent, and user_agent. Explain how you'd handle query strings in path, percent-encoding, and very long user-agent strings to avoid mapping explosion in Elasticsearch.

MediumTechnical
28 practiced

Implement a robust function (in Python or Go) that parses timestamps found in logs which may appear as any of:

  • 10/Oct/2024:13:55:36 -0700
  • 2024-10-09T11:23:45Z
  • 1700000000 (epoch seconds)

The function should normalize all to UTC ISO8601 strings, handle timezone offsets, and return a clear error for invalid formats. Describe your approach and show key code or algorithmic steps.

Unlock Full Question Bank

Get access to all 27 Log Analysis and Diagnostic Data Gathering interview questions and detailed answers.

Sign in to Continue

Join thousands of developers preparing for their dream job.