Recommended Free Tools
To add a Logstash filter, put a filter { ... } block between the pipeline’s input and output blocks. The input receives events from agents or brokers, filters turn unstructured content into reliable fields, and the output forwards those events to your central store, such as Elasticsearch. A practical text-log chain is grok → date → mutate; use the json filter when the payload is JSON rather than a plain log line.
Antihost offers Linux VPS plans with full root access, unlimited traffic on a 1 Gbps port and a 14-day free trial.
This guide shows how to build that chain, test it safely, handle JSON and non-JSON events, and avoid the ordering and timestamp mistakes that make centralized logs difficult to search.
As an Amazon Associate I earn from qualifying purchases.
Where the filter fits in a centralized pipeline
A Logstash pipeline has three stages in this order:
- Input receives events, for example from a Beats listener or Kafka.
- Filter parses, enriches, renames, converts, or removes fields. This section is optional.
- Output sends the resulting events to a destination such as Elasticsearch.
Centralized logging does not require a separate “centralized filter” product. The central part is one shared Logstash pipeline receiving events from many hosts. Every event then passes through the same filter rules before it is indexed or forwarded. A parsing change in that shared pipeline can therefore affect every sender, which is why configuration testing and a controlled rollout matter.
#1 Best Overall
- BLUE LIGHT BLOCKING GLASSES: Our blue light glasses for women boast UV400 protection, blocking harmful blue rays from computer screens. With these bluelight glasses women, you can enjoy gaming, reading, or watching TV with no worries of eye strain.
- EYE RELIEF: Our blue light glasses are engineered to reduce blurry vision or strain caused by prolonged screen time. These womens blue light glasses aid in better sleep by preventing blue light from disrupting your natural sleep cycle, helping you fall asleep faster and enjoy a more restful night's sleep, making them the perfect christmas present.
- COMFORTABLE: Crafted from durable material, our trendy blue light glasses for woman or blue light glasses men ensure long-lasting comfort. The high-transmittance lenses accessories, gamer gifts for men, help keep your eyes relaxed. Perfect stocking stuffers, gifts for gamers men, christmas gifts for men, halloween costumes.
- LIGHTWEIGHT: These clear blue light glasses feature a lightweight frame, meaning they’ll stay comfy for long-term wear. Perfect as blue blockers glasses for women or mens blue light glasses, these non-prescription fake glasses for men can be worn throughout the day. The blue light blocking glasses women feature polycarbonate HD lenses, which are anti-reflective and restore true color.
- WORRY-FREE PURCHASE: If you experience any issues, our support team is ready to assist you quickly. These are the perfect costume glasses for cosplay dressing up.
A minimal pipeline shape
input {
beats {
port => 5044
}
}
filter {
# parsing and normalization rules go here
}
output {
stdout { codec => rubydebug }
}
The Beats-on-port-5044 example is the shape shown in the Elastic 8.19 “Parsing Logs with Logstash” documentation. Its filter block is commented out so that you can add parsing incrementally. Replace the input and output with the plugins used in your environment; the filter stage remains in the middle.
Choose filters by the transformation you need
| Filter | What it does | Typical input | Result to verify |
|---|---|---|---|
| grok | Extracts named fields from free-form text using reusable patterns. | A line such as a timestamp, level, and message separated by spaces. | Fields such as ts, level, and msg. |
| date | Parses a field and assigns the event’s canonical @timestamp. |
The field produced by grok or another parser. | @timestamp reflects when the event occurred, not merely when Logstash received it. |
| mutate | Renames, converts, normalizes, or removes fields. | Parsed fields with inconsistent names or types. | Searchable names and correct data types, such as an integer status. |
| json | Expands JSON held in one field into structured fields. | A whole-line JSON payload in message, or JSON that should remain nested. |
Top-level fields or an object under the target field you select. |
Do not apply every filter to every event. A JSON application log and a plain-text system log need different parsing paths. If a JSON parser receives a non-JSON line, it records a parse failure instead of producing useful fields.
Windows Errors? Fix Them Before They Spread
Repair common Windows errors and clear accumulated junk for a smoother, more stable PC - no reinstall needed.Free scan · no reinstallOutdated Drivers Are Slowing You Down
One free scan finds every outdated or missing driver and matches the right update for your exact hardware.Free scan · exact hardware matchBuild a reliable text-log chain
1. Extract fields with grok
Grok matches a regular expression assembled from named patterns. Common built-in patterns include TIMESTAMP_ISO8601, LOGLEVEL, and GREEDYDATA. The named portion before the colon becomes the destination field.
grok {
match => {
"message" => "%{TIMESTAMP_ISO8601:ts} %{LOGLEVEL:level} %{GREEDYDATA:msg}"
}
}
For a line such as 2026-10-14T07:15:22Z INFO Player session started, this pattern creates ts, level, and msg. Keep the original message while you are developing the pattern; removing it too early makes failures harder to diagnose.
When senders use more than one line format, provide an array of patterns. Grok tries them in the order written:
Rank #2
- WINDEX GAMING WIPES: effortlessly clean all your gaming gear and gaming electronics in one easy step with our new Windex Gaming Wipes
- AMMONIA FREE: our ammonia-free formula is safe to use on all of your favorite gaming equipment like consoles, headsets, controllers, screens, keyboards, and more
- PRE-MOISTENED WIPES: each wipe instantly removes dust, dirt, and stubborn smudges and fingerprints leaving a streak-free shine
- ANTI-STATIC: great for cleaning and wiping down your gaming gear and electronics leaving behind no visible residue
- COMPACT RESEALABLE PACKAGE: store your pack of Windex Gaming Wipes anywhere in your home for whenever a quick and easy wipedown is needed
grok {
match => {
"message" => [
"%{TIMESTAMP_ISO8601:ts} %{LOGLEVEL:level} %{GREEDYDATA:msg}",
"%{TIMESTAMP_ISO8601:ts} [%{LOGLEVEL:level}] %{GREEDYDATA:msg}"
]
}
}
Keep alternatives narrowly scoped. A pattern that accepts almost anything can appear to work while silently putting malformed data into the wrong fields.
What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
2. Set the event timestamp with date
Grok only extracts text. The date filter interprets that text and writes the event’s @timestamp. Use ISO8601 for a standard ISO-8601 value, or specify a custom format for another layout.
date {
match => ["ts", "ISO8601"]
target => "@timestamp"
remove_field => ["ts"]
}
If the source timestamp is local time rather than UTC, set the date filter’s timezone option to the zone in which that log was generated. Without that qualification, identical wall-clock text can represent different instants when events come from hosts in different regions. Remove the temporary ts field only after the date parse is working; retaining it during initial testing lets you compare the source value with @timestamp.
3. Normalize with mutate
Use mutate after parsing to make fields consistent for queries, dashboards, and mappings.
mutate {
convert => { "status" => "integer" }
lowercase => ["level"]
remove_field => ["message"]
}
Converting a status value to an integer prevents a numeric range query from being treated as text. Lowercasing the level makes INFO, Info, and info comparable. Remove the raw message only when the extracted fields contain everything you need; otherwise keep it for investigation.
Do these 3 things before closing this tab:
1Repair Windows errors before they cause bigger problems2Scan for outdated or missing drivers - takes under a minute3Clear out junk files and repair common Windows errorsRank #3
- Ergonomic & Adjustable Design: Fight "text neck" and improve your posture. Designed for comfort, it offers an adjustable height (7.1in-8.5in) (1.4in adjustable range) and angle (5°-85°) Please note: cell phone stand is only 9 inches tall—the length of a standard pencil
- Without blocking subtitles Perfect for office desk Tiktok Face Time Zoom video—this is the ultimate kitchen desk essential for phones! Perfect viewing experience while reducing neck back strain, A must-have for gamers streamers desk, and anyone who values both style and support!
- Sleek & Stable Design fits Otterbox Case: Say goodbye to bent cables, tangles, and tip-overs! LISEN’s stylish adjustable desk phone holder features a built-in charging hole and smart cable management, keeping your phone secure and your workspace clutter-free cool gadgets for men
- ANTI-SLIP DESIGN free hands: The under 10.00 items easy gadgets back and the bottom of this kitchen essentials for women are fully covered by anti-skid silicone, which LISEN stand up desk decor can provide maximum protection device from any scratches and slides
- Your Perfect Viewing Companion:If your product arrives damaged or breaks within 365 days, reach out to LISEN for a quick and hassle-free solution. Struggling with assembly, like tightening the screw? We’ve got your back! Your experience matters to us. (Product including: phone Holder stand*1, screw*1, hexagon screwdriver*1, specification*1)
Filter order is part of the design
Logstash executes separate filter plugins in the order they appear in the configuration. A common text pipeline is grok first, date second, and mutate third: grok creates the timestamp field, date consumes it, and mutate performs final cleanup.
Inside one mutate block, operations have a documented internal order rather than following the order of individual lines. The sequence is:
- coerce
- rename
- update
- replace
- convert
- gsub
- uppercase
- capitalize
- lowercase
- strip
- split
- join
- merge
- copy
That matters when one operation depends on another. For example, a rename is completed before a convert, so converting the new field name in the same mutate block is valid. If a dependency is not obvious, split it into two mutate blocks and make the sequence explicit. This also makes troubleshooting easier because you can inspect the event between stages.
Parse JSON without damaging plain-text events
The json filter expands JSON stored in a field. For a whole-line JSON event, point source at message:
Quick wins for a faster PC:
Fix the driver behind crashes, sound loss and screen glitchesFind Drivers →Clear out junk files and repair common Windows errorsFree Scan →Scan for outdated or missing drivers - takes under a minuteDriver Scan →json {
source => "message"
}
By default, parsed keys are placed into the event. Set target when you want the object kept under a namespace instead:
Rank #4
- Easy Installation: Our gaming lights have been designed to enhance your entertainment experience. Simply position the led light bar next to your TV or game console to create a game room environment with ease. They come with USB power and a 60 inch cord for direct mounting and mobility
- Audio Syncing & Extensive Mode: The built-in high-sensitivity music sensor allows you to sync the TV led lights to your favorite music. Lights react and move to the beat of music, film and game audio, creating an incredible immersive sound and light experience – and all without the need for an additional hub. You can choose from 64+ patterns, including strobe, illusion, jump, energy, gradient, running, chasing, fluttering mode etc. Each mode can be applied to different scenes
- 64+ Chasing IC+RGB & W Effect: The independent control design of IC+RGB and white all-in-one multifunctional rgbw led bar lights monitor backlight allows you to easily switch the led lights for desk between IC+RGB and white to enjoy a variety of lighting effects, you can choose white lighting mode with high brightness for better illumination when working, etc. Choose IC+RGB lighting mode when you need to create an entertaining atmosphere for the light show, 16 million colours of Color changing rgb light bar let you dance to the beat and create a dynamic party atmosphere
- Dynamic and Dimmable Lights: 1%-full brightness free brightness adjustment gives you the flexibility to adjust dimmable led light bar for room decorations or a variety of occasions
- USB Powered: USB light bars for room can be powered by powernank, usb charger, TV, Monitor, laptop PC mainframe, making behind TV led lighting bar easy to install in any location.TV led lights are powered by the TV usb interface / PC mainframe, can be turned on/off synchronously with TV / PC
json {
source => "message"
target => "app"
}
Use the target form when different applications might emit keys with the same name, or when preserving the original event layout is useful. A nested object can then be queried as app.user, app.request_id, and so on.
Use a branch when formats are mixed
Applying json to every event is unsafe when the same centralized input carries both JSON and plain text. A non-JSON line receives a parse-failure tag rather than useful fields. Branch on a reliable characteristic of the event, such as a source field added by the input or a JSON-looking message, and run only the matching parser.
filter {
if [log_format] == "json" {
json {
source => "message"
target => "app"
}
} else {
grok {
match => {
"message" => "%{TIMESTAMP_ISO8601:ts} %{LOGLEVEL:level} %{GREEDYDATA:msg}"
}
}
date {
match => ["ts", "ISO8601"]
target => "@timestamp"
remove_field => ["ts"]
}
}
mutate {
lowercase => ["level"]
}
}
The branch above assumes the sender or an earlier stage supplies log_format. If no such field exists, establish one at the input or split pipelines by source rather than guessing from message text. The important rule is that each parser should see only the format it understands.
Why a single json-then-grok example can mislead
A frequently copied example places json first and then applies grok to message. That combination needs validation: parsing JSON does not automatically turn a JSON line into the plain-text layout expected by a grok pattern, and non-JSON messages will produce a JSON parse failure. Build the date step yourself after confirming which field contains the timestamp, and test the exact event formats your senders emit.
A complete starter configuration
The following configuration is a conservative text-log example. It extracts fields, converts the timestamp, normalizes the level, and keeps the raw message out of the final event only after the preceding steps have succeeded.
Best Value
- Compatible with Wide Screens - To ensure compatibility with the dual monitor mount, your each monitor must meet three conditions at the same time: First, computer screens size range: 13 to 32 inches. Second, screen weight range: 4.4 to 19.8 lbs. Third, the back of the monitor screen must have VESA mounting holes with a pitch of 75x75mm or 100x100mm.
- Regarding the compatibility with desks - Your desk must meet three conditions at the same time: First, desk material: Only wooden desks are recommended, plastic or glass desks cannot be used. Second, desk thickness range: 0.59" - 3.54". Third, the bottom of the desk should not have any cross beams or panels, as this will interfere with installation. We recommend carefully checking that your desk and monitors meets all above conditions before purchasing.
- Dual C-Clamp Hold - Worried your dual monitors might wobble or slip? Our upgraded base uses a larger platform plus a dual C-clamp structure to lock the dual monitor arm firmly to your desk. Each arm safely keeps your screens steady while you type, click and game—no shaking, no sliding, just a clean and secure setup you can trust every day. It also provides Grommet Mounting installation choice, both options ensure stable and secure fixation for your 0.59" - 3.54" desk.
- Full-Motion Adjustment For Comfortable View - Pull the screen closer when you’re deep in a spreadsheet, push it back to watch videos, or rotate to portrait for coding — moving everything smoothly with just one hand. The monitor stand offers +85°/-50° tilt, ±90° swivel and 360° rotation. Raise your monitor up to 15.75″ to support a healthy sitting posture. Whether you’re working from home, gaming through the night, or switching between video calls and documents, getting the screens to your natural line of sight helps relieve neck, shoulder and back strain so you can stay focused longer with less fatigue.
- Keep Your Desk Organized: By lifting both screens off the desktop, this dual monitor stand opens up valuable space for your keyboard, notebook, docking station or a simple, clutter-free work area. Built-in cable management guides wires along the arms, keeping cords out of sight and out of the way. Enjoy a tidy, modern workstation that looks as good as it feels to use.
input {
beats {
port => 5044
}
}
filter {
grok {
match => {
"message" => "%{TIMESTAMP_ISO8601:ts} %{LOGLEVEL:level} %{GREEDYDATA:msg}"
}
}
date {
match => ["ts", "ISO8601"]
target => "@timestamp"
remove_field => ["ts"]
}
mutate {
convert => { "status" => "integer" }
lowercase => ["level"]
remove_field => ["message"]
}
}
output {
stdout { codec => rubydebug }
}
This is a starting point, not a universal production template. Add a JSON branch for JSON applications, add patterns for every legitimate text format, and decide deliberately whether retaining message is required for incident response or compliance.
Validate before sending events to your central store
Check syntax without starting the pipeline
Run Logstash’s configuration test against the file:
Free tools Windows power users keep installed
One-click scans. No signup required.
bin/logstash -f first-pipeline.conf --config.test_and_exit
A successful syntax check means Logstash can read the configuration; it does not prove that a grok pattern matches your real logs or that a timestamp is interpreted in the intended timezone. Treat parser behavior as a separate test.
Test with representative fixtures
- Collect at least one real line for every text format and one valid JSON event for each JSON schema.
- Include edge cases: a different log level, a missing optional value, a timestamp with an offset, and a malformed line.
- Run the pipeline with a console-style output such as
stdout { codec => rubydebug }while developing. - Confirm that extracted fields have the expected names and values.
- Compare the original timestamp field with
@timestamp, including the intended timezone conversion. - Check that numeric fields are numbers, not quoted strings, and that fields you intend to remove are gone only after parsing succeeds.
Do not use a successful startup as evidence that parsing is correct. A syntactically valid pattern can still fail on production variants, and an incorrect date can silently place events in the wrong time window.
Roll out in a controlled way
Because a shared pipeline receives events from many hosts, deploy a new filter to a limited source or a separate test pipeline first when your operating model allows it. Watch parse-failure tags, field completeness, event timestamps, and index-mapping errors before widening the change. Keep the previous configuration available so you can restore service quickly if an unexpected format appears.
Troubleshoot the failures that matter most
| Symptom | Likely cause | What to inspect |
|---|---|---|
| No extracted fields | The grok pattern does not match the sender’s exact spacing, punctuation, or prefix. | Print the raw message, compare it character by character with the pattern, and add a second pattern only for a documented alternate format. |
| Events have the ingestion time | The date filter did not find the field, used the wrong format, or interpreted a local timestamp without its timezone. | Check the field name produced by grok, the match value, and the timezone setting. |
| JSON parse failures on ordinary logs | The json filter runs on events that are not JSON. | Use a format branch or separate input/pipeline path so plain text bypasses json. |
| Queries treat numbers as text | The field was never converted, or conversion ran before the field was created. | Place mutate after the parser and verify the resulting type in debug output. |
| A needed field disappears | remove_field removed the raw source before the parse was confirmed. |
Temporarily remove the cleanup directive, validate extraction, then reintroduce it deliberately. |
| One format works and another fails | A single pattern assumes all senders use the same layout. | Use grok’s pattern array for genuine text variants, or branch by a reliable source/format field. |
Version and compatibility checks
Plugin versions are released independently of Logstash core. RubyGems lists logstash-filter-grok 4.4.4 as released on February 11, 2026, and logstash-filter-mutate 3.6.0 as released on March 26, 2026. Those dates identify gem releases, not a Logstash core release, and a particular Logstash distribution may bundle different versions. Check the plugins included with the Logstash version you actually run before relying on a newly documented option or behavior.
The Tool Desk
Outbyte PC Repair FREEClear out junk files and repair common Windows errorsFree Scan →Outbyte Driver Updater FREEFix the driver behind crashes, sound loss and screen glitchesFind Drivers →The Elastic documentation used for the pipeline example is version 8.19. Documentation labels and bundled plugins can change, while the current Logstash release number is not established here. Pin your operational guidance to the version installed in each environment and repeat the configuration test after upgrades.
Production checklist
- Input, filter, and output blocks are present in that order, with the filter block used only where parsing is needed.
- Every grok pattern is matched against representative lines from each sender format.
- The date filter consumes the actual timestamp field and specifies
ISO8601or the correct custom layout. - A non-UTC source has an explicit timezone policy.
- Mutate runs after fields exist, and dependent operations respect its documented internal order.
- JSON parsing is limited to JSON events; nested data uses
targetwhen namespace isolation is required. - The raw message is retained until parsing is verified and is removed only for a deliberate reason.
bin/logstash -f first-pipeline.conf --config.test_and_exitpasses before deployment.- Debug output confirms field names, timestamp values, and numeric types.
- Plugin versions are checked against the Logstash release and bundle used by your organization.
What a good centralized filter achieves
A useful filter does more than make an event look tidy. It gives every host a consistent schema: the same level field can be filtered regardless of capitalization, statuses can be aggregated numerically, and searches can use the event’s true occurrence time. Grok handles extraction, date establishes temporal meaning, mutate enforces naming and types, and json preserves structure when the source already provides it. Keeping those responsibilities separate, ordering them intentionally, and testing each source format turns a shared Logstash pipeline into a dependable foundation for centralized logging.
Quick Recap
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.




