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;