Splunk Recipes: Difference between revisions

From NovaOrdis Knowledge Base
Jump to navigation Jump to search
Line 86: Line 86:
<pre>
<pre>
logger="com.example.SomeClass" | rex mode=sed "s/.*identifer \'(.*)\' in context.*/\1/g"
logger="com.example.SomeClass" | rex mode=sed "s/.*identifer \'(.*)\' in context.*/\1/g"
<pre>
</pre>


Or with Perl regex:
Or with Perl regex:
Line 92: Line 92:
<pre>
<pre>
logger="com.example.SomeClass" | rex "identifer \'(?<id>.*)\' in context" | top id
logger="com.example.SomeClass" | rex "identifer \'(?<id>.*)\' in context" | top id
<pre>
</pre>


The variable is declared with <tt>(?<var_name>.*)</tt>
The variable is declared with <tt>(?<var_name>.*)</tt>
Line 102: Line 102:
</pre>
</pre>


Other Examples:
Other Examples: "blah" field.


!pxdc
<pre>
 
logger=* | rex field=queryString "blah=(?<i>.*)&" | top i
{{{
</pre>
logger=* | rex field=queryString "pxdc=(?<i>.*)&" | top i
}}}

Revision as of 16:37, 21 September 2016

Internal

Searching with Fields

For more details on Splunk Fields fundamentals see Splunk Concepts - Fields.

When searching for a specific field, use the following syntax:

field_name="field value"

Field names are case sensitive. Field values are not case sensitive.

Quotation marks are required when the field values include spaces.

Wildcards can be used in field values:

field_name="prefix*"

Search Syntax

Expression involving fields are explained above in Searching with Fields.

The logical AND is the implicit logical operator between expressions involving fields:

sourcetype=access_* status=200 action=purchase

Not Equals

Use "!=".

Boolean Operators

Parentheses can be used to group parts of the search string.

OR

(error OR fail* OR severe) OR (status=404 OR status=500 OR status=503)

Controlling Time Range

At the right of the search box there's a green dropdown time box.

Sort per Specific Field

ERROR | top logger

where "logger" is a field.

Reverse the Time Order

"Natural order" (from oldest to newest):

... | reverse

What is the Oldest Event I Can See?

Dashboards & View -> Data Retention -> Select Index -> mobileapps_core -> Search

You get "Data Retention by sourcetype" -> Oldest Event.

Extract only a Line Fragment

Use rex with the modifiers field= and mode=sed.

If field= is not specified, it defaults to _raw (everything in that event).

Example:

logger="com.example.SomeClass" | rex mode=sed "s/.*identifer \'(.*)\' in context.*/\1/g"

Or with Perl regex:

logger="com.example.SomeClass" | rex "identifer \'(?<id>.*)\' in context" | top id

The variable is declared with (?<var_name>.*)

Generically:

... | rex "expr_to_match_before0(?<id>.*)expr_to_match_after" | top id

Other Examples: "blah" field.

logger=* | rex field=queryString "blah=(?<i>.*)&" | top i