Presentation is loading. Please wait.

Presentation is loading. Please wait.

Administering Splunk 4.2 Ver. 1.0.

Similar presentations


Presentation on theme: "Administering Splunk 4.2 Ver. 1.0."— Presentation transcript:

1 Administering Splunk 4.2 Ver. 1.0

2 Document usage guidelines
Should be used only for enrolled students Not meant to be a self-paced document Do not distribute March 24, 2011

3 Class Goals Describe Splunk installation and server operations
Configure data inputs Describe default processing and understand how to modify data inputs Manage Splunk datastores Add users, configure groups, and understand authentication Describe alert configurations Configure forwarding/receiving and clustering Use Splunk’s Deployment Server Manage jobs and knowledge objects Find out where to get help

4 Course Outline Installing Splunk Configuring Data Inputs
Modifying Data Inputs Config File Precedence Splunk's Data Stores Users, Groups, and Authentication Forwarding and Receiving Distributed Environments Licensing Security Jobs, Knowledge Objects, and Alerts Troubleshooting

5 Section 1: Installing Splunk

6 Section objectives List Splunk’s hardware/software requirements
Describe how to install Splunk Perform server basics; starting, stopping, and restarting Splunk Describe the Splunk license model List the basic tools to configure Splunk: Manager, CLI, and editing config files Describe apps Upgrade to 4.2 List what’s new in Splunk 4.2 for administrators

7 OS requirements Splunk works on Windows, Linux, Solaris, FreeBSD, MacOS X, AIX, and HP-UX Check current documentation for specifics for each OS

8 Hardware Requirements
Platform Recommended Configuration Minimum Configuration Non-Windows OS 2x quad-core Xeon, 3GHz, 8GB RAM, RAID 0 or 1+0, with a 64 bit OS installed 1x1.4 GHz CPU, 1 GB RAM Windows Pentium 4 or equivalent at 2Ghz, 2GB RAM Tell students that hard drive and file system requirements will be covered in the index section. Please take with a grain of salt High volume/high user installs will have greater requirements and/or multi-server installs Also note that minimum configuration implies minimum performance.

9 Supported browsers Firefox 2.x, 3.0.x, 3.5.x (3.5.x only supported on and later) Internet Explorer 6, 7, & 8 Safari 3 Chrome 9 All browsers need Flash 9 to render reports and display the flash timeline

10 Download the bits Download Splunk from (login required) Online installation instructions are available from the download page Obtain your enterprise license from sales or support

11 Download the right bits
There are 32 and 64 bit versions, get the right one The wrong version may install, but won’t run Various packages, tarballs, and installers are available for each OS

12 Install it! For zipped tarballs simply unpack the contents into the directory you want to install Splunk For Windows just double click on the MSI file See the docs for OS specific packages, and Windows command line install instructions Splunk install directory is referred to as $SPLUNK_HOME in both the docs and courseware UNIX default is /opt/splunk Windows default is C:\Program Files\splunk

13 Step by step instructions
on/latest/Installation/Chooseyourplat form

14 UNIX: to be or not to be root?
Splunk can be installed as any user If you do not install as root, remember The Splunk account must be able to access the data sources /var/log is not typically open to non-root accounts Non-root accounts cannot access ports < 1024, so don’t use them when you configure data sources Make sure the Splunk account can access scripts used for inputs and alerts

15 Windows: local or domain user?
2 choices in Windows: local user OR domain account Local user will have full access ONLY to the local system You must use a domain account for Splunk if you want to: Read Event Logs remotely Collect performance counters remotely Read network shares for log files Enumerate the Active Directory schema using Active Directory Monitoring See the docs for details

16 Splunk subdirectories
Executables are located in $SPLUNK_HOME/bin License and other important files are in $SPLUNK_HOME/etc Indexes by default are in $SPLUNK_HOME/var/lib/splunk Same directories in Windows, just different slashes

17 Splunk directory structure
$SPLUNK_HOME bin etc var licenses, configs executables lib system apps users splunk indexes search launcher <custom app>

18 Windows: Starting Splunk
Upon successful installation, you can choose to add Splunk to the start menu Tell students that Windows installer automatically starts Splunk at the end of install.

19 Windows: controlling Splunk services
Splunk installs 2 services splunkd and Splunk Web Start and stop them as you would any service Both are set to startup automatically You can also control Splunk from the command line C:\Program Files\Splunk\bin>splunk start C:\Program Files\Splunk\bin>splunk stop C:\Program Files\Splunk\bin>splunk restart

20 UNIX: Starting Splunk The command for using/managing Splunk is $SPLUNK_HOME/bin/splunk The first time you start Splunk, avoid the prompt to accept the license by using the command line tag --accept-license # pwd /opt/splunk/bin # ./splunk start Be sure to mention the two dashes in accept license. Also mention that it’s useful for scripted installs # pwd /opt/splunk/bin # ./splunk start --accept-license

21 UNIX: controlling Splunk processes
Stopping/starting Splunk Restarting Splunk Is Splunk running? # ./splunk start # ./splunk stop # ./splunk restart # ./splunk status or # ps –ef | grep splunk

22 UNIX: run Splunk at boot
Splunk comes with a command to enable it to start at boot This modifies or adds a script to /etc/init.d that will automatically start Splunk when the OS starts Even if you didn’t install Splunk as root, this command must be run as root # ./splunk enable boot-start Whether the script adds or modifies a script to /etc/init.d depends on your OS.

23 Splunk processes – splunkd
Accesses, processes, and indexes incoming data Handles all search requests and returns results Runs a web server on port 8089 by default Speaks SSL by default Runs Splunk helpers run as dependent process(es) of splunkd Splunk helpers run outside scripts, for example: Scripted inputs Cold to frozen scripts

24 Splunk processes – Splunk Web
Python based web server based on CherryPy Provides both search and management web front end for splunkd Runs on port 8000 by default Sets initial login to user: admin password: changeme

25 Apps Apps are configurations of a Splunk environment designed to meet a specific business need Manage a specific technology Splunk for Websphere Splunk for Cisco and many more . . . Manage a specific OS Splunk for Windows Splunk for UNIX/LINUX Manage compliance PCI Enterprise Security Suite

26 splunkbase Choose from hundreds of apps on splunkbase.splunk.com
Apps developed by Splunk as well as the community are available Vast majority of apps are free, so don’t be shy! Mention that only 2 apps (ESS and PCI) cost money at this time

27 Managing a Splunk installation
Three ways to manage a Splunk installation Command Line Interface (CLI) Directly editing config files Splunk Manager interface in Splunk Web

28 Managing a Splunk installation - CLI
Command Line Interface (CLI) Shell access to Splunk server and user access to Splunk directory required Most commands require authentication and admin role to run If you don’t provide inline authentication credentials, Splunk will ask you ./splunk clean eventdata main -auth admin:myadminpass command object authentication (inline)

29 Command line interface (CLI)
Also requires authentication Enter auth as part of command or wait for prompt Inline help is available #./splunk add monitor /var/log –host www1 Splunk username: admin Password: #./splunk help Welcome to Splunk's Command Line Interface (CLI). Try typing these commands for more help: help simple, cheatsheet display a list of common commands with syntax help commands display a full list of CLI commands help [command] type a command name to access its help page

30 Managing a Splunk installation – config files
Directly editing config files Shell/console access to Splunk server and sufficient user rights to edit files in the Splunk directory Config files must be saved in UTF8, be sure to use the right form for non-UTF8 OS Changes made this way more often require a restart

31 Direct editing of config files
Changes done this way sometimes require a restart or reload of Splunk You can let the students know that for the most part there is no easy command to have Splunk reload its configs. |extract reload=T done in SplunkWeb will get Splunk to reload props and transforms but that’s it.

32 Managing a Splunk installation - Manager
Splunk Manager interface in Splunk Web Access to Splunk Web Admin role on the Splunk server Access from the main navigation – Manager link

33 Splunk Manager – general settings

34 Splunk Manager – general settings (cont.)
/opt/splunk

35 Splunk Manager – general settings (cont.)

36 Splunk Manager – general settings (cont.)
Click Save when you are done All changes to general settings will require a restart

37 More Resources Look on Splunkbase for additional Apps to help you manage your Splunk servers There is a Troubleshooting section in the Splunk Admin manual

38 Lab 1

39 Section 2: Configuring Data Inputs

40 Section objectives Set up data inputs
List Splunk’s data input types and explain how they differ Set input properties such as host, ports, index, source type, etc.

41 Specifying data inputs
There are a number of ways you can specify a data input: Apps Preconfigured inputs for various types of data sources available on splunkbase Splunk Web You can configure most inputs using the Splunk Web data input pages CLI You can use the CLI (command line interface) to configure most types of inputs inputs.conf When you use Splunk Web or CLI, configurations are saved to inputs.conf You can edit that file directly to handle advanced data requirements

42 Types of inputs Files and directories – monitor physical files on disk
Network inputs – monitor network data feeds on specific ports Scripted inputs – import from non-traditional sources, APIs, databases, etc. Windows inputs – Windows specific: Windows event logs, performance monitoring, AD monitoring, and local registry monitoring File system change monitoring – monitor the state: permissions, read only, last changed, etc. of key config or security files

43 Setting up new inputs – Apps / Add-ons
configure input through app setup process

44 Setting up new inputs – Manager
Admin role and access to SplunkWeb Changes written to inputs.conf Location of inputs.conf is determined by app context

45 Setting up new inputs – CLI
Admin role and shell/console access to Splunk server required* Useful for administering forwarders Location of inputs added via the CLI is the Search app **Using the -uri flag you can send remote CLI commands from a local Splunk instance to a remote instance without shell access. See the docs for details. #./splunk add monitor /var/log –hostname www1 –index webfarm Your session is invalid. Please login. Password: Added monitor of ‘/var/log’

