Skip to content

Scope

Not in scope

  • Setting up NPS
    • There are many guides online -- this one is not bad
  • Setting up Graylog
    • There are many guides online -- the official docs also cover it in detail
    • Basic Graylog architecture:
      graph LR
      messages("Log Messages") --> graylog("Graylog Server")
      subgraph os ["OpenSearch Cluster"]
          direction LR
          os1("OpenSearch 1")
          os2("OpenSearch 2")
          osn("OpenSearch 𝒏")
      end
      graylog <--> www("Web Server")
      graylog <--> db("MongoDB")
      graylog <--> os
    • To learn more about IU13's Graylog cluster, attend Brian Steigauf's presentation here at 2:30 pm

Goals

  • Configure: configure NPS to log to disk
  • Ingest: use Graylog Sidecar filebeat collector to read the log files and send messages to Graylog
  • Process: parse log messages using Graylog Extractors and Pipelines
  • Aggregate: make log data useful for meaningful viewing

  🏅 Takeaway: be able to apply a similar process to other sources of log messages and make use of more data from your environment

NPS Log Processing Architecture

graph LR
  subgraph gl ["Graylog Server"]
    graylogapi("Graylog API")
    grayloginput("Graylog Input")
    pipeline("Pipeline
    Processing")
    subgraph extractors ["Extractors"]
      direction BT
      regex("Regex/Grok Patterns")
      lut("Lookup Tables")
      da("Data Adapters")
    end
    logs("Processed Logs")
  end

  subgraph nps ["NPS Server"]
    sidecar("Sidecar Service")
    npsservice("NPS Service")
    file("XML Log File")
  end

  sidecar -- Log messages ---> grayloginput;
  sidecar -- Get config --> graylogapi;
  sidecar -- Read --> file;
  grayloginput --> extractors -- Stream --> pipeline
  pipeline --> logs;
  npsservice -- Write --> file;
  regex -. (when needed) .-> lut;
  lut --> da;