46 Setting up new inputs – inputs.conf
Skip the middleman of Manager or the CLI and directly edit inputs.conf Shell/console access to Splunk server required Changes made this way require a restart [default] host = mysplunkserver.mycompany.com [monitor:///opt/secure] disabled = false followTail = 0 host_segment = 3 index = default sourcetype = linux_secure [monitor:///opt/tradelog] disabled = false sourcetype = trade_entries On our classroom Linux servers, students can use either vi or nano to edit the files

47 inputs.conf (cont.) Input path specifications in inputs.conf (monitor stanzas) use Splunk- defined wildcards (also used by props.conf, discussed in next section) (these are not REGEX-compliant expressions) Wildcard Description Regex equivalent Example(s) ... The ellipsis wildcard recurses through directories and subdirectories to match. .* /var/log/…/apache.log matches the files /var/log/www1/apache.log, /var/log/www2/apache.log, etc. * The asterisk wildcard matches anything in that specific directory path segment. Note: must be used in the last segment of the path. [^/]* /logs/*.log matches all files with the .log extension, such as /logs/apache.log. It does not match /logs/apache.txt.

48 inputs.conf (cont.) Syntax details:
So . . . matches any character(s) recursively * matches anything 0 or more times except the / . is NOT a wildcard and simply matches the . Literally Syntax details: $SPLUNK_HOME/etc/system/README/inputs.conf.spec pathswithwildcard

49 Setting source, sourcetype, and host
You can specify source, sourcetype, and host at the input level for most inputs Source Should be left to the default Sourcetype Most default processing for standard data types is based on sourcetype Whenever possible use automatic sourcetype, select from Splunk’s list, or use the recipes Host Opt for specific hostnames/FQDN as much as possible since the host field is a key search tool Be sure to tell students that what’s on this slide might not make a lot of sense now, but it will once they’ve completed the next section.

50 Data inputs – monitor Monitor – eats data from specified file(s) or directory(ies) Where Can be pointed to an individual file or the top of a complex directory hierarchy Recurses through specified directory Indexes any directory the Splunk server can reach, local or remote file systems How Unzips compressed files automatically before indexing them Eats new data as it arrives Automatically detects and handles log rotation “Remembers” where it was in a file and picks up from that spot after restart

51 Data inputs – monitor (cont.)
What Uses whitelists and blacklists to include or exclude files and directories Can be instructed to start only at the end of a large file (like tail –f) Can automatically assigns a source type to events, even in directories containing multiple log files from different systems, processes, etc.

52 Monitor via Manager (called Files & Directories)
add new input edit existing input

53 Monitor file or directory – Manager

54 Monitor file or directory – Manager: Source
Specify a file or directory for ongoing monitoring Can also upload a copy of a file Useful for testing and development

55 Monitor a file or directory – Manager: Host
Specify a constant value if all monitored files in an input are from the same host

56 Monitor a file or directory – Manager: Host
When multiple hosts write to the same directory and the host name appears in the file name or part of the path, use REGEX on path to extract the host name /var/log/www1.log will extract www1 /var/log/www_db1.log will extract www_db1

57 Monitor a file or directory – Manager: Host
When multiple hosts write to the same directory and host name appears as a consistent subdirectory in the path, use segment in path /logs/www1/web.log or /logs/www2/web.log

58 Monitor a file or directory – Manager: Sourcetype
Automatic Splunk automatically determines source type for most major data types Useful for directories with many different types of log files Manual Enter a name for a specific sourcetype From list Choose the sourectype from the dropdown list

59 Monitor a file or directory – Manager: Index
Select the index where this monitor input will be stored If you want to put a new input in a new index, you must create the index before the input

60 Monitor a file or directory – Manager: Follow tail
Follow tail works like “tail -f” – it starts at the end of the file and only eats new input from that point forward Only applies to the very first time the new monitor input is added

61 Monitor a file or directory – Manager: Whitelist
If a file is whitelisted, Splunk consumes it and ignores all other files in the set Use whitelist rules to tell Splunk which files to consume when monitoring directories This whitelist will only index files that end in .log Use a | to create OR statements: indexes files that end in query.log or my.log Add a leading slash to insure an exact file match: only indexes query.log and my.log

62 Monitor a file or directory – Manager: Blacklist
If a file is blacklisted, Splunk ignores it and consumes all other files in the set Use blacklist rules to tell Splunk which files not to consume when monitoring directories This blacklist won't index files that end in .txt Use a | and () to create OR statements: won't index files that end in .txt or .gz This blacklist avoids both archive and historical directories (as well as files named archive and historical)

63 Scripted inputs Splunk can run scripts periodically that generate input Scripts need to be shell (.sh) on *nix or batch (.bat) on Windows Or Python on any platform Can use any scripting language the OS will run if wrapped in a shell or batch “wrapper” Splunk eats the standard output (stdout) of the script Use them to run diagnostic commands such as top, netstat, vmstat, ps, etc. Used in conjunction with many Splunk Apps to gather specialized information from the OS or other systems running on the server Also good for gathering data from APIs, message queues, or other custom connections

64 Setting up a scripted input
Write or obtain the script Copy it to your Splunk server’s script directory If possible, test your script from that directory to make sure it runs correctly Set up input in Manager Click save and wait for a few intervals to pass, then verify that the input is available in Search or its App

65 Manager – Scripted inputs

66 Manager – Scripted inputs (cont.)
Splunk will only run scripts from specified bin directories $SPLUNK_HOME/etc/system/bin OR $SPLUNK_HOME/etc/app/<app_name>/bin Interval is in seconds, though you can also specify a schedule using CRON syntax The interval is the time period between script executions Instructor note: source and sourcetype for scripted intputs aren’t all that sensitive with regards to processing. Since the vast majority of scripted inputs are customer customized there is little default processing tied to them. Tell students to set the sourcetype and source to meet their own identification needs.

67 Manager – Network inputs

68 Manager – Network inputs: Source port
TCP or UDP feeds from 3rd party systems (not Splunk Forwarders) Splunk can be configured to “listen” to a specified UDP or TCP data feed and index the data Can be set to accept feeds from any host or just one host on that port Can specify any non-used network port (that is NOT splunkd’s or Splunk Web’s ports)

69 Manager – Network inputs: source and sourcetype
By default Splunk will set the source to be host:port a syslog feed from a firewall named “fw_01” would have fw_01:514 for its source Only two options for sourcetype, from list or manual If there are multiple sourctypes coming from a single network feed you will need to configure further processing to handle it (Covered in the next section)

70 Manager – Network inputs: Host
Three choices for host: IP – Splunk will use the IP address of the sender (default) DNS – Splunk will do a reverse DNS lookup for the host name Custom – allows you to specify a specific host name

71 File system change monitoring
FSChange (must be setup in inputs.conf) monitors changes to files and directories DOES NOT index the contents of the files and directories Writes an event to an index when it detects a change or deletion Monitors: Modification date/time group ID user ID file mode (read/write attributes, etc.) optional SHA256 hash of file contents

72 Setting up fsmonitor Set up a stanza in inputs.conf
List the directory you want Splunk to monitor DO NOT use file system change monitoring on a directory that is being indexed using Monitor Default sourcetype = fs_notification pollPeriod is interval in seconds Splunk checks the files for changes [fschange:/etc/] pollPeriod = 60 host = splunkserver.company.com

73 Windows inputs Windows inputs must be set up on a Windows Splunk instance UNIX indexers CAN and will index and search Windows inputs Set up a Universal Forwarder or Light Forwarder to get Windows inputs to a UNIX indexer

74 Windows inputs – Local or remote event logs
Local event logs can be collected from a Universal Forwarder or the local indexer Remote event log collection requires proper domain account permissions on the remote machine

75 Windows inputs – local event logs
Select the event logs you wish Splunk to index For further settings, edit inputs.conf directly

76 Windows inputs – remote event logs
Enter a host to choose logs Click Find logs… to populate the available logs list Optionally, you can collect the same set of logs from additional hosts Enter host names or IP addresses, separated by commas

77 Windows event log settings in inputs.conf
start_from - Use this setting to tell Splunk to start with the newest events and then work its way back to the oldest – default is oldest current_only - If set to 1, Splunk will only index events starting from the day the input was set up and going forward – default is 0

78 Windows inputs – Performance monitor
Use Performance Monitor to collect data from a local machine – Forwarder or Indexer

79 Windows inputs – Performance monitor (cont.)
Select an object to monitor Based on the object you select, the Counters section is populated with available counters

80 Windows inputs – Performance monitor (cont.)
Select instances Set the polling interval

81 Windows inputs – Registry monitoring
Indexes the registry whole cloth, as well as any ongoing changes See the docs for details on limiting what is actually monitored mentation/latest/Admin/Monit orWindowsregistrydata

82 Windows inputs: AD monitoring
You can specify a domain controller or let Splunk discover the nearest one You can then specify the highest node in the tree you want Splunk to monitor Splunk will move down the tree recursively If unchecked will index the entire tree, including the schema Use permissions of the Splunk users to limit what it can monitor in AD

83 Windows inputs – Windows app
Installing the Windows app allows you to collect and monitor several common windows input types

84 Lab 2 – Data inputs

85 Section 3: Modifying Data Inputs

86 Section objectives Describe how data moves from input to index
Understand the default processing that occurs during indexing List the config files that govern data processing Learn how to override default data processing Learn how to discard unwanted events Learn how mask sensitive data Learn how to extract fields

87 Input to Index Big Picture
Network inputs Windows inputs Disk Monitor inputs Scripted inputs

88 Indexing phases License Meter Input Phase:
Raw data from all forms of input collected Parsing Phase: Raw data broken down into events, and then event by event processing Indexing Phase: Index generated and data is written to disk License Meter

89 Inputs phase details Inputs phase works with entire streams of data, not individual events. Overarching metadata is applied. inputs.conf source, sourcetype, and host props.conf CHARSET and sourcetyping based on source windows files wmi.conf and regmon-filters.conf Inputs.conf has other settings like index= as well, but they don’t come in to play at this stage. 2 other props.conf settings which are beyond the scope of this class are CHECK_METHOD and NO_BINARY See: for details

90 props.conf props.conf is a config file that plays a role in all aspects of Splunk data processing Governs most aspects of data processing, can also invoke settings in other config files Uses similar “stanza” format of inputs.conf and other Splunk config files See $SPLUNK_HOME\etc\system\README\props.conf.spec and props.conf.example for syntax and examples

91 props.conf specifications
props.conf stanzas use specifications to map configurations to data streams The specification can be either host, source, or sourcetype source and sourcetype specs are case sensitive, host is NOT Pattern Example The host field is case insensitive to be more in line with DNS. You can make it case sensitive by adding the REGEX (?-i) [host::<hostname>] attribute = value [source::<source>] [<sourcetype>] [host::www1] TZ = US/Pacific [source::/var/log/trade.log] sourcetype = trade_entries [syslog] TRANSFORMS-host=per_event_host

92 Inputs phase props.conf
sourcetype can be set based on source during the inputs phase CHARSET spec can be set at this time. Default is automatic, use this setting to override if auto is not working correctly. See docs for list of character sets [source::/var/log/custom*] sourcetype = mycustomsourcetype [source::...\\web\\iis*] sourcetype = iis_access [source::.../seoul/*] CHARSET = EUC-KR [source::h:\\web\\თბილისი\\*] CHARSET = Georgian-Academy

93 Parsing phase big picture
Data from inputs phase are broken up into individual events, and then any event-level processing is performed. “Chunks” of data from inputs phase Broken into individual events. Event-by-event processing

94 Parsing phase details A majority of data processing work is done during the parsing phase Actual event boundaries are decided, date/timestamp are extracted and any type of per-event operation is performed automatic auto-sourcetyping, auto-date/timestamping, and auto-linebreaking, time zone override per-event REGEX based sourcetype, host, or index settings, custom line breaking and date/timestamping custom REGEX/SEDCMD rewrites, per-event routing to other indexers, 3rd party systems, or the “null queue”

95 Parsing phase: automatic
Switches data to UTF-8 By default Splunk will attempt to automatically detect event boundaries (monitor and network inputs) extract date/timestamps (monitor and network inputs) assign sourcetypes (for monitor input only) Default settings are in $SPLUNK_HOME/etc/system/default/props.conf in the parsing phase props.conf can call stanzas in another config file transforms.conf located in the same directory

96 It’s automatic . . . Success rate of automatic processing will vary. For standard data types such as syslog, web logs, etc., Splunk does a great job. For custom, or esoteric logs you’ll need to test, though even then the odds are good it will get it right. Correct date/timestamping and linebreaking are key to subsequent processing and the ultimate “searchability” of data Other types of automatic processing Window inputs syslog host extraction cessing

97 Line breaking If automatic event boundary detection is not working correctly Bad event breaking is usually easy to detect in indexed test data, but be careful since bad line breaking can show up as bad timestamping 2 methods SHOULD_LINEMERGE = false (most efficient) Using this method Splunk cuts the data stream directly into finished events using either the new line \n or carriage return \r characters (default) or a REGEX you specify with LINE_BREAKER SHOULD_LINEMERGE = true Splunk uses a configurable two-step process to split your data into individual events

98 SHOULD_LINEMERGE = false
Already set for many standard types of data including syslog (including snare), windows inputs, and web data See $SPLUNK_HOME/system or apps/<app_name>/default/props.conf for details Should be set for custom data with one event per line formats breaking on /n or /r characters Or if possible use other pattern breakers, but be ready to sacrifice the characters that make up the pattern from your raw data The characters that make up the pattern match aren’t kept as part of the events

99 SHOULD_LINEMERGE = true
The default if not specified Splunk merges multiple lines of data into single events based on the rule, new line with a date at the start or 256 total lines marks an event boundary BREAK_ONLY_BEFORE_DATE = true (the default) MAX_EVENTS = 256 (default) Certain predefined data types like log4j and other application server logs use BREAK_ONLY_BEFORE = <REGEX pattern> that when matching the start of a new line, marks the start of a new event

100 Custom line merge If your multiline data and default processing don’t get along – beyond the BREAK_ONLY_BEFORE setting there are many more REGEX based settings to divide up your events for details see also $SPLUNK_HOME/etc/system/README/props.conf.spec or

101 Date/timestamp extraction
Like event boundaries, correct date/timestamp extraction is key to Splunking your data Verify timestamping when setting up new data types Pay close attention to time stamping during testing/staging of custom/or non- standard data types Convert UNIX time or other non-human readable time stamps and compare Well tuned for standard data types See props.conf in $DEFAULT and ecognition for details

102 Custom date/timestamp – props.conf
TIME_PREFIX = <REGEX> which matches characters right BEFORE the date/timestamp Use this for events with multiple timestamps to pinpoint the correct one or with events that have data that looks like a timestamp but isn’t that confuses the processor Example data with “date-like” code at the start of the line 1989/12/31 16:00:00 ed May 23 15:40: ERROR UserManager - Exception thrown Start looking here for date/timestamp [my_custom_source_or_sourcetype] TIME_PREFIX = \d{4}/\d{2}/\d{2} \d{2}:\d{2}:\d{2} \w+\s

103 Custom date/timestamp – props.conf (con’t)
MAX_TIMESTAMP_LOOKAHEAD = <integer> specifying how many characters to look beyond the start of the line for a timestamp works in conjunction with TIME_PREFIX if set, in which case it starts counting from the point the TIME_PREFIX indicates Splunk should start looking for the date/timestamp Improves efficiency of timestamp extraction As with multiline event configs, see $SPLUNK_HOME\etc\system\README\props.conf.spec and the docs for even more options if necessary mps

104 Time zones Splunk follows these default rules when it attaches a time zone to a time stamp It looks in the raw event data for a time zone indicator such as GMT+8 or PST and uses that It looks in props.conf to see if a TZ attribute has been given for this data stream based on standard settings referenced here: en.wikipedia.org/wiki/List_of_zoneinfo_timezones If all else fails it will apply the time zone of the indexer [host::nyc*] TZ = America/New York [source::/mnt/cn_east/*] TZ = Asia/Shanghai

105 Time and Splunking Splunk depends heavily on existing time infrastructure Timestamps in Splunk are only as good as the time settings on servers and devices that feed into Splunk A good enterprise time infrastructure makes for good timestamping which makes for good Splunking

106 Per event REGEX changes
Splunk can modify data in individual events based on REGEX pattern matches Requires invoking a second file, transforms.conf (see next slide) Using props.conf and transforms.conf you can disable/modify existing modifications, or add your own custom settings

107 transforms.conf Config file whose stanzas are invoked by props.conf
All caps TRANSFORMS = <transforms.conf_stanza> syntax used to invoke index time changes Required for all REGEX pattern match processing Resides in the same directory(ies) as props.conf Can also be called at search time by REPORT, LOOKUP (search time section coming up) $SPLUNK_HOME/etc/system/default/transforms.conf [syslog-host] DEST_KEY = MetaData:Host REGEX = :\d\d\s+(?:\d+\s+|(?:user|daemon|local.?)\.\w+\s+)*\[?(\w[\w\.\-]{2,})\]?\s FORMAT = host::$1 $SPLUNK_HOME/etc/system/default/props.conf [syslog] TRANSFORMS = syslog-host

108 transforms.conf (cont.)
Transforms uses standard settings to indicate what its REGEX will match and what it will rewrite based on the match The source and destination of these tranformations are referred to as “keys” SOURCE_KEY tells Splunk where to apply the REGEX (optional) DEST_KEY tells Splunk where to apply the data modified by the REGEX and FORMAT setting (required) REGEX is the regular expression and capture groups (if any) that operate on the SOURCE_KEY (required) FORMAT controls how REGEX writes the DEST_KEY (required)

109 Keys in action From the default syslog host extraction [syslog-host]
We are updating the host field, so our DEST_KEY is MetaData:Host, for sourcetype it would be MetaData:Sourcetype, for index it would be_MetaData:Index (Case and for index the underscore counts!) See transforms.conf.spec for details. [syslog-host] DEST_KEY = MetaData:Host REGEX = :\d\d\s+(?:\d+\s+|(?:user|daemon|local.?)\.\w+\s+)*\[?(\w[\w\.\-]{2,})\]?\s FORMAT = host::$1 The REGEX pattern here is looking for a host name embedded in syslog data. Only one capture group is referenced here: the 2nd set of parenthesis. In this circumstance we would expect the host name to appear within the 2nd set of parenthesis. FORMAT specifies what is written out to the DEST_KEY. Here host::$1 means host=1st REGEX capture group.

110 Setting sourcetype per event
You can configure Splunk to set sourcetype on a per event basis This should be your sourcetypeing of “last resort” since inputs.conf settings and source based sourcetyping using just props.conf are less resource intensive In props.conf In transforms.conf A value after TRANSFORMS give this transformation a name space, this comes into play for multiple transformations and provides precedence if needed [source::udp:514] TRANSFORMS-1srct = custom_sourcetyper Any event from this source where the last word of the line is “Custom” will get the sourcetype of “custom_log” [custom_sourcetyper] DEST_KEY = MetaData:Sourcetype REGEX = .*Custom$ FORMAT = sourcetype::custom_log

111 Per event index routing
Like sourcetype, if at all possible specify the index for your inputs in inputs.conf props.conf transforms.conf Note the use of _MetaData:Index [routed_sourcetype] TRANSFORMS-1indx = custom_sourcetype_index We’re using a wide open REGEX since we want everything classified as this sourcetype routed to a different index. More granular routing would have a more complex REGEX [custom_sourcetype_index] DEST_KEY = _MetaData:Index REGEX = . FORMAT = custom_index For index routing, the FORMAT simply takes the name of the index you are routing to

112 Filtering unwanted events
You can route specific unwanted events to the “null queue” Events discarded at this point do NOT count against your daily license quota props.conf transforms.conf Here our DEST_KEY is queue since we’re routing these events outside the data flow [WinEventLog:System] TRANSFORMS-1trash = null_queue_filter Be sure to mention that whitelisting and blacklisting in inputs.conf is a better way to do this if possible. Since Windows Event logs are multiline events we need to use the REGEX multiline indicator (?m). Applies to any multiline event and REGEX, not just null queue [null_queue_filter] DEST_KEY = queue REGEX = (?m)^EventCode=(592|593) FORMAT = nullQueue FORMAT indicating nullQueue means we are throwing away events that match this pattern

113 Other routing Beyond routing to the nullQueue, you can also route data to: other Splunk indexers 3rd party systems See for details

114 Modifying the raw data stream
Sometimes it’s necessary to modify the underlying log data, especially in the case of privacy concerns Splunk provides 2 methods of doing this, REGEX and SEDCMD The REGEX method uses transforms.conf and works on a per-event level, the SEDCMD uses only props.conf and operates on an entire source, sourcetype, or host identified stream Care should be taken when modifying _raw since unlike all other modifications discussed, this sort actually modifies the raw log data

115 DEST_KEY = _raw indicates we are modifying the actual log data
Modifying _raw - REGEX Works similarly to previous props.conf / transforms.conf modifications props.conf transforms.conf [source::...\\store\\purchases.log] TRANSFORMS-1ccnum = cc_num_anon DEST_KEY = _raw indicates we are modifying the actual log data [cc_num_anon] DEST_KEY = _raw REGEX = (.*CC_Num:/s)\d{12}(\d{4}.*) FORMAT = $1xxxxxxxxxxxx$2 $1 preserves all the data prior to the first 12 digits of the credit card number. $2 grabs everything after including the last 4 digits, we need to do this since we are “rewriting” the raw data feed

116 Modifying _raw – SEDCMD
Splunk leverages a “sed-like” syntax for simplified data modifications Note that while sed is traditionally a UNIX command, this functionality works on Windows- based Splunk installs as well It’s all done with a single stanza in props.conf The REGEX syntax using “s”: SEDCMD-<name> = s/<REGEX>/<replacement>/flags flags are either “g” to replace all matches, or a number to just replace that number of matches The string match syntax using “y”: SEDCMD-<name> = y/<string1>/<string2> String matches cannot be limited, all matches will be replaced String1 will be replaced with string2

117 \1 here works like a $1 back-reference in transforms.conf REGEX
SEDCMD con’t An example SEDCMD REGEX based replacement to overwrite the first 5 digits of an account number anytime it appears in the “accounts.log” source This will replace id_num= with id_num=xxxxx You can put multiple replacement rules in a single props.conf stanza, simply put a space and start again with s/ \1 here works like a $1 back-reference in transforms.conf REGEX [source::.../accounts.log] SEDCMD-1accn = s/id_num=\d{5}(\d{5})/id_num=xxxxx\1/g

118 Parsing phase: override
Splunk’s automatic processing can be overridden/disabled Make your changes to files in $SPLUNK_HOME/etc/system/local or $SPLUNK_HOME/etc/<app_name>/local To disable create/edit props.conf in $SPLUNK_HOME/etc/system/local or local directory of an app Turn off syslog host extraction for the “syslog” sourcetype $SPLUNK_HOME/etc/system/local/props.conf $SPLUNK_HOME/etc/system/default/props.conf overwrites [syslog] TRANSFORMS = [syslog] TRANSFORMS = syslog-host

119 Indexing phase details
After the parsing phase Splunk passes the fully processed data off to the index processor license meter _raw is metered for license usage index created Keyword index created, _raw is compressed and both are written to disk Disk

120 Persisted to disk Once data reaches hard disk all modifications and extractions are written to disk along with _raw source, sourcetype, host, timestamp, and punct Indexed data cannot be changed Modifications to processing won’t be retroactive without reindexing For this reason it’s recommended to test default and custom index time processing on a staging instance prior to indexing in production

121 Search phase – Big picture
Searches from users or alerts Search time modifications Disk

122 Search phase – Big picture RT search
Real time searches work similarly except they bypass disk Real time searches from users or alerts Search time modifications Index phase Disk

123 Search time modifications
MANY different transformations/updates/modifications are available at search time Data (usually sourcetype) dependent field extractions both custom, default, or from add-ons or apps Lookups, event types, tags, field aliases, and many more . . . These changes only apply to search results, no modification to data written to disk Fully retroactive – designed to be flexible Best way to customize data and build institutional knowledge into Splunk

124 Search time for admins Splunk expands the ability to create most search time mods to the Power and User roles Most are covered in more user/knowledge manager oriented classes Most can be fully administered through Splunk Web’s manager Admins may be called on to install apps and add ons (already covered) Remember, apps/add ons are bundles of search time lookups, field extractions, tags, etc. NOT just views and dashboards Create custom field extractions and change/disable search time modifications using the file system

125 Default field extractions at search time
Most fields used in Splunk come from your data For many common sourcetypes Splunk has default search time field extractions in place Additional default extractions are easy to add with Add Ons and Apps The *Nix app for example has many search time fields for standard UNIX-y logs like secure.log or messages.log, etc. The Windows app has similar defaults for Windows data For non-OS data, look for an app specifically designed for that data on

126 3 ways to create a search time field
Editing config files - available only to admins, knowledge of REGEX required Using the IFX in Splunk Web (covered in Using) - available to admin and power role, knowledge of REGEX helpful but not required Using the rex command in the search language (covered in Search & Reporting) - all roles can use this command, knowledge of REGEX required

127 The usual suspects Custom search time fields are created by stanzas in props.conf and sometimes transforms.com 2 methods 1. using just props.conf EXTRACT Simple single field extractions Available after Splunk 4.0 Recommended method covered here 2. using props.conf REPORTS and transforms.conf Useful for reusing extractions across multiple sourcetypes timefieldextractionsthroughconfigurationfiles for details

128 props.conf EXTRACT A single stanza in props.conf using EXTRACT with a source, sourcetype, or host spec (usually a sourcetype) Use the EXTRACT command with a name and the REGEX after the equals sign props.conf [tradelog] EXTRACT-1type = .*type:\s(?<acct_type>personal|business) Wrap parenthesis around your field value to created a named capture, and then embed your field name within those parenthesis with ?<field_name>

129 Other search time processing
Many other knowledge objects/search time processing are stored in other config files macros.conf, tags.conf, eventtypes.conf, savedsearches.conf, etc. When users create or modify these Splunk Web simply writes to these files for them Admins can directly modify these files, though we recommend using Manager if possible See .conf files in $SPLUNK_HOME/etc/system/README and the docs for details on specific files

130 Lab 3

131 Section 4: Config Precedence

132 Config files and precedence
UI or CLI changes also update config files Splunk gathers up all of the various config files and combines them at index and search time based on rules of precedence Rules of precedence vary depending on if configurations are being applied at search time or index time Index time precedence relies solely on the location of the files Search time precedence also takes into account which user is logged- in and which app they are using

133 Index time precedence At index time, Splunk applies precedence in the following order $SPLUNK_HOME/etc/system/local $SPLUNK_HOME/etc/apps/<app_name>/local** $SPLUNK_HOME/etc/apps/<app_name>/default $SPLUNK_HOME/etc/system/default **Note that within the $SPLUNK_HOME/etc/apps directory individual apps get precedence based on ASCII alphabetical order. So an app called “aardvark” would have precedence over the “windows” app. But an app called “1windows” would have precedence over “aardvark” since numbers come before letters in ASCII. Also note that ASCII order is not numerical order, so 1 would come before 2, but 10 would also come before 2!

134 Index time precedence 2 and 3 in ASCII order by app name $SPLUNK_HOME
etc system apps users 6 1 unix search local joe mary default admin unix search 5 3 4 2 default local default local local local 2 and 3 in ASCII order by app name

135 Search time precedence
Search time has the following precedence order $SPLUNK_HOME/etc/users/<username>/<app_context>/local** $SPLUNK_HOME/etc/apps/<app_context>/local and default** $SPLUNK_HOME/etc/system/local $SPLUNK_HOME/etc/apps/<app_by_ASCII>/local*** $SPLUNK_HOME/etc/apps/<app_by_ASCII>/default $SPLUNK_HOME/etc/system/default ** app_context is the app the user is currently in/using and username refers to the actual user name the user logged in as ***app_by_ASCII refers to the ASCII order referred to in the previous slide

136 Search time precedence
Example: mary working in the unix app context $SPLUNK_HOME etc system apps users 7 4 unix search joe mary default local admin unix search 3 2 6 5 default local default local 1 local local After 3, the earlier pattern applies

137 Precedence is cumulative
At index time if $SPLUNK_HOME/etc/system/local/props.conf contained this stanza [source::/opt/tradelog/trade.log] sourcetype = tradelog And if $SPLUNK_HOME/etc/apps/tradeapp/local/props.conf contained SHOULD_LINEMERGE = True BREAK_ONLY_BEFORE = TradeID Becomes Be sure to note that this applies both at index and search time.

138 However At index time if $SPLUNK_HOME/etc/system/local/props.conf contained the following stanza [source::/opt/tradelog/trade.log] sourcetype = tradelog And if $SPLUNK_HOME/etc/apps/tradeapp/local/props.conf contained sourcetype=log_of_trade SHOULD_LINEMERGE = True BREAK_ONLY_BEFORE = TradeID Becomes:

139 Section 5: Splunk’s Data Store

140 Section Objectives Learn index directory structure
Answer the question: “What are buckets?” and describe how they move from hot to cold Describe how to configure aging and retention times Show how to set up indexes Learn how to set up volumes on hard disk Describe back up strategies Show how to clean out an entire index or selectively delete data

141 Splunk’s default indexes
Splunk ships with several indexes already set up main – the default index, all inputs go here by default (called defaultdb in the file system) summary – default index for summary indexing system _internal – Splunk indexes its own logs and metrics from its processing here _audit – Splunk stores its audit trails and other optional auditing information _thefishbucket – Splunk stores file information for its monitor function

142 Index locations in the file system
$SPLUNK_HOME/var/lib/splunk $SPLUNK_DB defaultdb os _internaldb etc… index=main db colddb thaweddb hot / warm buckets cold buckets unarchived buckets Each index has three subdirectories

143 Index divisions Splunk divides its indexes into 3 sections, plus a special restored from archive section, for fastest searching and indexing Hot – most recently indexed events, multiple buckets, read and write, same directory as warm Warm – next step in the aging process, multiple buckets, read only, same directory as hot Cold – final step in the aging process, multiple buckets, read only, separate directory from warm and hot Thawed – restored from archive data, read only, separate directory from the rest

144 What are buckets? Buckets are logical groupings of indexed data based on time range Starting in the hot section, Splunk divides its indexed data into buckets based on their time range Periodically, Splunk runs the optimize process on the hot section of the index to optimize the placement of events in the buckets Once a hot bucket reaches its size limit, it will be automatically “rolled” into warm Default bucket size is set automatically by Splunk at install based on OS type Once rolled into warm, each individual bucket is placed in a directory with 2 time stamps and an id number as the directory name Splunk uses buckets to limit its searches to the time range specified pulling recent results from hot right away, then those from warm or cold after that

145 Bucket retention times
Hot buckets are segregated by date ranges Will roll from hot to warm once max size is met OR no data has been added to a particular hot bucket in 24 hours Warm by default contains 300 buckets (default) When bucket “301” is created, oldest is rolled into cold Cold will keep a bucket for six years (default) Once the youngest event in a bucket turns 6, it will be moved to “frozen” Buckets in frozen are either archived or deleted (deleted is the default)

146 Configuring and adding indexes
You can configure existing indexes by using the Splunk Web, the CLI, or editing indexes.conf You can add new indexes by Splunk Web, CLI, or editing indexes.conf Certain parameters are only set in indexes.conf

147 Adding or editing indexes with Splunk Web
Max bucket size can be set manually For daily indexing rates higher than 5 GB a day set it to auto_high_volume This will give you 1 GB (32-bit) or 10 GB (64-bit) buckets Set to auto will give you 750 MB buckets for both Adding an index requires restart Be sure to say adding an index always required a restart

148 Set up and edit indexes – indexes.conf
Indexes are controlled by indexes.conf Global settings like default database appear before the specific index stanzas Each index has its own stanza with the name of the index in [ ] defaultDatabase = webfarm [webfarm] homePath = h:\splunk_index\db coldPath = h:\splunk_index\colddb thawedPath = h:\splunk_index\thawdb

149 Set up and edit indexes – indexes.conf (cont)
Some per index settings Change number of buckets in warm Max total data size (in MB) If data grows beyond this number, Splunk will automatically move cold buckets to frozen This setting takes precedence over all other time/retention settings frozenTimePeriodInSecs = time in seconds buckets will stay in cold [webfarm] homePath = h:\splunk_index\db coldPath = h:\splunk_index\colddb thawedPath = h:\splunk_index\thawdb maxWarmDBCount = 150 maxTotalDataSizeMB = frozenTimePeriodInSecs =

150 Cold to frozen Frozen is either archive or oblivion – default is deletion To archive you must define : coldToFrozenPath - location where Splunk automatically archives frozen data Splunk will strip away the index data and only stores the raw data in the frozen location Frozen can be slow inexpensive NAS, tape, etc. Older versions of Splunk used cold to frozen scripts, those are still supported, though if you specify both a coldToFrozenPath and a coldToFrozenScript the path setting will take precedence coldToFrozenScript - script that Splunk runs when data is frozen Note: You can only set one or the other of these attributes. The coldToFrozenPath attribute takes precedence over coldToFrozenScript, if both are set Splunk ships with two example cold-to-frozen scripts in $SPLUNK_HOME/bin compressedExport.sh.example flatfileExport.sh.example

151 Editing index settings in Manager
Navigate to Manager >> Indexes Select the index to view and change the settings

152 Storing cold in a separate location
Warm and hot live in the same directory Cold is separate and can be moved to a different location Specify the new location for cold in indexes.conf or in Manager [webfarm] homePath = h:\splunk_index\db coldPath = \\filer\splunk_cold\colddb thawedPath = h:\splunk_index\thawdb maxWarmDBCount = 150 maxTotalDataSizeMB = frozenTimePeriodInSecs =

153 Storage volumes You can specify locations and maximum size for index partitions using volume stanzas Handy way to group and control multiple indexes Volume size limits apply to all indexes that use the volume Create volumes in indexes.conf Use volumes in index definitions [volume:hotNwarm] path = g:\superRAID maxVolumeDataSizeMB = [volume:cold] path = \\slowNAS\splunk maxVolumeDataSizeMB = [network] maxWarmDBCount = 150 frozenTimePeriodInSecs = homePath = volume:hotNwarm\network coldPath = volume:cold\network Be sure to use subdirectories for your indexes to avoid collisions

154 Moving an entire index To move an index requires 4 steps
Stop Splunk Copy the entire index directory to new location being sure to preserve permissions and all subdirectories – verify copy Edit indexes.conf to indicate the new location Restart Splunk Use cp -rp on UNIX or robocopy on Windows

155 Backups: What to backup
3 main categories Indexed event data Both the actual log data AND the Splunk index $SPLUNK_HOME/var/lib/splunk/ User data Things such as event types, saved searches, etc. $SPLUNK_HOME/etc/users/ Splunk configurations Configuration files updated either by hand or Manager $SPLUNK_HOME/etc/system/local $SPLUNK_HOME/etc/apps/

156 Backups: How Recommended method
Using the incremental backup of your choice backup: Warm and cold sections of your indexes User files Archive or backup configuration files Hot cannot be backed up without stopping Splunk Recommended methods of backing up hot Use the snapshot capability of underlying file system to take a snapshot of hot, then backup the snapshot Schedule multiple daily backups of warm (works best for high data volumes)

157 Rolling hot into warm Why? How
If your indexing rate is low, and as a result your hot doesn’t roll into warm often enough making you worried about losing data in hot between backups How Roll the hot db into warm with a script right before backing up Restarting splunkd also forces a roll from hot to warm Example roll command for the CLI ./splunk _internal call /data/indexes/<index_name>/roll-hot-buckets Be careful about too many forced rolls to warm, too many warm buckets can greatly impact search performance The recommended best practice is to roll hot to warm at most once every 24 hours,

158 Deleting data: who The delete command can be used to permanently remove data form Splunk’s data store By default, even the admin role does not have the ability to run this command It is not recommended to give this ability to the admin role Instead, allow a few users to log in to a role specifically set up for deletions Create a user that’s part of the “Can_delete” role

159 Deleting data: how Log in to Splunk Web as a user of the “Can_delete” role Craft a search that identifies the data you wish to delete Double check that the search ONLY includes the data you wish to delete Pay special attention to which index you are using and the time range Once you’re certain you’ve targeted only the data you want to delete, pipe the search to delete Note that this is a “virtual” delete. Splunk marks the events as deleted and they will never show in searches again, but they will continue to take up space on disk. Say that they are working on a process that will eventually go and “clean up” deleted data.

160 Cleaning out an index Splunk clean all will remove users, saved searches and alerts Other options: clean [eventdata|userdata|all] [-index name] [-f] eventdata - indexed events and metadata on each event userdata - user accounts - requires a Splunk license all - everything on the server If no index is specified, the default is to clean all indexes SO ALWAYS SPECIFY AN INDEX TO AVOID TEARS

161 Restoring a frozen index
To thaw, move a copy of the bucket directory to an index directory ./splunk rebuild <bucket directory> will rebuild the index Will also work to recover a corrupted directory Does not count against license Must shutdown splunkd before running ./splunk rebuild command

162 Section 6: Users, Groups, and Authentication

163 Section Objectives Understand user roles in Splunk
Create a custom role Understand the methods of authentication in Splunk

164 Manage users and roles

165 User roles There are three built-in user roles:
Admin, Power, User (Can Delete is a special case already covered) Administrators can configure custom roles Name the role Specify a default app Define the capabilities for the role Limit the time ranges the role can use Specify both default and accessible indexes New roles available in Splunk Manager “Access controls” option

166 Custom user roles – set restrictions
Give the role a name and select a default app Set restrictions Search terms – restrict searches on certain fields, sources, hosts, etc Time range – default is -1 (no restriction). Set time range in seconds

167 Custom user roles – set limits
Set limits (optional) Limits are per-person

168 Custom user roles – inherit
Custom roles can be based on standard roles Administrators can then add or remove capabilities of the imported role

169 Custom user roles – capabilities
Add or remove capabilities See authorize.conf.spec or min/authorizeconf for details

170 Custom user roles – indexes
You can specify which indexes this role is allowed to search as well as which are searched by default

171 Splunk authentication – users
Specify user name, , and default app

172 Splunk authentication – users (cont.)
Assign a role and set password

173 LDAP authentication Splunk can be configured to work with most LDAP including Active Directory LDAP can be configured from Splunk Manager See the docs for details

174 Scripted Authentication
Leverage existing PAM or RADIUS authentication systems for Splunk For the most up-to-date information on scripted authentication, see the README file in $SPLUNK_HOME/share/splunk/authScriptSamples/ There are also sample authentication scripts in that directory

175 Single Sign On Authentication is moved to a web proxy which passes along authentication to Splunk Web Auth server Proxy authorizes client 2 SSO client Splunk server 1 Splunk request 3 Proxy passes request with user name 5 Proxy returns page 4 Splunk Web returns page to proxy Proxy server

176 Lab

177 Section 7: Forwarding and Receiving

178 Section objectives Understand forwarders Compare forwarder types
Examine topology examples Deploy and configure forwarders

179 Splunk forwarder types
Universal forwarder Streamlined data-gathering “agent” version of Splunk with a separate installer Contains only the essential components needed to forward raw or unparsed data to receivers/indexers Cannot perform content-based routing In most cases, best tool for forwarding data throughput limited to 256kbps Light forwarder Full Splunk in Light forwarder mode (no separate install), otherwise works the same as Universal forwarder “Heavy” forwarder Full Splunk instance – does everything but write data to index Breaks data into events before forwarding Can handle content-based routing Technically it’s just called Forwarder, but we add heavy so not to be confused.

180 Comparing forwarders If you need to… use
Forward unparsed data to a receiver or indexer Universal forwarder Collect data on a forwarder that requires a python-based scripted input Light forwarder Route collected data based on event info or filter data prior to WAN/slower connection Heavy forwarder

181 Forwarder topology: data consolidation
Most common topology Multiple forwarders send data to a central indexer

182 Forwarder topology: load balancing
Distributes data across multiple indexers Forwarder routes data sequentially to different indexers at specified intervals with automatic failover * * Requires distributed search covered later in this section

183 Setting up forwarders – big picture
Enable receiving on your indexer(s) Install forwarders on production systems Configure forwarders to send to receivers Test connection with small amount of test data Setup inputs on forwarders Verify inputs are being received

184 Configure forwarding and receiving - Manager
You can set up basic forwarding and receiving using Manager

185 Set up receiving port – Splunk Web
Specify TCP port you wish Splunk to listen on and click save NOT Splunk Web or splunkd ports

186 Enable Indexer to indexer forwarding/receiving
You can easily forward indexed data from one Splunk server to another Useful for replication across sites or forwarding one type of data to a different indexer

187 Enable forwarding – Splunk Web
Enter either the hostname or IP address with the port of the receiving server If multiple hosts are defined, you can optionally select Automatic Load Balancing Restart required

188 Install universal forwarder: Windows
The Windows version of Universal forwarder includes an Install Shield package that guides you through most of the forwarder’s configuration If the installer detects an earlier version of Splunk Forwarder you can: Automatically perform a migration during installation Fishbucket info is migrated, config files are NOT Install UF in a different location to preserve legacy forwarder

189 Install universal forwarder: Windows (cont.)
If using a deployment server, indicate the hostname or IP and port Deployment server is covered in a later module Indicate the receiving indexer hostname or IP and port Must be listening port of indexer Skip if using deployment server

190 Install universal forwarder: Windows (cont.)
Choose to forward from local or remote If remote, enter domain, username and password for remote host on next screen

191 Install universal forwarder: Windows (cont.)
Enable Windows inputs Event logs Performance monitoring AD monitoring Clicking next begins the installation You can update your universal forwarder's configuration post-install by directly editing its inputs.conf and outputs.conf

192 Install universal forwarder: Windows CLI
Use the CLI installation method when: You want to install the universal forwarder across your enterprise via a deployment tool You do not want the universal forwarder to start immediately after installation Include LAUNCHSPLUNK=0 in the install command You want to clone a system image for cloning that includes a Universal Forwarder

193 Install universal forwarder: Windows CLI (.cont)
Run as Local System user and request configuration from deploymentserver1 For new deployments of the forwarder msiexec.exe /i splunkuniversalforwarder_x86.msi DEPLOYMENT_SERVER="deploymentserver1:8089" AGREETOLICENSE=Yes /quiet Run as a domain user but don’t launch immediately Prepare a sample host for cloning msiexec.exe /i splunkuniversalforwarder_x86.msi LOGON_USERNAME="AD\splunk" LOGON_PASSWORD="splunk123" DEPLOYMENT_SERVER="deploymentserver1:8089" LAUNCHSPLUNK=0 AGREETOLICENSE=Yes /quiet

194 Install universal forwarder: Windows CLI (.cont)
Enable indexing of the Windows security and system event logs – run installer in silent mode Collect just the Security and System event logs through a "fire-and-forget" installation msiexec.exe /i splunkuniversalforwarder_x86.msi RECEIVING_INDEXER="indexer1:9997" WINEVENTLOG_SEC_ENABLE=1 WINEVENTLOG_SYS_ENABLE=1 AGREETOLICENSE=Yes /quiet Migrate from an existing forwarder – run installer in silent mode Migrate now and redefine your inputs later msiexec.exe /i splunkuniversalforwarder_x86.msi RECEIVING_INDEXER="indexer1:9997" MIGRATESPLUNK=1 AGREETOLICENSE=Yes /quiet

195 Install universal forwarder: *nix
Install as you would full Splunk instance, replacing the package name rpm -i splunkuniversalforwarder_package_name.rpm Start Splunk and accept license Configure the following options Auto start: splunk enable boot-start Deployment server: splunk set deploy-poll <host:port> Client without deployment server: splunk enable deploy-client Forward to an indexer: splunk add forward-server <host:port> Configure inputs via inputs.conf

196 Migrate to universal forwarder: *nix
You can migrate checkpoint data from an existing *nix light forwarder (version 4.0 or later) to the universal forwarder Important: Migration can only occur the first time you start the universal forwarder, post- installation. You cannot migrate at any later point Stop all services on the host Install the universal forwarder – do not start In the installation directory, create a file $SPLUNK_HOME/old_splunk.seed that contains a single line with the path of the old forwarder's $SPLUNK_HOME directory Start the universal forwarder Edit / add configurations Migration process only copies checkpoint files – you should manually copy over the old forwarder's inputs.conf

197 Forwarding configurations
inputs.conf on the forwarder gathers the local logs/system info needed You can include input phase settings in props.conf on light forwarders Per-event processing must be done on the indexer outputs.conf points the forwarder to the correct receiver(s) If you set up forwarding in Splunk Manager, it will reside in the app context you were in when you enabled it If creating by hand, best practice is to place it in $SPLUNK_HOME/etc/system/local

198 Outputs.conf – basic example
Main [tcpout] stanza has global settings [tcpout:web_indexers] stanza sets up receiving server Compression is turned on Server setting refers to either the IP or host name plus port of receiver [tcpout] defaultGroup = web_indexers disabled = false [tcpout:web_indexers] server = splunk1.company.com:9997 compressed = true [tcpout-server://splunk1.company.com:9997] Global settings Receiving server

199 Outputs.conf – indexer to indexer clone
Main [tcpout] stanza has global settings such as whether to index a local copy [tcpout:uk_clone] stanza sets up receiving server Compression is turned on Server setting refers to either the IP or host name plus port of receiver [tcpout] IndexAndForward=true [tcpout:uk_clone] Compressed=true Server=uk_splunk.company.com:9997 Global settings Receiving server

200 Outputs.conf – single indexer and SSL
Each forwarder would have a copy of outputs.conf with the following stanza Additionally the forwarders would be sending using SSL using Splunk’s self- signed certificates [tcpout:indexer] server = splunk.company.com:9997 sslPassword = ssl_for_m3 sslCertPath = $SPLUNK_HOME/etc/auth/server.pem sslRootCAPath = $SPLUNK_HOME/etc/auth/cacert.pem

201 Outputs.conf – clone indexers
Set multiple target groups to get forwarders to send exact copies to multiple indexers [tcpout:indexer1] server = splunk1.mycompany.com: [tcpout:indexer2] server = splunk2.mycompany.com:9997

202 Auto load balancing Splunk also offers automatic load balancing, which switches from server to server in a list based on a time interval Two options: static list in outputs.conf (see below) DNS list based on a series of A records for a single host name [tcpout:list_LB] autoLB = true server = splunk1.company.com:9997, splunk2.company.com:9997

203 Auto load balancing DNS list
To set up DNS list load balancing create multiple A records with the same name with the IP address of each indexer [tcpout:DNS_LB] autoLB = true server = splunk1b.mycompany.com:9997 autoLBFrequency = 60 From DNS zone file splunk1 A splunk2 A splunk1b A splunk1b A

204 Caching/queue size in outputs.conf
maxQueueSize = 1000 (default) is the number of events the forwarder will queue if the target group cannot be reached In load-balanced situations, if the forwarder can’t reach one of the indexers, it will automatically switch to another, and will only queue if all are down/unreachable See outputs.conf.spec for details and even more queue settings

205 Indexer Acknowledgement
Guards against loss of data when forwarding to an indexer Forwarder will re-send any data not acknowledged as "received" by the indexer Disabled by default Requires version 4.2 of both forwarder and receiver Can also be used for forwarders sending to an intermediate forwarder

206 Indexer Acknowledgement process
As forwarder sends data, it maintains a copy of each 64k block in memory in the wait queue until it gets an acknowledgment from the indexer While waiting, it continues to send more data blocks The indexer receives a block of data, then parses and writes to disc Once on disc, indexer sends acknowledgment to forwarder Upon acknowledgment, the forwarder releases the block from memory If the wait queue is of sufficient size, it doesn't fill up while waiting for acknowledgments to arrive Wait queue size can be increased (covered in a later slide)

207 What happens when no ack is received?
If the forwarder doesn't get acknowledgment for a block within 300 seconds (by default), it closes the connection Change wait time by setting readTimeout in outputs.conf If auto load balancing is enabled, it opens a connection to the next indexer in the group and sends the data If auto load balancing is not enabled, it tries to open a connection to the same indexer as before and resend the data Data block is kept in the wait queue until acknowledgment is received Once wait queue fills, forwarder stops sending until it receives acknowledgment for one of the blocks, at which point it can free up space in the queue.

208 Handling duplicates If there's a network problem that prevents an acknowledgment from reaching the forwarder, dupes may occur Example: indexer receives a data block then generates the acknowledgment – network goes down before forwarder gets ack. When network comes back up, forwarder resends the data block – indexer parses and writes Forwarders will record events to splunkd.log when it receives duplicate acks or resends due to no response

209 Enabling Indexer Acknowledgement
Enabled on the forwarder Both forwarder and indexer must be at version 4.2 or greater Set useACK to true in outputs.conf [tcpout:<target_group>] server=<server1>, <server2>, ... useACK=true Disabled by default You can set useACK either globally or by target group, at the [tcpout] or [tcpout:<target_group>] stanza levels You cannot set it for individual servers at the [tcpout-server: ...] stanza level

210 Increasing wait queue size
Max wait queue size is 3x the size of the in-memory output queue, which you set with the maxQueueSize attribute in outputs.conf maxQueueSize = [<integer>|<integer>[KB|MB|GB]] Wait queue and the output queues are configured by the same attribute but are separate queues Example: if you set maxQueueSize to 2MB, the maximum wait queue size will be 6MB Specifying a lone integer - maxQueueSize = 100 – sets max events for parsed data and max blocks (~64K) for unparsed data

211 Forwarding to an intermediate forwarder
Two main possibilities to consider: Originating forwarder and intermediate forwarder both have acknowledgment enabled Intermediate forwarder waits until it receives acknowledgment from the indexer and then sends acknowledgment back to the originating forwarder Originating forwarder has acknowledgment enabled - intermediate forwarder does not Intermediate forwarder sends acknowledgment back to the originating forwarder as soon as it sends the data on to the indexer Because it doesn't have useACK enabled, the intermediate forwarder cannot verify delivery of the data to the indexer

212 Lab

213 Section 8: Distributed Environments

214 Objectives List Splunk server types Understand Distributed search
Describe search head pooling Understand Deployment server

215 Types of Splunk server indexer universal forwarders Separate install. Gathers data and forwards to indexer. search head Indexers gather data from inputs and forwarders, process it and write it to disk. Search peer accessed by users. Runs ad-hoc and scheduled searches/alerts. Distributes searches out to all peers and combines results. heavy forwarders Gather or receives data, processes it and then forwards on to indexer.

216 Data lifecycle review Four main phases in the data lifecycle Input
Splunk forwarder or full Splunk Parsing Splunk heavy forwarder or indexer Indexing Indexer Search Search head Collect raw data and send to indexer forwarders Parse data – line breaks, timestamps, index-time field extractions, save to disc and index indexer Pull events from index, search-time field extractions, display events, reports, etc. search head

217 Distributed Environments Overview
The next three sections will introduce you to common topologies and tools used in distributed environments Distributed Search Search across multiple indexes Search Head Pooling Multiple search heads share configuration data Deployment Server Manage multiple, varying Splunk instance configurations from a single server

218 Distributed Search

219 Distributed search overview
Search heads send search requests to multiple indexers and merge the results back to the user In a typical scenario, one Splunk server searches indexes on several other servers Used for Horizontal scaling across multiple indexers used for high volume data scenarios Accessing geo-diverse indexers Access control High availability scenarios

220 Distributed search topology examples
Simple distributed search for horizontal scaling – one search head searching across three peers

221 Distributed search topology examples (cont.)
Access control example – department search head has access to all the indexing search peers Each search peer also has the ability to search its own data Department A search peer has access to both its data and the data of department B

222 Distributed search topology examples (cont.)
Load balancing example – provides high availability access to data

223 Distributed Search setup - Manager
Turn on Distributed search and optionally turn on auto-discovery Allows this Splunk server to automatically add other search peers it discovers on the network

224 Distributed Search Add Peers - Manager
Add individual peers manually Include authentication

225 Search Head Pooling

226 Search head pooling overview
Multiple search heads can share configuration data Allows horizontal scaling for users searching across the same data Also reduces the impact if a search head becomes unavailable Shared resources are: .conf files Search artifacts – saved searches and other knowledge objects Scheduler state – only one search head in the pool runs a particular scheduled search Makes all files in $SPLUNK_HOME/etc/{apps,users} available for sharing – .conf files, .meta files, view files, search scripts, lookup tables, etc. All search heads in a pool should be running same version of Splunk

227 Topology example – with loadbalancer
NFS or other similar technology User logs in Layer 7 Load Balancer

228 Topology example – without loadbalancer
NFS User logs in User logs in User logs in User logs in

229 Create a pool of search heads
Set up each search head individually in the same manner as configuring distributed search Set up shared storage that each search head can access For *nix, use NFS mount For windows, use CIFS (SMB) share The Splunk user account needs read/write access to shared storage Stop splunkd on all search heads in pool

230 Enable each search head
Use the pooling enable CLI command to enable pooling on a search head. splunk pooling enable <path_to_shared_storage> [--debug] On NFS, <path_to_shared_storage> is NFS's mountpoint. On Windows, <path_to_shared_storage> is UNC path of the CIFS/SMB Execute this command on each search head in the pool. The command: Sets values in the [pooling] stanza of the server.conf file in $SPLUNK_HOME/etc/system/local Creates user and app subdirectories

231 Copy user and app directories to share
Copy the contents of $SPLUNK_HOME/etc/apps and $SPLUNK_HOME/etc/users directories on existing search heads into the empty apps and users directories on the shared storage For example, if your NFS mount is at /tmp/nfs, copy the apps subdirectories into /tmp/nfs/apps Similarly, copy the user subdirectories: $SPLUNK_HOME/etc/users/ into /tmp/nfs/users Restart each search head in the pool

232 Using a load balancer Allows users to access the pool of search heads through a single interface, without needing to specify a particular one Ensures access to search artifacts and results if one of the search heads goes down When configuring the load balancer: The load balancer must employ layer-7 (application-level) processing Configure the load balancer so user sessions are "sticky" or "persistent” to ensure that a user remains on a single search head throughout a session

233 Search head management commands
splunk pooling validate Revalidate the search head's access to shared resources splunk pooling disable Disables pooling for a given search head splunk pooling display Displays / verifies current status of search head $ splunk pooling enable /opt/splunk $ splunk pooling display Search head pooling is enabled with shared storage at: /tmp/nfs $ splunk pooling disable $ splunk pooling display Search head pooling is disabled

234 Configuration changes
Once pooling is enabled on a search head, you must notify the search head if you directly edit a .config file If you add a stanza to any config file in a local directory, you must run the following command: splunk btool fix-dangling Not necessary if you make changes via Splunk Web Manager or CLI

235 Deployment Server

236 Deployment server overview
The deployment server pushes out configurations and content – packaged in ‘deployment apps’ – to distributed clients Allows you to manage multiple Splunk instances from a single Splunk server Small environments – deployment server can also be a deployment client Greater than 30 deployment clients – deployment server should be its own instance

237 Deployment Terminology
Deployment server A Splunk instance that acts as a centralized configuration manager Supplies configurations to any number of Splunk instances Any Splunk instance can act as a deployment server Deployment client Splunk instances that are remotely configured A Splunk instance can be both a deployment server and client at the same time Server class A logical grouping of deployment clients based on need for the same configs Deployment app Set of deployment content (including configuration files) deployed as a unit to clients of a server class.

238 Deployment server uses
Distribute Apps and/or configurations Windows file servers Splunk for Windows App Collect event logs and WMI Database group Uptime, system health, access errors Web Hosting Group Analytics, business intelligence

239 Server Classes examples
Windows Windows Server 2003 IIS Database Solaris servers (sunos-sun4u) Oracle Web hosting group Apache on Linux Could also group clients by OS, Hardware type, location, etc.

240 Deployment server example
www1-forwarder www2-forwarder www3-forwarder db1-forwarder db2-forwarder db-logging-forwarder server class www-forwarder server class Deployment server

241 Deployment server configuration overview
Designate a Splunk instance as deployment server Create serverclass.conf on the deployment server at $SPLUNK_HOME/etc/system/local Create deployment apps on the deployment server and put the content to be deployed into directories Create deploymentclient.conf on the Deployment clients Restart the deployment clients

242 Deployment serverclass.conf (cont.)
Server classes group clients that need the same configuration If filters match the apps and configuration, content is deployed to the client Stanzas in serverclass.conf go from general to more specific All configuration information is evaluated from top to bottom in the configuration file, so order matters [global] repositoryLocation = $SPLUNK_HOME/etc/deploymentApps targetRepositoryLocation = $SPLUNK_HOME/etc/apps [serverClass:AppsByMachineType] [serverClass:AppsByMachineType:app:win_eventlog] Where apps are stored on the deployment server Applies to all server classes Where apps will be delivered on the client Server-class specific settings

243 Server classes example – serverclass.conf
[serverClass:www-forwarder] filterType = blacklist blacklist.0=* whitelist.0=* * [serverClass:www-forwarder:app:webfarm-forwarders] stateOnClient=enabled [serverClass:db-logging-forwarder] whitelist.0=*.192.2* [serverClass:db-logging-forwarder:app:db-forwarder] Server class only applies to clients in the * IP range www-forwarder server class Deploy this app to clients that match db-logging-forwarder server class Server class only applies to clients in the 192.2* IP range Deploy this app to clients that match

244 serverclass.conf – group by machine type
You can create server classes that apply to specific machine types or OSs [serverClass:AppsByMachineType:app:SplunkDesktop] machineTypes=Windows-Intel [serverClass:AppsByMachineType:app:unix] machineTypes=linux-i686, linux-x86_64 Deploy this app only to Windows machines Deploy this app only to Linux 32 or 64 bit machines

245 serverclass.conf – client handling options
Optionally configure actions to take on the client after an app is deployed restartSplunkWeb = <True or False> restartSplunkd = <True or False> stateOnClient = <enabled, disabled, noop> Defaults to false Noop is used for apps that don’t need enabling such as a package of eventtypes or saved searches Defaults to true Enable or disable apps on the client after installation or change

246 Setup Deployment Client
Install Splunk on the client machine Run the following command ./splunk set deploy-poll <ipaddress/hostname of deployment server>:8089 -auth admin:changeme This will create a file named deploymentclient.conf [deployment-client] disabled = false [target-broker:deploymentServer] targetUri = :8089 URI of deployment server

247 Verify deployment Server clients
From the deployment server, you can verify deployment clients from CLI with the following command: ./splunk list deploy-clients Deployment client: ip= , dns= , hostname=mycompany-PC-64, mgmt=8089, build=64889, name=deploymentClient, id=connection_ _8089_ _deploymentClient, utsname=windows-unknown Command output

248 Deployment actions Default poll period is 30 seconds
Specified in serverclass.conf The deployment server instructs the client what it should retrieve The deployment client then retrieves the new content client Poll server Send instructions Get content deployment server

249 Force-notify clients of changes
If you make changes to a deployment app on the deployment server, you may want to immediately notify the clients of the change Run ./splunk reload deploy-server to notify all clients Run ./splunk reload deploy-server –class <class name> to notify a specific class

250 Section 9: Licensing

251 Section Objectives Identify license types
Understand license violations Define license groups Define license pooling and stacking Add and remove licenses

252 Splunk license types Enterprise license
Purchased from Splunk Allows for full functionality License limits indexing volume Enterprise trial license – downloads with product 500mb per day limit Otherwise same as enterprise, except that it expires 60 days after install

253 Splunk license types (cont.)
Forwarder license Applied to non-indexing forwarders, and deployment servers Allows authentication, but no indexing Free license Activates automatically when 60 day trial enterprise license expires Can be activated before 60 days by using Manager Doesn’t allow authentication, forwarding to non-Splunk servers, or alerts Does allow 500mb/day of indexing and forwarding to other Splunk instances

254 License warnings and violations
5th warning in a rolling 30 day period causes violation and search to be disabled 3rd warning in Free version You must be “good” for 30 consecutive days for warning number to reset Indexing will continue, only search is locked out Note that you can still search Splunk’s internal indexes Contact Splunk Support to unlock your license

255 License groups License types are organized into groups
Enterprise Group Includes Enterprise, Enterprise Trial, and sales trial Free Group Forwarder Group Licenses are stored in directories at $SPLUNK_HOME$/etc/licenses Each group is stored in a separate folder under that directory

256 License stacking and pooling overview
Licenses in the Enterprise group can be aggregated together, or stacked Available license volume is the sum of the volumes of the individual licenses Enterprise trial license that comes with the Splunk download cannot be stacked Free license cannot be stacked Pools can be created for a given stack Specify Splunk indexing instances as members of a pool for the purpose of volume usage and tracking Allows for insulation of license usage by group of indexers or data type

257 Topology example – single pool
Master has a stack of two licenses for a total of 500GB All indexers in the pool share 500GB entitlement collectively This should be the most common scenario Enterprise Stack – 500 GB Total Entitlement Default License Pool 500 GB Shared Entitlement 300GB License 200GB License

258 Topology example – multiple pools
Master has a stack of two licenses, totaling 500GB Each pool has a specific entitlement amount Enterprise Stack – 500 GB Total Entitlement Asdasd Default Pool - 100GB local Entitlement 300GB License 200GB License Pool 4 100GB Entitlement Pool 2 100GB Entitlement Pool 3 200GB Entitlement

259 Managing licenses – overview
You can manage license stacks and pools via Manager Switch from master to slave Change license group View license alerts Add licenses and manage stacks Add and manage pools

260 Managing licenses – master/slave
By default, Splunk instances are master license servers Change an instance to slave by entering the master license server URI

261 Change license group Each master can only manage a single license group Select Enterprise, Forwarder, or Free Forwarder and Free cannot be stacked or used in Pools Enterprise is default

262 Adding a license Any 4.x license can be added
4.2 licenses can be uploaded, or XML can be copy/pasted 4.0 and 4.1 licenses must be uploaded

263 License stacks Enterprise Stack 4.2 Enterprise license

264 License pools For each stack, you can create one or more additional license pools Define a maximum volume for the pool Select indexers for the pool

265 Viewing pool volume Default pool Added pool

266 Viewing alerts windows enterprise

267 Viewing license info – master
For each license installed on the master, you can view specific license info Exp. Date/time Features allowed Max violations Quota Stack name and type Status Violation window period Payload is unimplemented feature

268 Viewing license info – slave
Displays local indexer name, master license server URI, last successful connection Messages link displays license alerts

269 Lab

270 Section 10: Security

271 Section objectives Learn what you can secure in Splunk
Understanding SSL and Splunk Learn about user group and index security Learn what is recorded in the audit log Describe how to secure the audit log Understand archive data signing

272 What you can secure in Splunk
SSL splunkd to Splunk Web Splunk Web to client forwarder to indexer Audit user actions file system Data Signing cold to frozen archive data audit data in Splunk

273 SSL Already enabled between splunkd and Splunk Web
Can be enabled via Splunk Web > Manager or by editing web.conf Splunk will automatically generate homemade certificates You can pay for certificates to avoid browser complaints Forwarder to indexer communication can be secured Enabled in outputs.conf Adds to forwarder processor overhead Can force Splunk to only use SSLv3 if required

274 Data / Index Security Securing sensitive data within Splunk is best achieved by segregating the data by index Index access is governed by user groups Index level security is the best method to insure users have access to the data they need, while preventing them from seeing sensitive data

275 Auditing Splunk automatically creates an audit trail of Splunk user actions Stored in the _audit index Accessible only by administrators by default Useful for monitoring for prying eyes Splunk also audits file systems (FS change monitor) Use it on /etc/password or on Splunk’s own config files

276 Signing audit data Splunk has the ability to number and sign audit trail data Detects gaps Detects tampering Created fields called “validity” and “gap” in the audit log Does not work in distributed environments See the Knowledge Base for details on setting this up ts

277 Signing archive data You can sign archive data when it moves from cold to frozen You must specify a custom archiving script You cannot use it if you choose to have Splunk perform the archiving automatically Add signing to your script using signtool -s <archive_path> Splunk verifies archived data signatures automatically when the archive is restored Verify signatures manually by using signtool -v <archive_path>

278 Splunk Product Security Resources
The Splunk Product Security Portal provides a single location for: Splunk Product Security Announcements Splunk Product Security Policy Splunk Product Security Best Practices Reporting Splunk Product Security Vulnerabilities This site is updated regularly with any security-related updates or announcements splunk.com > Support > Security

279 Section 11: Jobs, Knowledge Objects, and Alerts

280 Section objectives Understand jobs Manage jobs
Understand alerts, and alert settings Understand PDF server and alerts Understand what knowledge objects are and how to set their permissions

281 What are jobs Jobs are searches that users or the system runs
A job is created when You hit return in the search box You load a dashboard with embedded saved searches An alert is triggered or saved search runs Jobs create artifacts when they run What are artifacts? Traces of jobs (such as search results) that are created on disk Persistence to disk allows users to recreate or resurrect jobs

282 Managing Jobs – Splunk Web
Users can mange their own jobs Administrators can manage all users’ jobs Click on Jobs in the Splunk Web to manage, rerun, and resurrect jobs

283 Manage jobs – OS level (*nix only)
Search jobs run as processes at the OS level View search jobs running Included in the process description will be key information the actual search running who ran the search their role the search ID ps –ef | grep “splunkd search” :00.05 ?? :00.26 splunkd search --id=rt_ maxbuckets=0 --ttl=600 --maxout= maxtime=0 --lookups=1 --reduce_freq=10 --user=admin --pro --roles=admin:power:user

284 Manage jobs – OS level continued
There will be 2 jobs for each process 2nd job is the “helper” – it will die if you kill the 1st job Running jobs will be writing data to $SPLUNK_HOME/var/run/splunk/dispatch/<job_id> Saved searches will append the name of the saved search to the job_id directory This directory exists for the TTL of the job You may need to delete artifact directories for jobs you kill by hand TTL = time to live

285 Alerts Review Alerts are saved searches that run on a schedule and “do something” based on the data that is returned Alerts can send an , trigger a shell script, or create an RSS feed

286 Email alert configuration
In the Subject field, $name$ is replaced by the saved search name You must first configure alert settings in Manager

287 PDF report server Splunk offers the ability to print and reports in PDF format You must install the PDF print server add-on on a Linux-based Splunk instance The Splunk instance doesn’t have to be an indexer, but cannot be a light forwarder See urePDFprintingforSplunkWeb for details

288 Scripted alerts You can have an alert that activates a script
Scripts must be located in $SPLUNK_HOME/bin/scripts Scripts can be in any language the underlying operating system can run Splunk passes a number of variables to the script For details on variables etc., see the docs: gureScriptedAlerts

289 Knowledge Objects Knowledge objects are user-created things such as
Eventtypes Saved Searches Field Extractions using IFX (Interactive Field Extractor) Tags Knowledge objects initially are only available to the user who created them Permissions must be granted to allow other users/apps to use them

290 Knowledge object permissions
Users only need read permissions to use knowledge objects Use app context to segregate app-specific knowledge objects

291 Section 12: Troubleshooting

292 Section objectives Learn how to set specific log levels using Manager
Learn basic troubleshooting steps to solve/identify common issues Learn how to get community help with Splunk Understand how to contact Splunk Support Search is the root of all troubleshooting in Splunk. Make sure when troubleshooting you’ve doubled checked the search.

293 Splunk’s log levels Log levels from lowest to highest: crit, fatal, error, warn, info, debug By default all subsystems are set to info or warn All of Splunk’s logs can be set to debug by restarting Splunk in debug mode Generally not recommended since it’s burdensome on production systems and creates lots of unwanted “noise” in the logs Better to set to debug granularly on the individual subsystem(s) you are troubleshooting (see next slide) Splunk Support may ask for overall debug mode in certain cases

294 Set granular log levels
You can granularly adjust subsystem log levels to debug to troubleshoot specific issues using Manager Can also set them using log.cfg in $SPLUNK_HOME/etc (useful for light forwarders)

295 Troubleshooting: check your search
Many times input or forwarder problems are actually misdiagnosed search problems Before starting to troubleshoot a missing input or forwarder that is not forwarding, double check your search Sometimes inputs wind up in unexpected indexes so try adding “index=*” when searching for a missing input/forwarder Sometimes time stamps are extracted wrong on new inputs, try searching “All Time” to help diagnose this Generally, use wildcards in other parts of your search to cast the widest net for missing data

296 Deployment monitor The Deployment Monitor is a collection of dashboards and drilldown pages with information to help monitor the health of a system Index throughput over time Number of forwarders connecting to the indexer over time Indexer and forwarder abnormalities Details for individual forwarders and indexers, such as status and forwarding volume over time Source types being indexed by the system License usage

297 Main – index throughput and forwarders

298 Main – indexer and forwarder warnings

299 Main – sourcetype warnings

300 Viewing warning info Click the arrow icon to view warning information

301 Configuring alerts Click configure alerting to modify the underlying saved search/alert

302 Indexers – All Indexers
Number of current active searches MB indexed today Can select alternate time range Table report of indexer(s) status, last connection, and total GB indexed in last 30 minutes

303 Indexer Properties Data specific to a given indexer
Drill-down from All Indexers view Can drill-down on any chart item to show underlying events

304 All Sourcetypes Shows MB Received by sourcetype
Table display shows each sourcetype, current status, last received, and total MB received Drill down on any item for underlying events

305 Sourcetype info Drill-down from All sourcetypes shows info for single sourcetype

306 License Usage Cumulative MB per day by Sourcetype MB Received
By sourcetype, source, host, forwarder, indexer, license pool Drill-down shows underlying events in Search view Usage statistics Shows last received and total MB received

307 Backfill data Use backfill Summary Indexes to add two-weeks worth of data to the summary indexes (useful for new Deployment Monitor installation on existing Splunk instance) Use Flush and Backfill to erase old data and re-populate

308 Community based support
Splunk docs are constantly being updated and improved, so be sure to select your version of Splunk to make sure the doc you are reading applies to your version Splunk Answers: post specific questions and get them answered by Splunk experts (also makes for great and informative reading) IRC Channel: Splunk maintains a channel #splunk on the EFNet IRC server. Support engineers and many well-informed Splunk users “hang out” there

309 Splunk Support Contact Splunk Support File a case online 24/7 phone depending on support contract

310 Thanks! Please take our survey.


Download ppt "Administering Splunk 4.2 Ver. 1.0."

Similar presentations


Ads by Google