├── README.md
├── splunk
├── cribldemo
│ ├── demo.mode
│ ├── lookups
│ │ ├── threat_list.csv
│ │ └── http_status.csv
│ ├── default
│ │ ├── app.conf
│ │ ├── commands.conf
│ │ ├── times.conf
│ │ ├── workflow_actions.conf
│ │ ├── indexes.conf
│ │ └── data
│ │ │ └── ui
│ │ │ ├── nav
│ │ │ └── default.xml
│ │ │ └── views
│ │ │ ├── route.xml
│ │ │ ├── troubleshooting.xml
│ │ │ ├── start.xml
│ │ │ ├── prettify.xml
│ │ │ ├── overview.xml
│ │ │ ├── suppress.xml
│ │ │ ├── hash.xml
│ │ │ ├── encrypt.xml
│ │ │ ├── trim.xml
│ │ │ ├── indextimefields.xml
│ │ │ ├── pii.xml
│ │ │ ├── metrics.xml
│ │ │ ├── filter.xml
│ │ │ ├── lookup.xml
│ │ │ └── smart_sample.xml
│ ├── local
│ │ ├── outputs.conf
│ │ ├── inputs.conf
│ │ ├── fields.conf
│ │ ├── authorize.conf
│ │ ├── cribl
│ │ │ └── auth
│ │ │ │ ├── cribl.secret
│ │ │ │ └── keys.json
│ │ ├── props.conf
│ │ └── transforms.conf
│ └── appserver
│ │ └── static
│ │ ├── images
│ │ ├── cribl.png
│ │ ├── hash-96.png
│ │ ├── mask-96.png
│ │ ├── pii-96.png
│ │ ├── binary-96.png
│ │ ├── clone-96.png
│ │ ├── cribl-logo.png
│ │ ├── encrypt-96.png
│ │ ├── enrich-96.png
│ │ ├── filter-96.png
│ │ ├── index-96.png
│ │ ├── reformat-96.png
│ │ └── cribl-basic-model.png
│ │ ├── cribladdress.js
│ │ ├── shell.js
│ │ └── dashboard.js
├── hack
│ └── splunk
│ │ ├── licenses
│ │ └── .gitkeep
│ │ └── etc
│ │ ├── system
│ │ └── local
│ │ │ ├── server.conf
│ │ │ ├── authentication.conf
│ │ │ ├── ui-prefs.conf
│ │ │ └── web.conf
│ │ ├── apps
│ │ ├── splunk_instrumentation
│ │ │ └── local
│ │ │ │ └── telemetry.conf
│ │ └── splunk_httpinput
│ │ │ └── local
│ │ │ └── inputs.conf
│ │ └── users
│ │ └── admin
│ │ └── user-prefs
│ │ └── local
│ │ └── user-prefs.conf
├── stop.sh
├── singleinstance
│ ├── local
│ │ ├── outputs.conf
│ │ ├── props.conf
│ │ └── inputs.conf
│ ├── README
│ │ └── inputs.conf.spec
│ └── bin
│ │ └── cribl_demo_gogen.py
├── config.sh
├── start.sh
└── Dockerfile
├── cribl
├── Dockerfile
├── master
│ └── groups
│ │ └── logs
│ │ └── local
│ │ └── cribl
│ │ ├── certificates.yml
│ │ ├── inputs.yml
│ │ ├── outputs.yml
│ │ └── auth
│ │ └── certs
│ │ ├── splunk_server.crt
│ │ ├── splunk_server.pem
│ │ └── splunk_server.key
└── cribl
│ ├── auth
│ ├── users.json
│ └── cribl.secret
│ ├── cribl.yml
│ ├── pipelines
│ └── route.yml
│ ├── vars.yml
│ ├── inputs.yml
│ └── outputs.yml
├── universalforwarder
├── gogen
│ ├── generators
│ │ ├── timeTaken.yml
│ │ └── timeTaken.lua
│ ├── samples
│ │ ├── webhosts.csv
│ │ ├── categories.sample
│ │ ├── items.sample
│ │ ├── products.sample
│ │ ├── external_ips.sample
│ │ ├── shopping.yml
│ │ └── useragents.sample
│ └── raters
│ │ └── timeTaken_outage.yml
├── Dockerfile
└── client.pem
├── .env
└── docker-compose.yml
/README.md:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/splunk/cribldemo/demo.mode:
--------------------------------------------------------------------------------
1 | true
--------------------------------------------------------------------------------
/splunk/hack/splunk/licenses/.gitkeep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/cribl/Dockerfile:
--------------------------------------------------------------------------------
1 | FROM cribl/cribl:latest
2 |
--------------------------------------------------------------------------------
/splunk/stop.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | docker kill cribl-demo
--------------------------------------------------------------------------------
/splunk/cribldemo/lookups/threat_list.csv:
--------------------------------------------------------------------------------
1 | src_ip,threat_code
2 | 194.8.74.23,malware
--------------------------------------------------------------------------------
/splunk/hack/splunk/etc/system/local/server.conf:
--------------------------------------------------------------------------------
1 | [diskUsage]
2 | minFreeSpace = 100
--------------------------------------------------------------------------------
/splunk/cribldemo/default/app.conf:
--------------------------------------------------------------------------------
1 | [ui]
2 | is_visible = 1
3 | label = Cribl Demo
4 |
--------------------------------------------------------------------------------
/splunk/hack/splunk/etc/system/local/authentication.conf:
--------------------------------------------------------------------------------
1 | [splunk_auth]
2 | minPasswordLength = 1
--------------------------------------------------------------------------------
/universalforwarder/gogen/generators/timeTaken.yml:
--------------------------------------------------------------------------------
1 | name: timeTaken
2 | fileName: timeTaken.lua
3 |
--------------------------------------------------------------------------------
/cribl/master/groups/logs/local/cribl/certificates.yml:
--------------------------------------------------------------------------------
1 | splunk_server:
2 | description: Splunk Server Cert
3 |
--------------------------------------------------------------------------------
/splunk/cribldemo/local/outputs.conf:
--------------------------------------------------------------------------------
1 | [tcpout]
2 | disabled = true
3 |
4 | [tcpout:cribl]
5 | disabled = true
6 |
--------------------------------------------------------------------------------
/splunk/cribldemo/local/inputs.conf:
--------------------------------------------------------------------------------
1 |
2 | [script://$SPLUNK_HOME/etc/apps/cribl/bin/00_start.py]
3 | disabled = true
4 |
--------------------------------------------------------------------------------
/splunk/hack/splunk/etc/system/local/ui-prefs.conf:
--------------------------------------------------------------------------------
1 | [search]
2 | dispatch.earliest_time = -60m
3 | dispatch.latest_time = now
--------------------------------------------------------------------------------
/splunk/cribldemo/default/commands.conf:
--------------------------------------------------------------------------------
1 | [decrypt]
2 | filename = cribl.py
3 | chunked = true
4 | command.arg.0 = splunk-decrypt
--------------------------------------------------------------------------------
/splunk/cribldemo/default/times.conf:
--------------------------------------------------------------------------------
1 | [Last 5min to @min]
2 | label = Last 5min to @min
3 | earliest_time = -5m@m
4 | latest_time = @m
--------------------------------------------------------------------------------
/splunk/hack/splunk/etc/apps/splunk_instrumentation/local/telemetry.conf:
--------------------------------------------------------------------------------
1 | [general]
2 | optInVersionAcknowledged = 3
3 | showOptInModal = 0
--------------------------------------------------------------------------------
/universalforwarder/gogen/samples/webhosts.csv:
--------------------------------------------------------------------------------
1 | ip,host
2 | 10.2.1.33,web-01.bar.com
3 | 10.2.1.34,web-02.bar.com
4 | 10.2.1.35,web-03.bar.com
--------------------------------------------------------------------------------
/cribl/cribl/auth/users.json:
--------------------------------------------------------------------------------
1 | {"username":"admin","first":"admin","last":"admin","email":"admin","passwd":"YGnKSKxO8t4cWImXkIJg9tYi8zPV1HjGqjxlrD6gkTU="}
--------------------------------------------------------------------------------
/splunk/cribldemo/appserver/static/images/cribl.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/criblio/cribl-training/HEAD/splunk/cribldemo/appserver/static/images/cribl.png
--------------------------------------------------------------------------------
/splunk/cribldemo/appserver/static/images/hash-96.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/criblio/cribl-training/HEAD/splunk/cribldemo/appserver/static/images/hash-96.png
--------------------------------------------------------------------------------
/splunk/cribldemo/appserver/static/images/mask-96.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/criblio/cribl-training/HEAD/splunk/cribldemo/appserver/static/images/mask-96.png
--------------------------------------------------------------------------------
/splunk/cribldemo/appserver/static/images/pii-96.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/criblio/cribl-training/HEAD/splunk/cribldemo/appserver/static/images/pii-96.png
--------------------------------------------------------------------------------
/splunk/cribldemo/appserver/static/images/binary-96.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/criblio/cribl-training/HEAD/splunk/cribldemo/appserver/static/images/binary-96.png
--------------------------------------------------------------------------------
/splunk/cribldemo/appserver/static/images/clone-96.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/criblio/cribl-training/HEAD/splunk/cribldemo/appserver/static/images/clone-96.png
--------------------------------------------------------------------------------
/splunk/cribldemo/appserver/static/images/cribl-logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/criblio/cribl-training/HEAD/splunk/cribldemo/appserver/static/images/cribl-logo.png
--------------------------------------------------------------------------------
/splunk/cribldemo/appserver/static/images/encrypt-96.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/criblio/cribl-training/HEAD/splunk/cribldemo/appserver/static/images/encrypt-96.png
--------------------------------------------------------------------------------
/splunk/cribldemo/appserver/static/images/enrich-96.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/criblio/cribl-training/HEAD/splunk/cribldemo/appserver/static/images/enrich-96.png
--------------------------------------------------------------------------------
/splunk/cribldemo/appserver/static/images/filter-96.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/criblio/cribl-training/HEAD/splunk/cribldemo/appserver/static/images/filter-96.png
--------------------------------------------------------------------------------
/splunk/cribldemo/appserver/static/images/index-96.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/criblio/cribl-training/HEAD/splunk/cribldemo/appserver/static/images/index-96.png
--------------------------------------------------------------------------------
/splunk/singleinstance/local/outputs.conf:
--------------------------------------------------------------------------------
1 | [tcpout]
2 | disabled = false
3 | indexAndForward = true
4 | defaultGroup = nowhere
5 |
6 | [tcpout:cribl]
7 | disabled = false
--------------------------------------------------------------------------------
/splunk/cribldemo/appserver/static/images/reformat-96.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/criblio/cribl-training/HEAD/splunk/cribldemo/appserver/static/images/reformat-96.png
--------------------------------------------------------------------------------
/splunk/cribldemo/local/fields.conf:
--------------------------------------------------------------------------------
1 | [idx_http_status_description]
2 | INDEXED=true
3 | INDEXED_VALUE=false
4 |
5 | [idx_http_status_type]
6 | INDEXED=true
7 | INDEXED_VALUE=false
--------------------------------------------------------------------------------
/splunk/cribldemo/appserver/static/images/cribl-basic-model.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/criblio/cribl-training/HEAD/splunk/cribldemo/appserver/static/images/cribl-basic-model.png
--------------------------------------------------------------------------------
/universalforwarder/gogen/samples/categories.sample:
--------------------------------------------------------------------------------
1 | CASES
2 | DISPLAYPROTECT
3 | HEADSETS
4 | BLUETOOTH
5 | BATTERIES
6 | MEMORYCARDS
7 | CHARGERS
8 | HEADSETS
9 | MOUNTS
10 | ACCESSORIES
--------------------------------------------------------------------------------
/splunk/cribldemo/appserver/static/cribladdress.js:
--------------------------------------------------------------------------------
1 | const href = `https://${window.location.hostname}:9000/login?username=admin&password=cribldemo`;
2 | document.getElementById('cribluiaddress').href = href;
3 |
--------------------------------------------------------------------------------
/splunk/cribldemo/local/authorize.conf:
--------------------------------------------------------------------------------
1 | [role_admin]
2 | cribl_keyclass_0 = enabled
3 | cribl_keyclass_1 = enabled
4 | cribl_keyclass_2 = enabled
5 | cribl_keyclass_3 = enabled
6 | cribl_keyclass_4 = enabled
7 |
--------------------------------------------------------------------------------
/splunk/hack/splunk/etc/apps/splunk_httpinput/local/inputs.conf:
--------------------------------------------------------------------------------
1 | [http]
2 | disabled = 0
3 |
4 | [http://dev]
5 | disabled = 0
6 | index = main
7 | indexes = main
8 | token = 00000000-0000-0000-0000-000000000001
--------------------------------------------------------------------------------
/splunk/hack/splunk/etc/system/local/web.conf:
--------------------------------------------------------------------------------
1 | [settings]
2 | enable_insecure_login = True
3 | ui_inactivity_timeout = 43200
4 | cacheEntriesLimit = 0
5 | cacheBytesLimit = 0
6 | minify_js = False
7 | minify_css = False
--------------------------------------------------------------------------------
/universalforwarder/gogen/samples/items.sample:
--------------------------------------------------------------------------------
1 | EST-19
2 | EST-18
3 | EST-14
4 | EST-6
5 | EST-26
6 | EST-17
7 | EST-16
8 | EST-15
9 | EST-27
10 | EST-7
11 | EST-21
12 | EST-11
13 | EST-12
14 | EST-13
15 | EST-20
16 | EST-1
--------------------------------------------------------------------------------
/splunk/cribldemo/default/workflow_actions.conf:
--------------------------------------------------------------------------------
1 | [link2cribl]
2 | display_location = both
3 | fields = *
4 | label = Go to Cribl Pipeline
5 | link.method = get
6 | link.target = blank
7 | link.uri = https://$splunk_server$:9000/pipelines/$cribl_pipe$
8 | type = link
--------------------------------------------------------------------------------
/splunk/config.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | if [ -n "$CRIBL_ROUTING_DEMO" ]; then
4 | cat <<-EOF >> $SPLUNK_HOME/etc/apps/cribl/local/inputs.conf
5 | [splunktcp://9997]
6 | connection_host = ip
7 |
8 | [splunktcp://9998]
9 | connection_host = ip
10 | EOF
11 | fi
12 |
--------------------------------------------------------------------------------
/splunk/hack/splunk/etc/users/admin/user-prefs/local/user-prefs.conf:
--------------------------------------------------------------------------------
1 | [general]
2 | default_namespace = cribl
3 | search_use_advanced_editor = true
4 | search_line_numbers = false
5 | search_auto_format = false
6 | search_syntax_highlighting = dark
7 | # tz = America/Los_Angeles
8 |
--------------------------------------------------------------------------------
/.env:
--------------------------------------------------------------------------------
1 | CRIBL_SPLUNK=cribl:9999
2 | CRIBL_SPLUNK_ARGS=-ssl-cert-path /opt/splunk/etc/auth/client.pem
3 | CRIBL_ELASTIC=http://cribl:10200
4 | CRIBL_HEC=http://cribl:10088/services/collector/event
5 | CRIBL_SYSLOG=cribl:5140
6 | CRIBL_KAFKA=kafka:29092
7 | CRIBL_STATSD=cribl:8125
8 | CRIBL_TCPJSON=cribl:10001
--------------------------------------------------------------------------------
/cribl/cribl/cribl.yml:
--------------------------------------------------------------------------------
1 | api:
2 | host: 0.0.0.0
3 | port: 9000
4 | disabled: false
5 | ssl:
6 | disabled: true
7 | system:
8 | intercom: false
9 | upgrade: api
10 | restart: api
11 | installType: standalone
12 | workers:
13 | count: 3
14 | memory: 2048
15 | distributed:
16 | mode: standalone
17 |
--------------------------------------------------------------------------------
/cribl/cribl/pipelines/route.yml:
--------------------------------------------------------------------------------
1 | id: default
2 | routes:
3 | - id: OsuFhD
4 | name: Main Route
5 | final: true
6 | disabled: false
7 | pipeline: main
8 | description: Catchall for routing data through main pipeline
9 | clones:
10 | - {}
11 | filter: "true"
12 | output: default
13 |
--------------------------------------------------------------------------------
/universalforwarder/Dockerfile:
--------------------------------------------------------------------------------
1 | FROM cribl/universalforwarder:8.0.0
2 | ADD gogen /etc/gogen
3 | ADD https://api.gogen.io/linux/gogen /usr/bin/gogen
4 | RUN chmod 755 /usr/bin/gogen
5 | ENV SPLUNK_USER root
6 | ENV SPLUNK_START_ARGS "--accept-license --answer-yes --seed-passwd cribldemo"
7 | ADD client.pem /var/opt/splunk/etc/auth/client.pem
--------------------------------------------------------------------------------
/cribl/cribl/auth/cribl.secret:
--------------------------------------------------------------------------------
1 | Y3LbuaqwCAc9SKazbXoCsLjjvraFKaxj8Lw2FN+antLAZ3bnoDwdllVSnSY31PUCe+sfkje+xLGIUAxNs9zSlkTf7OXPXtXERE8vj40myT3ZqNxN8iyVWgjWMTD9iT7snl9MhL3xae0LAUyhBW62ioxRMqfKN9aa0+/ZKsYI0kE/rgGAew7GmiQKy8pV1lHpDlQDBZOOdUuKYcNmgz58225G8wfghQeInw1DJ7gQI0lp08qIqOJbmKetOXWEGfM8RhTgoWggLReitWpgM/+CXCtWSBTEuB4HzcEEMECEMnWWFzkQp+jNlwZvLYANe/F+ANIiSbqOL9C18tHLnWCcxw==
--------------------------------------------------------------------------------
/splunk/cribldemo/appserver/static/shell.js:
--------------------------------------------------------------------------------
1 | const src = `${window.location.protocol}//${window.location.hostname}:27425/`;
2 | // console.log('shell src: ', src);
3 | document.getElementById('shell_iframe').src = src;
4 | setTimeout(() => {
5 | document.getElementById('shell_iframe').contentWindow.postMessage({ command: 'tail -f /tmp/events.ndjson\n' }, src);
6 | }, 2000);
7 |
--------------------------------------------------------------------------------
/splunk/cribldemo/local/cribl/auth/cribl.secret:
--------------------------------------------------------------------------------
1 | 2YZ8FQqrGFwB2eBxTUhGvVX23issTErKWkuVGKxcxSoYSLm7e1zUn841OFb+Co7TLihyxHhQthCEE5nGH3lJrCvYJ3i01skLLl8mIlpe3pJgGgKypD51zX0a0ybfx871tCL8O03CTDZGHZ0iZqKDFe62HoJRnYoIuHbTFFp0Go0ZO/nnVNIOyJ0tMTpU8e4fShU3yOMk+PULS2xTQoQCauCSHI15hSw/eUzgVwMCEsn4VxDu3LzvYe4HEGmtxMjw9GAblLb7gmQJcpoBCLKioBYRYbQVflfF2plE2Ne21o6dy7jOsEW5W47u1W54jA5yJsPBfnsml1NyUZSRpGxdJg==
--------------------------------------------------------------------------------
/splunk/start.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 |
3 | # Start Cribl and Splunk demo in a single container
4 | docker run \
5 | -d \
6 | --rm \
7 | --name cribl-demo \
8 | --hostname cribl-demo \
9 | --publish 8000:8000 \
10 | --publish 8088:8088 \
11 | --publish 8089:8089 \
12 | --publish 9000:9000 \
13 | --publish 10080:10080 \
14 | -e DONT_TIMEOUT=1 \
15 | cribl/cribl-demo:latest
16 |
--------------------------------------------------------------------------------
/cribl/cribl/vars.yml:
--------------------------------------------------------------------------------
1 | criblIndex:
2 | type: expression
3 | lib: custom
4 | description: Checks if index is cribl
5 | args:
6 | - type: string
7 | name: additional
8 | value: "index=='cribl' && (additional === undefined ? true : additional)"
9 | tags: routing
10 | accessCombined:
11 | type: expression
12 | lib: custom
13 | description: Access combined events
14 | value: index=='cribl' && sourcetype=='access_combined'
15 | tags: routing
--------------------------------------------------------------------------------
/cribl/cribl/inputs.yml:
--------------------------------------------------------------------------------
1 | inputs:
2 | http:
3 | type: http
4 | disabled: false
5 | host: 0.0.0.0
6 | port: 10080
7 | criblAPI: /cribl
8 | splunkHecAPI: ""
9 | tls:
10 | disabled: true
11 | authToken: ""
12 | tcpjson:
13 | type: tcpjson
14 | disabled: false
15 | pipeline: tcpjson-conditioning
16 | host: 0.0.0.0
17 | port: 10001
18 | tls:
19 | disabled: true
20 | ipWhitelistRegex: /.*/
21 | authToken: ""
22 |
--------------------------------------------------------------------------------
/splunk/singleinstance/local/props.conf:
--------------------------------------------------------------------------------
1 | [access_combined]
2 | REPORT-apachebytes = apachebytes
3 | REPORT-apachesrc = apachesrc
4 | REPORT-apachestatus = apachestatus
5 | REPORT-apacheclientip = apacheclientip
6 | REPORT-apachetimetaken = apachetimetaken
7 | FIELDALIAS-responsetime = other AS time_taken
8 | LOOKUP-http_status_description = http_status status OUTPUT status_description AS http_status_description
9 | LOOKUP-http_status_type = http_status status OUTPUT status_type AS http_status_type
10 |
11 | [lambda]
12 | KV_MODE=json
--------------------------------------------------------------------------------
/splunk/cribldemo/local/props.conf:
--------------------------------------------------------------------------------
1 | [default]
2 | TRANSFORMS-cribl =
3 |
4 |
5 | [access_combined]
6 | REPORT-apachebytes = apachebytes
7 | REPORT-apachesrc = apachesrc
8 | REPORT-apachestatus = apachestatus
9 | REPORT-apacheclientip = apacheclientip
10 | REPORT-apachetimetaken = apachetimetaken
11 | FIELDALIAS-responsetime = other AS time_taken
12 | LOOKUP-http_status_description = http_status status OUTPUT status_description AS http_status_description
13 | LOOKUP-http_status_type = http_status status OUTPUT status_type AS http_status_type
14 |
15 | [lambda]
16 | KV_MODE=json
--------------------------------------------------------------------------------
/cribl/master/groups/logs/local/cribl/inputs.yml:
--------------------------------------------------------------------------------
1 | inputs:
2 | splunk:
3 | disabled: false
4 | host: 0.0.0.0
5 | tls:
6 | disabled: false
7 | requestCert: false
8 | rejectUnauthorized: false
9 | commonNameRegex: /.*cribl\.io.*/
10 | certPath: $CRIBL_HOME/local/cribl/auth/certs/splunk_server.crt
11 | privKeyPath: $CRIBL_HOME/local/cribl/auth/certs/splunk_server.key
12 | caPath: $CRIBL_HOME/local/cribl/auth/certs/splunk_server.pem
13 | ipWhitelistRegex: /.*/
14 | staleChannelFlushMs: 10000
15 | type: splunk
16 | port: 9999
17 |
--------------------------------------------------------------------------------
/splunk/singleinstance/local/inputs.conf:
--------------------------------------------------------------------------------
1 |
2 | [script://./bin/email.sh]
3 | interval = -1
4 | disabled = false
5 | index = _internal
6 | source = cribl_email
7 |
8 | [script://$SPLUNK_HOME/etc/apps/cribl/bin/00_start.py]
9 | disabled = false
10 |
11 | [cribl_demo_gogen://gogen]
12 | config_type = config_dir
13 |
14 | [splunktcp://9997]
15 | disabled = false
16 |
17 | # cooked data -> criblQ
18 | # cribled data -> indexQ
19 | [splunktcp]
20 | route=has_key:_replicationBucketUUID:replicationQueue;has_key:_dstrx:typingQueue;has_key:__CRIBBLED:indexQueue;has_key:_linebreaker:criblQueue;absent_key:_linebreaker:parsingQueue
--------------------------------------------------------------------------------
/cribl/cribl/outputs.yml:
--------------------------------------------------------------------------------
1 | outputs:
2 | statsd:
3 | type: router
4 | rules:
5 | - filter: "true"
6 | output: splunk-metrics
7 | final: false
8 | onBackpressure: block
9 | splunk-metrics:
10 | dnsResolvePeriodSec: 60
11 | excludeSelf: true
12 | loadBalanceStatsPeriodSec: 300
13 | indexerDiscovery: false
14 | throttleRatePerSec: "0"
15 | tls:
16 | disabled: true
17 | connectionTimeout: 5000
18 | writeTimeout: 10000
19 | onBackpressure: queue
20 | pipeline: metrics_to_logs
21 | hosts:
22 | - port: 9998
23 | tls: inherit
24 | weight: 1
25 | host: splunk
26 | type: splunk_lb
27 |
--------------------------------------------------------------------------------
/splunk/cribldemo/local/transforms.conf:
--------------------------------------------------------------------------------
1 | [route2criblQueue]
2 | REGEX = ^[^_]
3 |
4 | [apachebytes]
5 | REGEX = (?i)^(?:[^\"]*\"){6}\s+(?.+)
6 |
7 | [apachesrc]
8 | REGEX = (?[A-Za-z0-9\-\_\.]+?)\s\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\s-\s-\s\[
9 |
10 | [apachestatus]
11 | REGEX = HTTP 1\.1\"\s(?\d{3})\s
12 |
13 | [apacheclientip]
14 | REGEX = [A-Za-z0-9\-\_\.]+?\s(?\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})\s-\s-\s\[
15 |
16 | [apachetimetaken]
17 | REGEX = (?i)^(?:[^\"]*\"){2}\s+\d+\s+(?\d+)
18 |
19 | [http_status]
20 | filename = http_status.csv
21 |
22 | [dnsLookup]
23 | external_cmd = external_lookup.py host ip
24 | fields_list = host, ip
25 |
26 | [threat_list]
27 | filename = threat_list.csv
--------------------------------------------------------------------------------
/splunk/cribldemo/default/indexes.conf:
--------------------------------------------------------------------------------
1 | [cribl]
2 | coldPath = $SPLUNK_DB/cribl/colddb
3 | enableDataIntegrityControl = 0
4 | enableTsidxReduction = 0
5 | homePath = $SPLUNK_DB/cribl/db
6 | maxTotalDataSizeMB = 5000
7 | thawedPath = $SPLUNK_DB/cribl/thaweddb
8 |
9 | [cribl-modified]
10 | coldPath = $SPLUNK_DB/cribl-modified/colddb
11 | enableDataIntegrityControl = 0
12 | enableTsidxReduction = 0
13 | homePath = $SPLUNK_DB/cribl-modified/db
14 | maxTotalDataSizeMB = 5000
15 | thawedPath = $SPLUNK_DB/cribl-modified/thaweddb
16 |
17 | [cribl-metrics]
18 | coldPath = $SPLUNK_DB/cribl-metrics/colddb
19 | enableDataIntegrityControl = 0
20 | enableTsidxReduction = 0
21 | homePath = $SPLUNK_DB/cribl-metrics/db
22 | maxTotalDataSizeMB = 5000
23 | thawedPath = $SPLUNK_DB/cribl-metrics/thaweddb
24 | datatype = metric
--------------------------------------------------------------------------------
/splunk/cribldemo/default/data/ui/nav/default.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
--------------------------------------------------------------------------------
/splunk/cribldemo/local/cribl/auth/keys.json:
--------------------------------------------------------------------------------
1 | {"keyId":"0","algorithm":"aes-256-cbc","keyclass":0,"kms":"local","created":1544677114.304,"expires":0,"useIV":false,"cipherKey":"4kcRFY6Yfws6+Y7Nrki/MvrqaH9zOhCO5ldJXwy4J43h50y5j5ML3uCII6Rl2uzy"}
2 | {"keyId":"1","algorithm":"aes-256-cbc","keyclass":1,"kms":"local","created":1544677141.188,"expires":0,"useIV":false,"cipherKey":"EXVXvU//H375Ma0tvB6TrrdUIyBnG6xkEBEnyySkT2p0V7a1BqY/23wfMmMQpcwl"}
3 | {"keyId":"2","algorithm":"aes-256-cbc","keyclass":2,"kms":"local","created":1544677143.57,"expires":0,"useIV":false,"cipherKey":"RP2GZluQvThy7SV9/ol2IRb6wBUSBsVSc7m70tJgIV2Ed7yYD++q3vnZ3hiLVYbh"}
4 | {"keyId":"3","algorithm":"aes-256-cbc","keyclass":3,"kms":"local","created":1544677146.716,"expires":0,"useIV":false,"cipherKey":"6MkdnU4kIW05bPrGmjXburUL77523W+wOffxGheIh+2GJvZ0k4nlA+ZihHxJeEKI"}
5 | {"keyId":"4","algorithm":"aes-256-cbc","keyclass":4,"kms":"local","created":1544677149.193,"expires":0,"useIV":false,"cipherKey":"lQSHsl8OYdjG5zAIYANtDy/3XFLDcxwUQTOuql+bmV7pX1ruRTa3VEOUay+JDqsH"}
--------------------------------------------------------------------------------
/splunk/Dockerfile:
--------------------------------------------------------------------------------
1 | FROM cribl/splunk:8.0.0
2 | ARG CRIBL_DISTRO=cribl-splunk-app
3 | RUN sh -c 'echo dash dash/sh boolean false | debconf-set-selections' && \
4 | sh -c 'DEBIAN_FRONTEND=noninteractive dpkg-reconfigure dash' && \
5 | apt-get update && \
6 | apt-get install -y vim nano curl ca-certificates jq && \
7 | rm -rf /var/lib/apt/lists/*
8 | RUN VERSION=$(curl -s https://cdn.cribl.io/versions.json | jq -r .version) && \
9 | curl -Lso /tmp/${CRIBL_DISTRO}.tgz https://cdn.cribl.io/dl/$(echo ${VERSION} | cut -d '-' -f 1)/${CRIBL_DISTRO}-${VERSION}-linux-x64.tgz && \
10 | tar -zxvf /tmp/${CRIBL_DISTRO}.tgz -C /var/opt/splunk/etc/apps && \
11 | rm /tmp/${CRIBL_DISTRO}.tgz
12 | COPY hack/splunk/etc /var/opt/splunk/etc
13 | COPY config.sh /var/opt/splunk/etc/apps/cribl/bin/config.sh
14 | COPY cribldemo/ /var/opt/splunk/etc/apps/cribl/
15 | ENV SPLUNK_USER root
16 | ENV SPLUNK_START_ARGS "--accept-license --answer-yes --seed-passwd cribldemo"
17 | ENV SPLUNK_BEFORE_START_CMD "version ${SPLUNK_START_ARGS}"
18 | ENV SPLUNK_BEFORE_START_CMD_1 "cmd /bin/bash /opt/splunk/etc/apps/cribl/bin/config.sh"
19 |
--------------------------------------------------------------------------------
/splunk/singleinstance/README/inputs.conf.spec:
--------------------------------------------------------------------------------
1 | [cribl_demo_gogen://]
2 |
3 | config =
4 | * Short Gogen path (coccyx/weblog for example), full file path,local file in config directory, or URL pointing to YAML or JSON config.
5 |
6 | config_type =
7 | * local_file / short_path / full_file_path / url
8 |
9 | count =
10 | * Count of events to generate every interval. Overrides any amounts set in the Gogen config.
11 |
12 | gogen_interval =
13 | * Generate events every interval seconds. Overrides any interval set in the Gogen config.
14 |
15 | end_intervals =
16 | * Generate events for endIntervals and stop. Overrides any endInterval set in the Gogen config.
17 |
18 | begin =
19 | * Start generating events at begin time. Can use Splunk's relative time syntax or an absolute time. Overrides any begin setting in the Gogen config.
20 |
21 | end =
22 | * End generating events at end time. Can use Splunk's relative time syntax or an absolute time. Overrides any end setting in the Gogen config.
23 |
24 | generator_threads =
25 | * Sets number of generator threads
26 |
--------------------------------------------------------------------------------
/cribl/master/groups/logs/local/cribl/outputs.yml:
--------------------------------------------------------------------------------
1 | outputs:
2 | default:
3 | defaultId: splunk
4 | type: default
5 | splunk:
6 | dnsResolvePeriodSec: 60
7 | excludeSelf: true
8 | loadBalanceStatsPeriodSec: 300
9 | indexerDiscovery: false
10 | throttleRatePerSec: "0"
11 | tls:
12 | disabled: true
13 | connectionTimeout: 10000
14 | writeTimeout: 60000
15 | onBackpressure: block
16 | hosts:
17 | - port: 9997
18 | tls: inherit
19 | weight: 1
20 | host: splunk
21 | type: splunk_lb
22 | statsd:
23 | type: router
24 | rules:
25 | - filter: "true"
26 | output: splunk-metrics
27 | final: false
28 | onBackpressure: block
29 | splunk-metrics:
30 | dnsResolvePeriodSec: 60
31 | excludeSelf: true
32 | loadBalanceStatsPeriodSec: 300
33 | indexerDiscovery: false
34 | throttleRatePerSec: "0"
35 | tls:
36 | disabled: true
37 | connectionTimeout: 5000
38 | writeTimeout: 10000
39 | onBackpressure: queue
40 | pipeline: metrics_to_logs
41 | hosts:
42 | - port: 9998
43 | tls: inherit
44 | weight: 1
45 | host: splunk
46 | type: splunk_lb
47 |
--------------------------------------------------------------------------------
/docker-compose.yml:
--------------------------------------------------------------------------------
1 | version: "3.5"
2 | services:
3 | cribl:
4 | build:
5 | context: cribl
6 | ports:
7 | - 10200:10200
8 | - 10088:10088
9 | - 10080:10080
10 | - 10001:10001
11 | - 9999:9999
12 | - 9000:9000
13 | - 8125:8125
14 | - 8125:8125/udp
15 | - 5140:5140
16 | volumes:
17 | - ./cribl/cribl:/opt/cribl/local/cribl
18 | - ./cribl/data:/opt/cribl/data
19 | - /var/run/docker.sock:/var/run/docker.sock
20 | gogen-accesscombined-forwarder:
21 | build:
22 | context: universalforwarder
23 | environment:
24 | - SPLUNK_CMD=cmd mkdir -p /var/log/httpd
25 | - SPLUNK_CMD_1=cmd gogen -v -cd /etc/gogen -o file --filename
26 | /var/log/httpd/access_log -lj gen -s shoppingapache 2>/var/log/gogen.log
27 | &
28 | - SPLUNK_CMD_2=add monitor /var/log/httpd/access_log -auth admin:cribldemo
29 | -sourcetype access_combined -index cribl
30 | - SPLUNK_CMD_3=add forward-server ${CRIBL_SPLUNK} -auth admin:cribldemo
31 | ${CRIBL_SPLUNK_ARGS}
32 | splunk:
33 | build:
34 | context: splunk
35 | ports:
36 | - 8000:8000
37 | - 8088:8088
38 | - 8089:8089
39 | - 9997:9997
40 | environment:
41 | - DONT_TIMEOUT=1
42 | - CRIBL_ROUTING_DEMO=1
43 |
--------------------------------------------------------------------------------
/universalforwarder/gogen/raters/timeTaken_outage.yml:
--------------------------------------------------------------------------------
1 | name: timeTaken_outage
2 | type: config
3 | options:
4 | MinuteOfHour:
5 | 0: 1.0
6 | 1: 1.0
7 | 2: 1.0
8 | 3: 1.0
9 | 4: 1.0
10 | 5: 1.0
11 | 6: 1.0
12 | 7: 1.0
13 | 8: 1.0
14 | 9: 1.0
15 | 10: 1.0
16 | 11: 1.0
17 | 12: 1.0
18 | 13: 1.0
19 | 14: 1.0
20 | 15: 1.0
21 | 16: 1.0
22 | 17: 1.0
23 | 18: 1.0
24 | 19: 1.0
25 | 20: 1.0
26 | 21: 1.0
27 | 22: 1.0
28 | 23: 1.0
29 | 24: 1.0
30 | 25: 1.0
31 | 26: 1.0
32 | 27: 1.0
33 | 28: 1.0
34 | 29: 1.0
35 | 30: 1.0
36 | 31: 1.0
37 | 32: 1.0
38 | 33: 1.0
39 | 34: 1.0
40 | 35: 1.0
41 | 36: 5.0
42 | 37: 5.0
43 | 38: 1.0
44 | 39: 1.0
45 | 40: 1.0
46 | 41: 1.0
47 | 42: 1.0
48 | 43: 1.0
49 | 44: 1.0
50 | 45: 1.0
51 | 46: 1.0
52 | 47: 1.0
53 | 48: 1.0
54 | 49: 1.0
55 | 50: 1.0
56 | 51: 1.0
57 | 52: 1.0
58 | 53: 1.0
59 | 54: 1.0
60 | 55: 1.0
61 | 56: 1.0
62 | 57: 1.0
63 | 58: 1.0
64 | 59: 1.0
--------------------------------------------------------------------------------
/universalforwarder/gogen/generators/timeTaken.lua:
--------------------------------------------------------------------------------
1 |
2 | -- HACK
3 | -- Gogen API doesn't let us just pick a random choice
4 | -- So we need to know how big the session.csv file is
5 | sessionCount = 1570
6 |
7 | -- These 4 sessions are hard coded to have poorer response times
8 | -- In our scenario, they are all from Lake Tahoe
9 | badsessions = {}
10 | for i = sessionCount-4,sessionCount-1 do
11 | badsessions[getFieldChoiceItem("sessionIdForGenerator", "sessionId", i)] = true
12 | end
13 |
14 | -- We want an approximately gaussian distribution, so use central limit theorum to approximate
15 | -- see example from https://stackoverflow.com/questions/25582882/javascript-math-random-normal-distribution-gaussian-bell-curve
16 | function gaussianRand()
17 | local rand = 0
18 | for i = 0,5 do
19 | rand = rand + math.random()
20 | end
21 |
22 | return rand / 6
23 | end
24 |
25 | function gaussianRandom(lower, higher)
26 | return math.floor(lower + gaussianRand() * (higher - lower + 1))
27 | end
28 |
29 | l = getLine(0)
30 | for i = 1,count do
31 | session = getFieldChoiceItem("sessionIdForGenerator", "sessionId", math.random(0, sessionCount-1))
32 | setToken("sessionId", session)
33 | timeTaken = gaussianRandom(50, 250)
34 | if badsessions[session] then
35 | timeTaken = timeTaken * gaussianRandom(5, 10)
36 | end
37 | setToken("timeTaken", timeTaken)
38 | se = replaceTokens(l)
39 | sendEvent(se)
40 | end
--------------------------------------------------------------------------------
/splunk/cribldemo/lookups/http_status.csv:
--------------------------------------------------------------------------------
1 | status,status_description,status_type
2 | 100,Continue,Informational
3 | 101,Switching Protocols,Informational
4 | 200,OK,Successful
5 | 201,Created,Successful
6 | 202,Accepted,Successful
7 | 203,Non-Authoritative Information,Successful
8 | 204,No Content,Successful
9 | 205,Reset Content,Successful
10 | 206,Partial Content,Successful
11 | 300,Multiple Choices,Redirection
12 | 301,Moved Permanently,Redirection
13 | 302,Found,Redirection
14 | 303,See Other,Redirection
15 | 304,Not Modified,Redirection
16 | 305,Use Proxy,Redirection
17 | 307,Temporary Redirect,Redirection
18 | 400,Bad Request,Client Error
19 | 401,Unauthorized,Client Error
20 | 402,Payment Required,Client Error
21 | 403,Forbidden,Client Error
22 | 404,Not Found,Client Error
23 | 405,Method Not Allowed,Client Error
24 | 406,Not Acceptable,Client Error
25 | 407,Proxy Authentication Required,Client Error
26 | 408,Request Timeout,Client Error
27 | 409,Conflict,Client Error
28 | 410,Gone,Client Error
29 | 411,Length Required,Client Error
30 | 412,Precondition Failed,Client Error
31 | 413,Request Entity Too Large,Client Error
32 | 414,Request-URI Too Long,Client Error
33 | 415,Unsupported Media Type,Client Error
34 | 416,Requested Range Not Satisfiable,Client Error
35 | 417,Expectation Failed,Client Error
36 | 500,Internal Server Error,Server Error
37 | 501,Not Implemented,Server Error
38 | 502,Bad Gateway,Server Error
39 | 503,Service Unavailable,Server Error
40 | 504,Gateway Timeout,Server Error
41 | 505,HTTP Version Not Supported,Server Error
--------------------------------------------------------------------------------
/splunk/cribldemo/appserver/static/dashboard.js:
--------------------------------------------------------------------------------
1 | const name = undefined;
2 | const email = undefined;
3 |
4 | /* pipelines */
5 | Array.from(document.getElementsByClassName('pipeline-name')).forEach(element => {
6 | const pipelineId = element.id;
7 | element.href = `https://${window.location.hostname}:9000/pipelines/${pipelineId}`;
8 | });
9 |
10 | /* eslint-disable */
11 |
12 | (function () {
13 | var w = window;
14 | var ic = w.Intercom;
15 | if (typeof ic === "function") {
16 | ic('reattach_activator');
17 | ic('update', intercomSettings);
18 | } else {
19 | var d = document;
20 | var i = function () {
21 | i.c(arguments)
22 | };
23 | i.q = [];
24 | i.c = function (args) {
25 | i.q.push(args)
26 | };
27 | w.Intercom = i;
28 | var loaded = false;
29 | function l() {
30 | if(loaded) return;
31 | loaded = true;
32 | var s = d.createElement('script');
33 | s.type = 'text/javascript';
34 | s.async = true; s.src = 'https://widget.intercom.io/widget/s8fj4krt';
35 | var x = d.getElementsByTagName('script')[0];
36 | x.parentNode.insertBefore(s, x);
37 | }
38 | if(d.readyState == 'complete') { // 'load' has already fired
39 | l();
40 | } else if (w.attachEvent) {
41 | w.attachEvent('onload', l);
42 | } else {
43 | w.addEventListener('load', l, false);
44 | }
45 | // last ditch effort to call load
46 | setTimeout(l, 5000);
47 | }
48 | }
49 | )()
50 |
51 | const intercomSettings = {
52 | app_id: "s8fj4krt",
53 | name,
54 | email,
55 | };
56 | console.log('intercomSettings: ', intercomSettings);
57 | window.Intercom('boot', intercomSettings);
58 | window.Intercom('update');
59 |
--------------------------------------------------------------------------------
/splunk/cribldemo/default/data/ui/views/route.xml:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/universalforwarder/gogen/samples/products.sample:
--------------------------------------------------------------------------------
1 | CC-P3-OTTERBOX-OBIPHONE4
2 | CC-P3-OTTERBOX-OBIPHONE5
3 | CC-P3-BELKIN-SILBLKIPH4
4 | CC-P3-BELKIN-SILBLKIPH5
5 | CC-P3-APPLE-BUMPIPHONE4
6 | CC-P4-OTTERBOX-OBDROID4
7 | CC-T7-ZAGG-FOLIOMINI
8 | CC-T7-BELKIN-SLEEVE
9 | CC-T10-RIM-BBERRYPLAY
10 | CC-T11-ZAGG-FOLIO
11 | CC-T11-BELKIN-SLEEVE
12 | DP-IPHONE4
13 | DP-IPHONE5
14 | DP-NOKLUMIA
15 | DP-HTCONE
16 | DP-HTCREZOUND
17 | DP-HTCDROIDINC
18 | DP-MOTDROID2
19 | DP-MOTDROID3
20 | DP-MOTDROIDRAZ
21 | DP-SAMSGALAX
22 | DP-SAMSGALAX3
23 | DP-SAMSGALAX4
24 | DP-SAMSGALAXTAB
25 | BT-HS-BEATSWIRELESS
26 | BT-HS-PLANT-M25
27 | BT-HS-PLANT-VOYLEGEND
28 | BT-HS-JAWB-ICONTHD
29 | BT-HS-JABRA-WAVE
30 | BT-HS-SAMS-HM1300
31 | BT-SP-JAWB-JAMBOX
32 | BT-SP-JAWB-JAMBOXBIG
33 | BT-SP-BOSESNDLNK2
34 | BT-KB-LOGITECH
35 | BT-MO-MOT-BTMOUSE
36 | BT-CK-JABRA-FREEWAY
37 | BT-CK-D-ROADSTER2
38 | BA-MOPHIE-JUICEPACKPLUS
39 | BA-MOPHIE-JUICEPACKAIR
40 | BA-NOK-LUMIA
41 | BA-HTC-REZOUND
42 | BA-SAMS-STELLAR
43 | MC-SANDISK-MICROSD4GB
44 | MC-SANDISK-MICROSD8GB
45 | MC-SANDISK-MICROSD16GB
46 | MC-SANDISK-MICROSD32GB
47 | MC-SANDISK-MICROSD64GB
48 | MC-SANDISK-READER
49 | MC-INTUIT-CCREADER
50 | MC-SQUARE-CCREADER
51 | CH-APPLE-5W
52 | CH-APPLE-10W
53 | CH-APPLE-12W
54 | CH-APPLE-5WL
55 | CH-APPLE-10WL
56 | CH-APPLE-12WL
57 | CH-MOT-MICROUSB
58 | CH-RIM-MICROUSB
59 | CH-SAMS-MICROUSB
60 | CH-NOK-INDUCTIVE
61 | HS-APPLE-EARBUDS
62 | HS-KLIPSCH-IMAGEONE
63 | HS-SENNH-CX870
64 | HS-BOSE-MIE2I
65 | HS-SKULLC-MERGER
66 | HS-MONST-NERGY
67 | HS-PLANT-MX200
68 | MO-IBOLT-MOUNT
69 | MO-MOT-RAZRM
70 | MO-IGRIP-WINDOW
71 | MO-IGRIP-VENT
72 | AC-ASSTCHARMS
73 | AC-BLING
74 | AC-SIERRA-HOTSPOT3G
75 | AC-SIERRA-HOTSPOT4G
76 | AC-MOTO-HOTSPOT3G
77 | AC-MOTO-HOTSPOT4G
78 | AC-SAMS-NETEXTEND
--------------------------------------------------------------------------------
/cribl/master/groups/logs/local/cribl/auth/certs/splunk_server.crt:
--------------------------------------------------------------------------------
1 | -----BEGIN CERTIFICATE-----
2 | MIIFhDCCA2wCCQCKz+jNy5hTsTANBgkqhkiG9w0BAQUFADCBgzELMAkGA1UEBhMC
3 | VVMxEzARBgNVBAgMCkNhbGlmb3JuaWExFjAUBgNVBAcMDVNhbiBGcmFuY2lzY28x
4 | EjAQBgNVBAoMCUNyaWJsIEluYzEgMB4GA1UECwwXTWt0ZyBEZXB0IChjbGllbnQg
5 | cGFzcykxETAPBgNVBAMMCGNyaWJsLmlvMB4XDTIwMDEyMTAwMTgyN1oXDTIwMDIy
6 | MDAwMTgyN1owgYMxCzAJBgNVBAYTAlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRYw
7 | FAYDVQQHDA1TYW4gRnJhbmNpc2NvMRIwEAYDVQQKDAlDcmlibCBJbmMxIDAeBgNV
8 | BAsMF01rdGcgRGVwdCAoY2xpZW50IHBhc3MpMREwDwYDVQQDDAhjcmlibC5pbzCC
9 | AiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAPWqJhx4D+QbIgClKpBc1V/d
10 | w6/Jpilw7hklCnYJkZigH/Jh5OeOH3dg8Cd/V2GvOnJ246tdEejzVM9e9vRvtE9Y
11 | cv/54PLxYAkGRep5WqERGO47PXFtMA4TBZoEIQgUI6bhWNZ9XAViO+h8/OpGM4zg
12 | r0jbWwI7wfMyBXATF32u/XLKWDoAz7qY8nCQFF0pRw6JfCuxa+MW0IhzAUnR325Z
13 | /KLLzYu6EppHRL3HdN7uOBuR+4rSQNCRRwJs9ooulJWCe+UR/fKxj+CJlo6JO+U8
14 | N4hvCxLF1huIDwQ56/wIrdKn9JeKFZTXR5fjtfHtbiEFRFYF/v04A1ggcPfPMNqo
15 | 44N8ZnTMALigZnbDGGQU4SWvrgR9HhpvFb4lDmM9YK6FfM2LtAugsqpaBEJcERqk
16 | Ixx+zt1I/1Xv4cwtI+lxEB8yTRK8fhCUTtCnRH6vrqFG2zFetLfAhNoLl0a7kPLH
17 | YA8gg+l6Idx8bPpjH02bknkzjiy601YBXg6/VlwYMYrKMgB2bzgYNGu0Kp+rjPsz
18 | z7t5c8jHrfFBqhRGWp+Q+IU3Nz84cJgPm9JHdhb+0OMeMloo20TVMeqFw0EwnK28
19 | Z393yyaOYLFtVwTzDFqwPWTFebo0KU+spMqWWG1wXzn/6KBR51r4YMZklbhI1JVA
20 | HuppinbXkcyB47SCoDq3AgMBAAEwDQYJKoZIhvcNAQEFBQADggIBAN0cZKubgY7t
21 | 01kT7jeXpQr4AcA5BmTdEKfvK/j5VuLUe7nDClCdZsZGDldIBlVJl3h4YutWBGMC
22 | JBpYebi/q6jC9mF7wBdpCOpY6QYS452Q1gfmIKIUpLW8MMNtJqTbSklMgoYWrOtZ
23 | fgvjY+ftDIpCtb622MeJZg3vsIisb5GgNJTkysv0ZbVuxsw1PasMUNni4M8onD02
24 | YfuPUx/VB5RKw8PhcAryAno1Gz6vnLDP28oKJ2BqQQu6JJOikif4tE6gVOPIUKF8
25 | 0FfcNezatn8yqFYS65GLJXvD120vqpv6SbWBl6fqKlhdp8rHv3wXbuqXqGpZDlnX
26 | viRwSyBcjOjzsStolOqLbwJrv/qgUxGd4BEXlNKiH4ZilDHU9cT9+5GEkhtwPyK0
27 | hww45/UA9ocQXbGHUMHqAYz+kBBRnc3E3ZPp+Ag6SqETieOMiTAHweX6nW/UpWLz
28 | fkg+/PQ0OUZg5w3dDeFoTN9H4QWGpNi6V68X5KmL0QgwDW75i7shLKSNrwPwB5Jj
29 | aU7y5oCv7WAHdDYT/4QMX2SHpay5rdgvdJvBRLcwWCHc/1b59jKii9njo9jYSeja
30 | vD0auOPBIBS2IMU/EJaU8PN4+DBl1tCcHNjCSXWVvyktt7X3Yvl63+r0YmV5NPoK
31 | vMYlfqjnaYC7hob63y3sqlyolX3hD8mP
32 | -----END CERTIFICATE-----
--------------------------------------------------------------------------------
/cribl/master/groups/logs/local/cribl/auth/certs/splunk_server.pem:
--------------------------------------------------------------------------------
1 | -----BEGIN CERTIFICATE-----
2 | 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
31 | 1PTK+JXTGdIAMWNA3ol99S4mukG34Pm3
32 | -----END CERTIFICATE-----
--------------------------------------------------------------------------------
/universalforwarder/gogen/samples/external_ips.sample:
--------------------------------------------------------------------------------
1 | 12.130.60.4
2 | 12.130.60.5
3 | 125.17.14.100
4 | 128.241.220.82
5 | 130.253.37.97
6 | 131.178.233.243
7 | 141.146.8.66
8 | 12.130.60.4
9 | 12.130.60.5
10 | 125.17.14.100
11 | 128.241.220.82
12 | 130.253.37.97
13 | 131.178.233.243
14 | 141.146.8.66
15 | 12.130.60.4
16 | 12.130.60.5
17 | 125.17.14.100
18 | 128.241.220.82
19 | 130.253.37.97
20 | 131.178.233.243
21 | 141.146.8.66
22 | 12.130.60.4
23 | 12.130.60.5
24 | 125.17.14.100
25 | 128.241.220.82
26 | 130.253.37.97
27 | 131.178.233.243
28 | 141.146.8.66
29 | 12.130.60.4
30 | 12.130.60.5
31 | 125.17.14.100
32 | 128.241.220.82
33 | 130.253.37.97
34 | 131.178.233.243
35 | 141.146.8.66
36 | 12.130.60.4
37 | 12.130.60.5
38 | 125.17.14.100
39 | 128.241.220.82
40 | 130.253.37.97
41 | 131.178.233.243
42 | 141.146.8.66
43 | 12.130.60.4
44 | 12.130.60.5
45 | 125.17.14.100
46 | 128.241.220.82
47 | 130.253.37.97
48 | 131.178.233.243
49 | 141.146.8.66
50 | 12.130.60.4
51 | 12.130.60.5
52 | 125.17.14.100
53 | 128.241.220.82
54 | 130.253.37.97
55 | 131.178.233.243
56 | 141.146.8.66
57 | 12.130.60.4
58 | 12.130.60.5
59 | 125.17.14.100
60 | 128.241.220.82
61 | 130.253.37.97
62 | 131.178.233.243
63 | 141.146.8.66
64 | 12.130.60.4
65 | 12.130.60.5
66 | 125.17.14.100
67 | 128.241.220.82
68 | 130.253.37.97
69 | 131.178.233.243
70 | 141.146.8.66
71 | 12.130.60.4
72 | 12.130.60.5
73 | 125.17.14.100
74 | 128.241.220.82
75 | 130.253.37.97
76 | 131.178.233.243
77 | 141.146.8.66
78 | 12.130.60.4
79 | 12.130.60.5
80 | 125.17.14.100
81 | 128.241.220.82
82 | 130.253.37.97
83 | 131.178.233.243
84 | 141.146.8.66
85 | 12.130.60.4
86 | 12.130.60.5
87 | 125.17.14.100
88 | 128.241.220.82
89 | 130.253.37.97
90 | 131.178.233.243
91 | 141.146.8.66
92 | 142.162.221.28
93 | 142.233.200.21
94 | 194.215.205.19
95 | 201.122.42.235
96 | 201.28.109.162
97 | 201.3.120.132
98 | 201.42.223.29
99 | 203.92.58.136
100 | 212.235.92.150
101 | 212.27.63.151
102 | 217.132.169.69
103 | 59.162.167.100
104 | 74.125.19.106
105 | 81.11.191.113
106 | 82.245.228.36
107 | 84.34.159.23
108 | 86.212.199.60
109 | 86.9.190.90
110 | 87.194.216.51
111 | 89.167.143.32
112 | 90.205.111.169
113 | 92.1.170.135
114 | 1.16.0.0
115 | 1.19.11.11
116 | 27.1.0.0
117 | 27.1.11.11
118 | 27.35.0.0
119 | 27.35.11.11
120 | 27.96.128.0
121 | 27.96.191.11
122 | 27.101.0.0
123 | 27.101.11.11
124 | 27.102.0.0
125 | 27.102.11.11
126 | 27.160.0.0
127 | 27.175.11.11
128 | 27.176.0.0
129 | 193.33.170.23
130 | 194.146.236.22
131 | 194.8.74.23
132 | 195.216.243.24
133 | 195.69.160.22
134 | 195.69.252.22
135 | 195.80.144.22
136 | 200.6.134.23
137 | 202.164.25.24
138 | 203.223.0.20
139 | 217.197.192.20
140 | 62.216.64.19
141 | 64.66.0.20
142 | 69.80.0.18
143 | 87.240.128.18
144 | 89.11.192.18
145 | 91.199.80.24
146 | 91.205.40.22
147 | 91.208.184.24
148 | 91.214.92.22
149 | 94.229.0.20
150 | 94.229.0.21
--------------------------------------------------------------------------------
/cribl/master/groups/logs/local/cribl/auth/certs/splunk_server.key:
--------------------------------------------------------------------------------
1 | -----BEGIN RSA PRIVATE KEY-----
2 | MIIJKgIBAAKCAgEA9aomHHgP5BsiAKUqkFzVX93Dr8mmKXDuGSUKdgmRmKAf8mHk
3 | 544fd2DwJ39XYa86cnbjq10R6PNUz1729G+0T1hy//ng8vFgCQZF6nlaoREY7js9
4 | cW0wDhMFmgQhCBQjpuFY1n1cBWI76Hz86kYzjOCvSNtbAjvB8zIFcBMXfa79cspY
5 | OgDPupjycJAUXSlHDol8K7Fr4xbQiHMBSdHfbln8osvNi7oSmkdEvcd03u44G5H7
6 | itJA0JFHAmz2ii6UlYJ75RH98rGP4ImWjok75Tw3iG8LEsXWG4gPBDnr/Ait0qf0
7 | l4oVlNdHl+O18e1uIQVEVgX+/TgDWCBw988w2qjjg3xmdMwAuKBmdsMYZBThJa+u
8 | BH0eGm8VviUOYz1groV8zYu0C6CyqloEQlwRGqQjHH7O3Uj/Ve/hzC0j6XEQHzJN
9 | Erx+EJRO0KdEfq+uoUbbMV60t8CE2guXRruQ8sdgDyCD6Xoh3Hxs+mMfTZuSeTOO
10 | LLrTVgFeDr9WXBgxisoyAHZvOBg0a7Qqn6uM+zPPu3lzyMet8UGqFEZan5D4hTc3
11 | PzhwmA+b0kd2Fv7Q4x4yWijbRNUx6oXDQTCcrbxnf3fLJo5gsW1XBPMMWrA9ZMV5
12 | ujQpT6ykypZYbXBfOf/ooFHnWvhgxmSVuEjUlUAe6mmKdteRzIHjtIKgOrcCAwEA
13 | AQKCAgEAowOlBn8lDFh017jB5cm0TUj68Ur918H4PPc3Wdw/oOegS1Zqbr0AZFcP
14 | BSaa9VcxkYMS0EOR/uJ5BKIffVQicgRfSzyk6JEDCPoAqvacDQUrZeope3rYyH4W
15 | 2Xyj7phuj+445RuKVIg6+Kr3qP2sd28g4VetrG265YXr1dLVY7EavXFH2jVvooKb
16 | XdY9rRQW8q6IlvXEgYxCFEk8MZ/yg2dzHRPf8Tgn3/gqxUP1aXjqAmF8aUHbgIrm
17 | c9WaQ1dlgVB0piyqNsFcl8K1BSBLfnHW59HHp01gJiTC0isdTMD1lzOcOnKGn527
18 | BC82LLNAwOidz/dqnNzuWywrykTSRPmvwnV/qtBSJruxh7Gdzq9bu3+ANDeTMUyc
19 | SViLssHBdaxVmrIk5d+x9mgKgpuUJM348X5YimlS+2+Ckhbd5HVkR17Ggqlm0NFB
20 | VWfHUegPtKG/FgNje1fOHOtXJBaWhtUaAFuzfkV1eYgz5OvFYXNyrHoOqh+3FVWD
21 | KxxyF8fZQ6gO5KQkXh3Qma64LrtlhyZjcpYzMXwvQxw0T54+K86DZdPC90R0ZGP7
22 | 9/y7btND+zmJnqLnFZEvD2tPH1cuTRxmukndoigEEn3cAo3IeZeTQKzRmbrqUAJU
23 | 0ZhiRqwFb55rtee0qlrMcdQzkqpx3Ct7ArHkSG82cdsRYHGv1AECggEBAP7Zc8TE
24 | dChSYfQtsLmXfdLkLG+o68gYd3rkCpI7WnISqP1shTNKigwLu2Eh/7lGWGeU3Fd9
25 | thEcIXtokmmXVNXwzOm38Wi9Bpe1N4YYHx7pSRpEIZtywUazm2idjy9oPrSLEQlg
26 | v+dz7jNFSgp19+pXp/7RJHEuJ9CcypYXfiYRYtBfV/sHl8AIhYfASEgpE4o92S+r
27 | ck3LnygrZ7LLD/2QZ8CcuPM9B1VCKbvVV8EuYrjYaUSiZBgZz9VK7iz2ZNJbxswe
28 | Kbs6XTguILgFZo4B8IwKoQidtl9MyWddVrxpWXG0CIV6JunVQOf75uJP2n0GFnXq
29 | K0nMlgv0MqDaLscCggEBAPbGFMW/k0nYNdBvYc3BssEURKCuVBff6Nd7OfMl2i/H
30 | Ag8/5lhqHkfX+AyoXeoNQJ93FXGqZA1Uk/Ihbxy+hu30lGJ/FP08FMVMs9M0suyw
31 | E+FQF9klttVPtbo3OXHRgGQEJeXa3MIIi2c3PyK51XOzkLUMsJv1HYoWmI4Kwbmz
32 | lco+VUwR5yj9zC6SGm2hrTJEULZwsuCLG5eRQOfe/tR+madXNcqAXqpWGl29H5oD
33 | /m690z47LsVa+TEjThRVorSehPVgoByULuX1FheMR2UHginhNtwHG5UV9NyLY3mu
34 | gliL4PYu7wVebP6MBrjPqdL46MkDOYsjxSUaq98KZJECggEAEpN1Hc2YDexbWXoP
35 | HKgPMtUQ7B6q+Q3Xf6ypnJkY8aGskbRcTS3MvC4KvXzF8BJRlVNDcFkocTzUr/Mi
36 | YPH37BQ+S3bt8M1+coZyAqM1eYJVosV+kZ8euXGUDV8WtcTqdSyB1GYp9sv7e988
37 | E2Ef7gPvqeJCvsE3g7w6BBC4UDwKMNgSSKj4BbZZTVjVq/TaiMQTVacwkL0b38iy
38 | KVUl2DyzY1XJIWm8ZBmLgzZ8zAb+iSy1F5yioSMYhBqPG9Xl6XNpHS3BqvUJIHQ0
39 | TFWQcR9xEjQgIsmkJnQpZhBmpxsiuuf9iwUpWvgBYCd7X9mkOmK8NmIYP6va8Aof
40 | upvMtwKCAQEAygDFmkZC/EzHaHL0nah0egbsUpfBcLWydUmC213d6ARA1FjbZv6f
41 | APJyM3JTRjdI8gBaBmyTcDIO1UK3INF5xCnUmXgrp0vaONOb1EUsPgG4lFSq4O81
42 | ZhHU0bVJCbmUHssidrCcyxyReJFJ1lRGvWp9Byd3HoMchiAPCx8VC71M3Xv++MEi
43 | 93QiAvFIPvv8ucwgQeepFZPppz2Y4vWwpiNoBgqmlrhURZ0sAhXBW6LvUJmE5Uku
44 | 9RCOMcITtSOQh8fHUNGi3yIR7d2dEvOascHetAeOj7glxPlvMmXLrRzDyFXgdcVf
45 | lYaBNDFNg1VCT9e/PmSsYxCJ3eCiVna8cQKCAQEA17Ym8ZhlrCARy/aaTNVoL0q2
46 | VeBI8xYmctFqOrad8Xyha4aZD8M84FJlUcRSG1p8fqCSoEKX2zLriaEDQL5221QC
47 | J756+Eq0QQ5TEeKrc+LhEecAwlnLMmylfe2clUIqi2WBqh4wPtTZULMoiyK4QBdl
48 | ZJrq5/MU+Z7Ta8zHIUQACgPRdZqz3X/uIqUc/VK/zShzI9n7sp7zBqwYbTN61LCo
49 | nQc9ARZArl2FkIns/Aks+K0AEPnDHgEHrv/XGHSv4v4nVvBx5BZimqyLyNUbpg7/
50 | YGNdFMAz6mkXuWGyZVtVINK5mIV4UJ2zSKEXQaF6ES2sqKZm8a3GWrptbkt3iw==
51 | -----END RSA PRIVATE KEY-----
--------------------------------------------------------------------------------
/splunk/cribldemo/default/data/ui/views/troubleshooting.xml:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/universalforwarder/gogen/samples/shopping.yml:
--------------------------------------------------------------------------------
1 | begin: now
2 | count: 10
3 | randomizeCount: 0.5
4 | earliest: -3s
5 | interval: 1
6 | latest: now
7 | lines:
8 | - _raw: $externalIP$ - - [$ts$] "$method$ $uri$&JSESSIONID=$sessionId$ HTTP/1.1" $httpstatus$ $size$ "$referrerUri$" "$userAgent$" $timeTaken$
9 | host: $webHost$
10 | index: cribl
11 | source: /opt/apache/log/access_combined.log
12 | sourcetype: access_combined
13 | name: shoppingapache
14 | # rater: partial_outage
15 | singlePass: false
16 | generator: timeTaken
17 | tokens:
18 | - format: template
19 | name: ts
20 | replacement: '02/Jan/2006:15:04:05 -0700'
21 | type: gotimestamp
22 | - format: template
23 | name: method
24 | type: weightedChoice
25 | weightedChoice:
26 | - weight: 4
27 | choice: GET
28 | - weight: 1
29 | choice: POST
30 | - format: template
31 | name: uri
32 | type: weightedChoice
33 | weightedChoice:
34 | - weight: 2
35 | choice: "/cart.do?action=$action$&itemId=$itemId$&product_id=$productId$"
36 | - weight: 2
37 | choice: "/product.screen?product_id=$productId$"
38 | - weight: 3
39 | choice: "/category.screen?category_id=$catId$"
40 | - weight: 1
41 | choice: "/oldlink?item_id=$itemId$"
42 | - weight: 5
43 | choice: "/static/$staticFile$?"
44 | - format: template
45 | group: 3
46 | name: webHost
47 | sample: webhosts.csv
48 | srcField: host
49 | field: host
50 | type: fieldChoice
51 | # - format: template
52 | # group: 3
53 | # name: webIP
54 | # sample: webhosts.csv
55 | # srcField: ip
56 | # type: fieldChoice
57 | - format: template
58 | name: externalIP
59 | sample: external_ips.sample
60 | type: choice
61 | - weightedChoice:
62 | - weight: 2
63 | choice: "purchase"
64 | - weight: 4
65 | choice: "addtocart"
66 | - weight: 1
67 | choice: "remove"
68 | - weight: 6
69 | choice: "view"
70 | - weight: 2
71 | choice: "changequantity"
72 | format: template
73 | name: action
74 | type: weightedChoice
75 | - format: template
76 | name: itemId
77 | sample: items.sample
78 | type: choice
79 | - format: template
80 | name: productId
81 | sample: products.sample
82 | type: choice
83 | - format: template
84 | name: catId
85 | sample: categories.sample
86 | type: choice
87 | - format: template
88 | name: httpstatus
89 | type: weightedChoice
90 | weightedChoice:
91 | - weight: 9
92 | choice: "200"
93 | - weight: 2
94 | choice: "503"
95 | - weight: 1
96 | choice: "400"
97 | - weight: 1
98 | choice: "404"
99 | - weight: 1
100 | choice: "406"
101 | - format: template
102 | name: referrerUri
103 | type: weightedChoice
104 | weightedChoice:
105 | - weight: 2
106 | choice: "/cart.do?action=$referrerAction$&itemId=$referrerItemId$&product_id=$referrerProductId$"
107 | - weight: 2
108 | choice: "/product.screen?product_id=$referrerProductId$"
109 | - weight: 3
110 | choice: "/category.screen?category_id=$referrerCatId$"
111 | - weight: 1
112 | choice: "/oldlink?item_id=$referrerItemId$"
113 | - choice:
114 | - "purchase"
115 | - "addtocart"
116 | - "remove"
117 | - "view"
118 | - "changequantity"
119 | format: template
120 | name: referrerAction
121 | type: choice
122 | - format: template
123 | name: referrerItemId
124 | sample: items.sample
125 | type: choice
126 | - format: template
127 | name: referrerProductId
128 | sample: products.sample
129 | type: choice
130 | - format: template
131 | name: referrerCatId
132 | sample: categories.sample
133 | type: choice
134 | - format: template
135 | name: userAgent
136 | sample: useragents.sample
137 | type: choice
138 | - format: template
139 | name: size
140 | lower: 200
141 | replacement: int
142 | type: random
143 | upper: 4000
144 | - format: template
145 | name: sessionIdForGenerator
146 | sample: session.csv
147 | type: fieldChoice
148 | srcField: sessionId
149 | type: fieldChoice
150 | - format: template
151 | name: staticFile
152 | type: weightedChoice
153 | weightedChoice:
154 | - weight: 2
155 | choice: jquery.js
156 | - weight: 2
157 | choice: app.js
158 | - weight: 5
159 | choice: $img$.jpg
160 | - format: template
161 | name: img
162 | type: random
163 | replacement: int
164 | lower: 1
165 | upper: 10000
166 |
--------------------------------------------------------------------------------
/splunk/cribldemo/default/data/ui/views/start.xml:
--------------------------------------------------------------------------------
1 |
2 | Start
3 |
4 |
5 |
6 |
7 |
8 | Welcome To Cribl Beta!
9 |
10 |
11 |
Cribl helps you process machine data - logs, instrumentation data, application data, metrics, etc. - in real-time and deliver them to your analysis platform of choice.
12 | It helps you enrich your logs with information from other systems, redact sensitive information, encrypt at field level, sample, and filter unneeded junk.
13 |
14 |
15 | Contact us:
16 |
23 |
24 |
25 |
26 |
27 | How Does Cribl Work?
28 |
29 | In a Splunk environment, Cribl is deployed as a Splunk app. Depending on your architecture,
30 | it can reside either on a heavy forwarder (HF) or on an indexer (IDX) . It will receive events from the local Splunk, process it and then send it back to its indexing queue.
31 | Deployment and Configuration
32 |
33 | Single Server: Install the app on that instance.
34 | Distributed Environment: Install the app on a HF.
35 |
36 | Configuration is done via _INDEX_AND_FORWARD_ROUTING settings to achieve the necessary data routing. By default all data except internal indexes are routed out to Cribl and back in to Splunk.
37 |
38 | Data Flow Architecture
39 |
40 |
41 |
42 | Routes : A route finds the right pipeline to send events to.
43 | Pipelines : A pipeline is a series of functions executed in order.
44 | Functions : A function is code that processes an event.
45 |
46 |
47 |
48 |
49 |
50 | What's In The Demo?
51 |
52 | This instance generates sample live data which is passed thru and transformed by Cribl in real-time. There is a number of dashboards for each use-case,
53 | including PII Obfuscation , Smart Sampling , Index-time Fields and Index-time Lookups .
54 |
55 | The Overview page lists all the dashboards and their respective descriptions.
56 |
57 |
58 | Go To Cribl Management UI
62 |
(same credentials as here)
63 |
64 |
65 | Walkthrough of processing data in real-time with Cribl .
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
--------------------------------------------------------------------------------
/splunk/cribldemo/default/data/ui/views/prettify.xml:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/splunk/cribldemo/default/data/ui/views/overview.xml:
--------------------------------------------------------------------------------
1 |
2 | Overview
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 | Automatically obfuscate sensitive content using common,
out of the box Personally Identifiable Information categories.
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 | Hash parts of, or entire events with any of the available hash functions.
Overwrite or append hash as necessary.
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 | Find and replace content based on known patterns.
Manually mask content based that is deemed sensitive.
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 | Extract index-time fields based on event pattern matching.
Or apply significantly more complex evaluations.
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 | Easily clone data based on event pattern matching.
Or apply more complex evaluations.
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 | Encrypt content using any of the out of the box algorithms.
Role-base decrypt on search or report .
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 | Drop parts of, or entire events based on event pattern matching.
Or bases selection on more complex evaluations.
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 | Enrich events with static or dynamic lookups.
E.g., CSV files, embedded key-value store, GeoIP, DNS etc. at index-time .
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 | Change legacy, unwieldy events into friendlier KV pair or JSON format.
Add, drop JSON fields.
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 | Sample noisy, high-volume low-value data smartly.
Your aggregate analysis remains statistically significant.
100 |
101 |
102 |
103 |
104 |
105 |
106 |
--------------------------------------------------------------------------------
/splunk/cribldemo/default/data/ui/views/suppress.xml:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/splunk/cribldemo/default/data/ui/views/hash.xml:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/splunk/cribldemo/default/data/ui/views/encrypt.xml:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/splunk/cribldemo/default/data/ui/views/trim.xml:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/splunk/cribldemo/default/data/ui/views/indextimefields.xml:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/splunk/cribldemo/default/data/ui/views/pii.xml:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/universalforwarder/client.pem:
--------------------------------------------------------------------------------
1 | -----BEGIN CERTIFICATE-----
2 | MIIFhDCCA2wCCQDDpEaAOXt89DANBgkqhkiG9w0BAQUFADCBgzELMAkGA1UEBhMC
3 | VVMxEzARBgNVBAgMCkNhbGlmb3JuaWExFjAUBgNVBAcMDVNhbiBGcmFuY2lzY28x
4 | EjAQBgNVBAoMCUNyaWJsIEluYzEgMB4GA1UECwwXTWt0ZyBEZXB0IChjbGllbnQg
5 | cGFzcykxETAPBgNVBAMMCGNyaWJsLmlvMB4XDTIwMDEyMTAwMTkyOVoXDTIwMDIy
6 | MDAwMTkyOVowgYMxCzAJBgNVBAYTAlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRYw
7 | FAYDVQQHDA1TYW4gRnJhbmNpc2NvMRIwEAYDVQQKDAlDcmlibCBJbmMxIDAeBgNV
8 | BAsMF01rdGcgRGVwdCAoY2xpZW50IHBhc3MpMREwDwYDVQQDDAhjcmlibC5pbzCC
9 | AiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMDbfHP7Beud5ciHNy/O1t3M
10 | GC3XWZoxLMLq7QCFiu3oWwBjb0AyeqQK/8V4eG67P+AvhZ8vbdiVl6e9go6HIVQr
11 | UuldoBwF3Xp7vBLwKLNTifyd1kowK5W/PVTxOGDlnVWbDgLpn44ZoJZeUn3ByK10
12 | R3CMq6Q0F92hTXHscj884rgaql+x3yUrstmh9pgWQ9jZM8s2g3WHYC4nkHUbCS0C
13 | bY5oY3ftr/HO+c0fUwklgUz3qtmm1sqPXFe7dmz5YaLc8kLpH1ajbx8ZVUQ0NgMU
14 | 3JtM5XAQmQEEf7ZaElzdhiqnW7Gvin4pBrc9xooOcUuKZRUxpKhpAiUilNbqc6TE
15 | zM+ZXRhau9hUP4EtIJZ/LdLSRPWd7TpBxdAR4HvxzgKvF9zFxBUuaXIHRzWuNad+
16 | 4pi8BD2uXRUfEsFmsRoZ5OjF++nOBtcoCDYP2IYBfYeGRkMit9j21/EIhSHGvTto
17 | PMU1SS4pAHZ91ft8uuLmf4d/I7KQP2Qdu8rB54OIaCV74YkEe7D5VVdS7qhC28W7
18 | yXqBl7znyPcgk7NH2eySIHjFCvVUPaovyr2fUmCkPdWEp+JsrrlJLBmnFERkLe1R
19 | pW71z93zT7aEqcC2oRv0+yJvY/7ReylNEgfW5iTd7zF/rCOttFUlYKfNTMR60Lx5
20 | 575ROGoptMROcSt1lqPXAgMBAAEwDQYJKoZIhvcNAQEFBQADggIBACDFWqTG/J5v
21 | Pf3vkC89cfXJ0wtfKEdPSjgt7FZbyHyr+Aicx1EDJS9WZqZFhKNPY2Yv+FfM+cVM
22 | 1aTlxf7SPLGYkUdIHlngS/vwhJJri60p8eA1FL/EuAYX/fBSWdzB6O4e5zIo9Ta+
23 | 99m+ktRJ6IXHmKUlmEQh8wzNitGVqaIP9VHb3GhwuwtbL1iKXRbO55mI0fgOcI+F
24 | DOEhzyWbaMBKlD5Zov2iQnDMdyRsqaYe0upEtM43sM6B6F0Aahu4kcK6GxVkNBP7
25 | ZqMlgKxpeHyu8RPTMy5UZZPowulsjHfjuViDHB21/KHGJq0lNo0olx5P8LcUIR7V
26 | AZgX2MQwQj1mlfaNq20+omjASuMhli8nJZ7w4asqOhhYR+MAvDOBy9WZpN8vLUZO
27 | m/D/77m1Vtx0SDI0arH7+WMthBrserDy3Z5rAME7wdWeZKI6sS5PXw3Q8TFualfU
28 | y+7FwFHryoUTHFW7ajlu+IH5qtTlYqiUuJ+bvAiBGtbVCiRZGl2aU0E/sisxpARk
29 | wcZ8M1qyL9Xq/8L8B1OmYmYqHUsxXE8z3BYfMungBIy++hGIONbPPaCWS4wzzmJe
30 | 6jiahPeetc2cckeQB5lYqLBZKfx5ysE0EacvRUKKGOg4SevvEIWavk913Ki+uVPC
31 | 1PTK+JXTGdIAMWNA3ol99S4mukG34Pm3
32 | -----END CERTIFICATE-----
33 | -----BEGIN RSA PRIVATE KEY-----
34 | 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
83 | -----END RSA PRIVATE KEY-----
84 | -----BEGIN CERTIFICATE-----
85 | MIIFhDCCA2wCCQCKz+jNy5hTsTANBgkqhkiG9w0BAQUFADCBgzELMAkGA1UEBhMC
86 | VVMxEzARBgNVBAgMCkNhbGlmb3JuaWExFjAUBgNVBAcMDVNhbiBGcmFuY2lzY28x
87 | EjAQBgNVBAoMCUNyaWJsIEluYzEgMB4GA1UECwwXTWt0ZyBEZXB0IChjbGllbnQg
88 | cGFzcykxETAPBgNVBAMMCGNyaWJsLmlvMB4XDTIwMDEyMTAwMTgyN1oXDTIwMDIy
89 | MDAwMTgyN1owgYMxCzAJBgNVBAYTAlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRYw
90 | FAYDVQQHDA1TYW4gRnJhbmNpc2NvMRIwEAYDVQQKDAlDcmlibCBJbmMxIDAeBgNV
91 | BAsMF01rdGcgRGVwdCAoY2xpZW50IHBhc3MpMREwDwYDVQQDDAhjcmlibC5pbzCC
92 | AiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAPWqJhx4D+QbIgClKpBc1V/d
93 | w6/Jpilw7hklCnYJkZigH/Jh5OeOH3dg8Cd/V2GvOnJ246tdEejzVM9e9vRvtE9Y
94 | cv/54PLxYAkGRep5WqERGO47PXFtMA4TBZoEIQgUI6bhWNZ9XAViO+h8/OpGM4zg
95 | r0jbWwI7wfMyBXATF32u/XLKWDoAz7qY8nCQFF0pRw6JfCuxa+MW0IhzAUnR325Z
96 | /KLLzYu6EppHRL3HdN7uOBuR+4rSQNCRRwJs9ooulJWCe+UR/fKxj+CJlo6JO+U8
97 | N4hvCxLF1huIDwQ56/wIrdKn9JeKFZTXR5fjtfHtbiEFRFYF/v04A1ggcPfPMNqo
98 | 44N8ZnTMALigZnbDGGQU4SWvrgR9HhpvFb4lDmM9YK6FfM2LtAugsqpaBEJcERqk
99 | Ixx+zt1I/1Xv4cwtI+lxEB8yTRK8fhCUTtCnRH6vrqFG2zFetLfAhNoLl0a7kPLH
100 | YA8gg+l6Idx8bPpjH02bknkzjiy601YBXg6/VlwYMYrKMgB2bzgYNGu0Kp+rjPsz
101 | z7t5c8jHrfFBqhRGWp+Q+IU3Nz84cJgPm9JHdhb+0OMeMloo20TVMeqFw0EwnK28
102 | Z393yyaOYLFtVwTzDFqwPWTFebo0KU+spMqWWG1wXzn/6KBR51r4YMZklbhI1JVA
103 | HuppinbXkcyB47SCoDq3AgMBAAEwDQYJKoZIhvcNAQEFBQADggIBAN0cZKubgY7t
104 | 01kT7jeXpQr4AcA5BmTdEKfvK/j5VuLUe7nDClCdZsZGDldIBlVJl3h4YutWBGMC
105 | JBpYebi/q6jC9mF7wBdpCOpY6QYS452Q1gfmIKIUpLW8MMNtJqTbSklMgoYWrOtZ
106 | fgvjY+ftDIpCtb622MeJZg3vsIisb5GgNJTkysv0ZbVuxsw1PasMUNni4M8onD02
107 | YfuPUx/VB5RKw8PhcAryAno1Gz6vnLDP28oKJ2BqQQu6JJOikif4tE6gVOPIUKF8
108 | 0FfcNezatn8yqFYS65GLJXvD120vqpv6SbWBl6fqKlhdp8rHv3wXbuqXqGpZDlnX
109 | viRwSyBcjOjzsStolOqLbwJrv/qgUxGd4BEXlNKiH4ZilDHU9cT9+5GEkhtwPyK0
110 | hww45/UA9ocQXbGHUMHqAYz+kBBRnc3E3ZPp+Ag6SqETieOMiTAHweX6nW/UpWLz
111 | fkg+/PQ0OUZg5w3dDeFoTN9H4QWGpNi6V68X5KmL0QgwDW75i7shLKSNrwPwB5Jj
112 | aU7y5oCv7WAHdDYT/4QMX2SHpay5rdgvdJvBRLcwWCHc/1b59jKii9njo9jYSeja
113 | vD0auOPBIBS2IMU/EJaU8PN4+DBl1tCcHNjCSXWVvyktt7X3Yvl63+r0YmV5NPoK
114 | vMYlfqjnaYC7hob63y3sqlyolX3hD8mP
115 | -----END CERTIFICATE-----
116 |
--------------------------------------------------------------------------------
/splunk/cribldemo/default/data/ui/views/metrics.xml:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/splunk/cribldemo/default/data/ui/views/filter.xml:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/splunk/cribldemo/default/data/ui/views/lookup.xml:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/splunk/cribldemo/default/data/ui/views/smart_sample.xml:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/universalforwarder/gogen/samples/useragents.sample:
--------------------------------------------------------------------------------
1 | Mozilla/5.0 (Linux; U; Android 2.3.7; fr-fr; Nexus S Build/GRK39F) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1
2 | Mozilla/5.0 (iPad; U; CPU OS 4_3_1 like Mac OS X; en-us) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8G4 Safari/6533.18.5
3 | Mozilla/5.0 (iPhone; U; CPU iPhone OS 5_0_1 like Mac OS X; en_US) AppleWebKit (KHTML, like Gecko) Mobile [FBAN/FBForIPhone;FBAV/4.0.3;FBBV/4030.0;FBDV/iPhone3,1;FBMD/iPhone;FBSN/iPhone OS;FBSV/5.0.1;FBSS/2; FBCR/Pelephone;FBID/phone;FBLC/en_US;FBSF/2.0]
4 | Mozilla/5.0 (Linux; U; Android 2.3.3; nb-no; HTC_DesireHD_A9191 Build/GRI40) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1
5 | Mozilla/5.0 (Linux; U; Android 2.3.5; zh-cn; MI-ONE Plus Build/GINGERBREAD) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1
6 | Mozilla/5.0 (Linux; U; Android 2.3.4; en-us; DROID BIONIC Build/5.5.1_84_DBN-62_MR-11) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1
7 | Mozilla/5.0 (iPhone; U; CPU iPhone OS 5_0_1 like Mac OS X; en_US) AppleWebKit (KHTML, like Gecko) Mobile [FBAN/FBForIPhone;FBAV/4.0.3;FBBV/4030.0;FBDV/iPhone3,1;FBMD/iPhone;FBSN/iPhone OS;FBSV/5.0.1;FBSS/2; FBCR/vodafoneUK;FBID/phone;FBLC/en_US;FBSF/2.0]
8 | Mozilla/5.0 (iPad; CPU OS 5_0_1 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) 1Password/3.6.1/361009 (like Mobile/8C148 Safari/6533.18.5)
9 | Mozilla/5.0 (iPhone; CPU iPhone OS 5_0_1 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Version/5.1 Mobile/9A405 Safari/7534.48.3
10 | Mozilla/5.0 (Linux; U; Android 2.2.1; en-us; ADR6400L Build/FRG83D) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1
11 | Mozilla/5.0 (iPad; CPU OS 5_0_1 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Version/5.1 Mobile/9A405 Safari/7534.48.3
12 | Mozilla/5.0 (Linux; U; Android 2.3.4; en-us; ADR6350 Build/GRJ22) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1
13 | Mozilla/5.0 (iPhone; U; CPU iPhone OS 5_0_1 like Mac OS X; en_US) AppleWebKit (KHTML, like Gecko) Mobile [FBAN/FBForIPhone;FBAV/4.0.2;FBBV/4020.0;FBDV/iPhone3,1;FBMD/iPhone;FBSN/iPhone OS;FBSV/5.0.1;FBSS/2; FBCR/AT&T;FBID/phone;FBLC/en_US;FBSF/2.0]
14 | Mozilla/5.0 (Linux; U; Android 2.2.3; en-us; Droid Build/FRK76) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1
15 | Mozilla/5.0 (iPad; CPU OS 5_0_1 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Mobile/9A405
16 | Mozilla/5.0 (iPad; U; CPU OS 4_3_5 like Mac OS X; en-us) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8L1 Safari/6533.18.5
17 | Mozilla/5.0 (iPhone; U; CPU iPhone OS 3_0 like Mac OS X; en-us) AppleWebKit/528.18 (KHTML, like Gecko) Version/4.0 Mobile/7A341 Safari/528.16
18 | BlackBerry9300/5.0.0.955 Profile/MIDP-2.1 Configuration/CLDC-1.1 VendorID/102
19 | Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_2_1 like Mac OS X; en-us) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8C148 Safari/6533.18.5
20 | Mozilla/5.0 (Linux; U; Android 3.1; de-de; GT-P7510 Build/HMJ37) AppleWebKit/534.13 (KHTML, like Gecko) Version/4.0 Safari/534.13
21 | Mozilla/5.0 (iPad; U; CPU OS 4_3_3 like Mac OS X; en-us) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8J3 Safari/6533.18.5
22 | Mozilla/5.0 (iPad; U; CPU OS 4_2_1 like Mac OS X; en-us) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8C148 Safari/6533.18.5
23 | Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_2_6 like Mac OS X; en-us) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8E200 Safari/6533.18.5
24 | Mozilla/5.0 (Linux; U; Android 2.3.6; en-us; Nexus One Build/GRK39F) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1
25 | Mozilla/5.0 (iPad; U; CPU iPhone OS 5_0_1 like Mac OS X; en_US) AppleWebKit (KHTML, like Gecko) Mobile [FBAN/FBForIPhone;FBAV/4.0.3;FBBV/4030.0;FBDV/iPad1,1;FBMD/iPad;FBSN/iPhone OS;FBSV/5.0.1;FBSS/1; FBCR/;FBID/tablet;FBLC/en_US;FBSF/1.0]
26 | Mozilla/5.0 (Linux; U; Android 2.3.3; en-ca; SAMSUNG-SGH-I997R Build/GINGERBREAD) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1
27 | Mozilla/5.0 (BlackBerry; U; BlackBerry 9900; en) AppleWebKit/534.11+ (KHTML, like Gecko) Version/7.0.0.261 Mobile Safari/534.11+
28 | Mozilla/5.0 (iPad; U; CPU OS 4_3_3 like Mac OS X; de-de) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8J2 Safari/6533.18.5
29 | Mozilla/5.0 (iPad; CPU OS 5_0 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Version/5.1 Mobile/9A334 Safari/7534.48.3
30 | Mozilla/5.0 (iPod; CPU iPhone OS 5_0_1 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Version/5.1 Mobile/9A405 Safari/7534.48.3
31 | Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_2_1 like Mac OS X; es-es) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8C148a Safari/6533.18.5
32 | Mozilla/5.0 (iPhone; CPU iPhone OS 5_0_1 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Mobile/9A405
33 | Mozilla/5.0 (iPad; U; CPU OS 4_3_3 like Mac OS X; en-gb) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8J2 Safari/6533.18.5
34 | Mozilla/5.0 (Linux; U; Android 2.1-update1; en-us; HUAWEI-M860 Build/ERE27) AppleWebKit/530.17 (KHTML, like Gecko) Version/4.0 Mobile Safari/530.17
35 | Mozilla/5.0 (Android; Linux armv7l; rv:8.0) Gecko/20111104 Firefox/8.0 Fennec/8.0
36 | Mozilla/5.0 (Linux; U; Android 2.3.4; en-us; DROID3 Build/5.5.1_84_D3G-55) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1
37 | Mozilla/5.0 (Linux; U; Android 3.2.1; en-us; Transformer TF101 Build/HTK75) AppleWebKit/534.13 (KHTML, like Gecko) Version/4.0 Safari/534.13
38 | Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_2_7 like Mac OS X; en-us) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8E303 Safari/6533.18.5
39 | Mozilla/5.0 (iPhone; U; CPU iPhone OS 3_1_3 like Mac OS X; en-us) AppleWebKit/528.18 (KHTML, like Gecko) Mobile/7E18
40 | Mozilla/5.0 (BlackBerry; U; BlackBerry 9850; en-US) AppleWebKit/534.11+ (KHTML, like Gecko) Version/7.0.0.374 Mobile Safari/534.11+
41 | Mozilla/5.0 (Linux; U; Android 2.3.4; en-us; T-Mobile G2 Build/GRJ22) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1
42 | Mozilla/5.0 (Linux; U; Android 2.3.3; en-us; DROIDX Build/4.5.1_57_DX5-35) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1
43 | Mozilla/5.0 (Linux; U; Android 2.3.3; en-us; Sprint APA9292KT Build/GRI40) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1
44 | Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_2_10 like Mac OS X; en-us) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8E600 Safari/6533.18.5
45 | Mozilla/5.0 (Linux; U; Android 2.2.1; en-us; LG-MS690 Build/FRG83) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1
46 | Mozilla/5.0 (Linux; U; Android 2.3.4; en-us; ADR6300 Build/GRJ22) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1
47 | Mozilla/5.0 (Linux; U; Android 2.3.4; en-us; Incredible 2 Build/GRI40) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1
48 | Mozilla/5.0 (BlackBerry; U; BlackBerry 9700; en-US) AppleWebKit/534.8+ (KHTML, like Gecko) Version/6.0.0.526 Mobile Safari/534.8+
49 | Mozilla/5.0 (Linux; U; Android 2.3.3; ro-ro; GT-I9000 Build/GINGERBREAD) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1
50 | Mozilla/5.0 (iPhone; U; CPU iPhone OS 3_1_3 like Mac OS X; en-us) AppleWebKit/528.18 (KHTML, like Gecko) Version/4.0 Mobile/7E18 Safari/528.16
51 | Mozilla/5.0 (Linux; U; Android 2.2; en-us; Comet Build/FRF91) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1
52 | Mozilla/5.0 (Linux; U; Android 2.3.4; en-us; DROID BIONIC 4G Build/5.5.1_84_DBN-55) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1
53 | Mozilla/5.0 (Linux; U; Android 2.3.4; en-us; SPH-M930BST Build/GINGERBREAD) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1
54 | BlackBerry9000/4.6.0.297 Profile/MIDP-2.0 Configuration/CLDC-1.1 VendorID/102
55 | Mozilla/5.0 (Linux; U; Android 2.3.5; en-us; SAMSUNG-SGH-I927 Build/GINGERBREAD) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1
56 | Mozilla/5.0 (iPhone; CPU iPhone OS 5_0 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Version/5.1 Mobile/9A334 Safari/7534.48.3
57 | Mozilla/5.0 (iPad; U; CPU iPhone OS 5_0_1 like Mac OS X; zh_TW) AppleWebKit (KHTML, like Gecko) Mobile [FBAN/FBForIPhone;FBAV/4.0.3;FBBV/4030.0;FBDV/iPad2,1;FBMD/iPad;FBSN/iPhone OS;FBSV/5.0.1;FBSS/1; FBCR/;FBID/tablet;FBLC/zh_TW;FBSF/1.0]
58 | BlackBerry9650/5.0.0.1006 Profile/MIDP-2.1 Configuration/CLDC-1.1 VendorID/105
59 | Mozilla/5.0 (iPhone; U; CPU iPhone OS 5_0_1 like Mac OS X; ja_JP) AppleWebKit (KHTML, like Gecko) Mobile [FBAN/FBForIPhone;FBAV/4.0.3;FBBV/4030.0;FBDV/iPhone3,1;FBMD/iPhone;FBSN/iPhone OS;FBSV/5.0.1;FBSS/2; FBCR/
60 | Mozilla/5.0 (iPad; U; CPU iPhone OS 3_2 like Mac OS X; en-us) AppleWebKit/531.21.10 (KHTML, like Gecko) Version/4.0.4 Mobile/7B314 Safari/531.21.10
61 | Mozilla/5.0 (BlackBerry; U; BlackBerry 9300; en-GB) AppleWebKit/534.8+ (KHTML, like Gecko) Version/6.0.0.600 Mobile Safari/534.8+
62 | Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_3_3 like Mac OS X; en-us) AppleWebKit/533.17.9 (KHTML, like Gecko) Mobile/8J2
63 | Mozilla/5.0 (iPhone; U; CPU iPhone OS 5_0_1 like Mac OS X; ja_JP) AppleWebKit (KHTML, like Gecko) Mobile [FBAN/FBForIPhone;FBAV/4.0.2;FBBV/4020.0;FBDV/iPhone4,1;FBMD/iPhone;FBSN/iPhone OS;FBSV/5.0.1;FBSS/2; FBCR/
64 | Mozilla/5.0 (Linux; U; Android 2.3.3; nl-nl; HTC_DesireHD_A9191 Build/GRI40) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1
65 | Mozilla/5.0 (iPad; U; CPU OS 4_3_3 like Mac OS X; en-us) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8J2 Safari/6533.18.5
66 | Mozilla/5.0 (iPad; U; CPU OS 3_2 like Mac OS X; en-us) AppleWebKit/531.21.10 (KHTML, like Gecko) Version/4.0.4 Mobile/7B367 Safari/531.21.10
67 | Mozilla/5.0 (Linux; U; Android 2.3.4; en-us; SonyEricssonLT15i Build/4.0.2.A.0.42) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1
68 | Mozilla/5.0 (Linux; U; Android 2.3.4; en-us; Sprint APX515CKT Build/GRJ22) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1
69 | Opera/9.80 (Android; Opera Mini/6.5.27452/26.1235; U; en) Presto/2.8.119 Version/10.54
70 | Mozilla/5.0 (Linux; U; Android 2.3.4; ja-jp; SonyEricssonSO-03C Build/4.0.1.C.1.9) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1
71 | Mozilla/5.0 (Linux; U; Android 2.3.7; en-us; GT-I9100 Build/GRJ22) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1
72 | Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_3_5 like Mac OS X; en-gb) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8L1 Safari/6533.18.5
73 | Mozilla/5.0 (Linux; U; Android 2.1-update1; en-gb; Milestone Build/SHOLS_U2_02.36.0) AppleWebKit/530.17 (KHTML, like Gecko) Version/4.0 Mobile Safari/530.17
74 | Mozilla/5.0 (Linux; U; Android 2.2; en-gb; GT-I9000 Build/FROYO) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1
75 | Mozilla/5.0 (Linux; U; Android 2.3.5; ja-jp; SC-02C Build/GINGERBREAD) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1
76 | Mozilla/5.0 (Linux; U; Android 2.3.4; ko-kr; HTC_X515E Build/GRJ22) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1
77 | Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_1 like Mac OS X; en-us) AppleWebKit/532.9 (KHTML, like Gecko) Version/4.0.5 Mobile/8B117 Safari/6531.22.7 (compatible; Googlebot-Mobile/2.1; +http://www.google.com/bot.html)
78 | Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_3_3 like Mac OS X; ja_JP) AppleWebKit (KHTML, like Gecko) Mobile [FBAN/FBForIPhone;FBAV/4.0.3;FBBV/4030.0;FBDV/iPhone2,1;FBMD/iPhone;FBSN/iPhone OS;FBSV/4.3.3;FBSS/1; FBCR/??????????;FBID/phone;FBLC/ja_JP;FBSF/1.0]
79 | Mozilla/5.0 (Linux; U; Android 2.3.6; en-gb; Nexus One Build/GRK39F) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1
80 | Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_3_3 like Mac OS X; en-us) AppleWebKit/528.18 (KHTML, like Gecko) Mobile/7E18
81 | Mozilla/5.0 (Linux; U; Android 2.3.3; en-us; GT-I9100 Build/GINGERBREAD) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1
82 | Mozilla/5.0 (Linux; U; Android 3.2.1; en-us; Xoom Build/HTK75D) AppleWebKit/534.13 (KHTML, like Gecko) Version/4.0 Safari/534.13
83 | BlackBerry8520/5.0.0.681 Profile/MIDP-2.1 Configuration/CLDC-1.1 VendorID/120
84 | Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_3_4 like Mac OS X; fr-fr) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8K2 Safari/6533.18.5
--------------------------------------------------------------------------------
/splunk/singleinstance/bin/cribl_demo_gogen.py:
--------------------------------------------------------------------------------
1 | from __future__ import division
2 | import sys
3 | import os
4 | import xml.dom.minidom
5 | import subprocess
6 | import logging
7 | import logging.handlers
8 | import platform
9 | import urllib
10 | import time
11 |
12 |
13 | def setupLogger(logger=None, log_format='%(asctime)s %(levelname)s [Gogen] %(message)s', level=logging.INFO, log_name="gogen.log", logger_name="gogen"):
14 | """
15 | Setup a logger suitable for splunkd consumption
16 | """
17 | if logger is None:
18 | logger = logging.getLogger(logger_name)
19 |
20 | # Prevent the log messages from being duplicated in the python.log file
21 | logger.propagate = False
22 | logger.setLevel(level)
23 |
24 | file_handler = logging.handlers.RotatingFileHandler(os.path.join(
25 | os.environ['SPLUNK_HOME'], 'var', 'log', 'splunk', log_name), maxBytes=2500000, backupCount=5)
26 | formatter = logging.Formatter(log_format)
27 | file_handler.setFormatter(formatter)
28 |
29 | logger.handlers = []
30 | logger.addHandler(file_handler)
31 |
32 | logger.debug("init %s logger", logger_name)
33 | return logger
34 |
35 |
36 | SCHEME = """
37 | cribldemo Gogen
38 | Generate data using cribldemo Gogen
39 | true
40 | false
41 | xml
42 |
43 |
44 |
45 | GoGen input name
46 | Name of this GoGen input
47 |
48 |
49 |
50 | Configuration Descriptor Type
51 | The type of config defined in the Configuration Descriptor field. Defaults to config_dir.
52 | false
53 | false
54 |
55 |
56 | Configuration Descriptor
57 | Short Gogen path (coccyx/weblog for example), full file path,local file in config directory, or URL pointing to YAML or JSON config. Leave blank to use all configs in gogen_assets.
58 | false
59 | false
60 |
61 |
62 |
63 | Count
64 | Count of events to generate every interval. Overrides any amounts set in the Gogen config
65 | false
66 | false
67 |
68 |
69 | Interval
70 | Generate events every interval seconds. Overrides any interval set in the Gogen config
71 | false
72 | false
73 |
74 |
75 | End Intervals
76 | Generate events for endIntervals and stop. Overrides any endInterval set in the Gogen config
77 | false
78 | false
79 |
80 |
81 | Begin
82 | Start generating events at begin time. Can use Splunk's relative time syntax or an absolute time. Overrides any begin setting in the Gogen config
83 | false
84 | false
85 |
86 |
87 | End
88 | End generating events at end time. Can use Splunk's relative time syntax or an absolute time. Overrides any end setting in the Gogen config
89 | false
90 | false
91 |
92 |
93 | Generator Threads
94 | Sets number of generator threads
95 | false
96 | false
97 |
98 |
99 |
100 |
101 |
102 | """
103 |
104 |
105 | def do_validate():
106 | config = get_validation_config()
107 | # TODO
108 | # if error , print_validation_error & sys.exit(2)
109 |
110 | # prints validation error data to be consumed by Splunk
111 |
112 |
113 | def print_validation_error(s):
114 | print "%s " % encodeXMLText(s)
115 |
116 |
117 | def encodeXMLText(text):
118 | text = text.replace("&", "&")
119 | text = text.replace("\"", """)
120 | text = text.replace("'", "'")
121 | text = text.replace("<", "<")
122 | text = text.replace(">", ">")
123 | return text
124 |
125 |
126 | def usage():
127 | print "usage: %s [--scheme|--validate-arguments]"
128 | logger.error("Incorrect Program Usage")
129 | sys.exit(2)
130 |
131 |
132 | def do_scheme():
133 | print SCHEME
134 |
135 |
136 | # read XML configuration passed from splunkd
137 | def get_config():
138 | config = {}
139 |
140 | try:
141 | # read everything from stdin
142 | config_str = sys.stdin.read()
143 | logger.debug("Config Str: %s" % config_str)
144 |
145 | # parse the config XML
146 | doc = xml.dom.minidom.parseString(config_str)
147 | root = doc.documentElement
148 | server_host = str(root.getElementsByTagName(
149 | "server_host")[0].firstChild.data)
150 | if server_host:
151 | logger.debug("XML: Found server_host")
152 | config["server_host"] = server_host
153 | server_uri = str(root.getElementsByTagName(
154 | "server_uri")[0].firstChild.data)
155 | if server_uri:
156 | logger.debug("XML: Found server_uri")
157 | config["server_uri"] = server_uri
158 | session_key = str(root.getElementsByTagName(
159 | "session_key")[0].firstChild.data)
160 | if session_key:
161 | logger.debug("XML: Found session_key")
162 | config["session_key"] = session_key
163 | checkpoint_dir = str(root.getElementsByTagName(
164 | "checkpoint_dir")[0].firstChild.data)
165 | if checkpoint_dir:
166 | logger.debug("XML: Found checkpoint_dir")
167 | config["checkpoint_dir"] = checkpoint_dir
168 | conf_node = root.getElementsByTagName("configuration")[0]
169 | if conf_node:
170 | logger.debug("XML: found configuration")
171 | stanza = conf_node.getElementsByTagName("stanza")[0]
172 | if stanza:
173 | stanza_name = stanza.getAttribute("name")
174 | if stanza_name:
175 | logger.debug("XML: found stanza " + stanza_name)
176 | config["name"] = stanza_name
177 |
178 | params = stanza.getElementsByTagName("param")
179 | for param in params:
180 | param_name = param.getAttribute("name")
181 | logger.debug("XML: found param '%s'" % param_name)
182 | if param_name and param.firstChild and \
183 | param.firstChild.nodeType == param.firstChild.TEXT_NODE:
184 | data = param.firstChild.data
185 | config[param_name] = data
186 | logger.debug("XML: '%s' -> '%s'" %
187 | (param_name, data))
188 |
189 | checkpnt_node = root.getElementsByTagName("checkpoint_dir")[0]
190 | if checkpnt_node and checkpnt_node.firstChild and \
191 | checkpnt_node.firstChild.nodeType == checkpnt_node.firstChild.TEXT_NODE:
192 | config["checkpoint_dir"] = checkpnt_node.firstChild.data
193 |
194 | if not config:
195 | raise Exception, "Invalid configuration received from Splunk."
196 |
197 | # just some validation: make sure these keys are present (required)
198 | # validate_conf(config, "name")
199 | # validate_conf(config, "key_id")
200 | # validate_conf(config, "secret_key")
201 | # validate_conf(config, "checkpoint_dir")
202 | except Exception, e:
203 | raise Exception, "Error getting Splunk configuration via STDIN: %s" % str(
204 | e)
205 |
206 | return config
207 |
208 | # read XML configuration passed from splunkd, need to refactor to support
209 | # single instance mode
210 |
211 |
212 | def get_validation_config():
213 | val_data = {}
214 |
215 | # read everything from stdin
216 | val_str = sys.stdin.read()
217 |
218 | # parse the validation XML
219 | doc = xml.dom.minidom.parseString(val_str)
220 | root = doc.documentElement
221 |
222 | logger.debug("XML: found items")
223 | item_node = root.getElementsByTagName("item")[0]
224 | if item_node:
225 | logger.debug("XML: found item")
226 |
227 | name = item_node.getAttribute("name")
228 | val_data["stanza"] = name
229 |
230 | params_node = item_node.getElementsByTagName("param")
231 | for param in params_node:
232 | name = param.getAttribute("name")
233 | logger.debug("Found param %s" % name)
234 | if name and param.firstChild and \
235 | param.firstChild.nodeType == param.firstChild.TEXT_NODE:
236 | val_data[name] = param.firstChild.data
237 |
238 | return val_data
239 |
240 |
241 | if __name__ == '__main__':
242 | logger = setupLogger(level=logging.DEBUG)
243 |
244 | if len(sys.argv) > 1:
245 | if sys.argv[1] == "--scheme":
246 | do_scheme()
247 | elif sys.argv[1] == "--validate-arguments":
248 | do_validate()
249 | else:
250 | usage()
251 | sys.exit(0)
252 | else:
253 | config = get_config()
254 |
255 | if platform.system() == 'Linux':
256 | exefile = 'gogen_real'
257 | gogen_url = 'https://api.gogen.io/linux/gogen'
258 | elif platform.system() == 'Windows':
259 | exefile = 'gogen_real.exe'
260 | gogen_url = 'https://api.gogen.io/windows/gogen.exe'
261 | else:
262 | exefile = 'gogen_real'
263 | gogen_url = 'https://api.gogen.io/osx/gogen'
264 |
265 | # gogen_path = os.path.join(
266 | # os.environ['SPLUNK_HOME'], 'etc', 'apps', 'splunk_app_gogen', 'bin',
267 | # exefile)
268 | gogen_base_path = os.path.sep.join(
269 | os.path.realpath(__file__).split(os.path.sep)[0:-2])
270 | gogen_path = os.path.join(gogen_base_path, 'bin', exefile)
271 | for i in range(5):
272 | try:
273 | if not os.path.exists(gogen_path):
274 | tmp_path = gogen_path + '.tmp'
275 | urllib.urlretrieve(gogen_url, tmp_path)
276 | os.rename(tmp_path, gogen_path)
277 | os.chmod(gogen_path, 0755)
278 | break
279 | except Exception as e:
280 | logger.error(
281 | 'failed to dowload gogen, retry=%d, err=%s' % (i, str(err)))
282 | time.sleep(i+1)
283 | pass
284 |
285 | args = []
286 | args.append(gogen_path)
287 | # args.append('-v')
288 | args.append('-ot')
289 | args.append('modinput')
290 |
291 | if 'config_type' in config:
292 | config_type = str(config['config_type'])
293 | else:
294 | config_type = 'config_dir'
295 |
296 | if config_type == 'config_dir':
297 | args.append('-cd')
298 | args.append(os.path.join(gogen_base_path, 'gogen_assets'))
299 | else:
300 | args.append('-sd')
301 | args.append(os.path.join(gogen_base_path,
302 | 'gogen_assets', 'samples') + os.path.sep)
303 | if 'config' in config:
304 | args.append('-c')
305 | config_file = str(config['config'])
306 | if config_type == 'local_file':
307 | args.append(os.path.join(
308 | gogen_base_path, 'configs', config_file))
309 | else:
310 | args.append(config_file)
311 |
312 | if 'generator_threads' in config:
313 | args.append('-g')
314 | args.append(str(config['generator_threads']))
315 |
316 | args.append('gen')
317 |
318 | if 'count' in config:
319 | args.append('-c')
320 | args.append(str(config['count']))
321 | if 'gogen_interval' in config:
322 | args.append('-i')
323 | args.append(str(config['gogen_interval']))
324 | if 'end_intervals' in config:
325 | args.append('-ei')
326 | args.append(str(config['end_intervals']))
327 | if 'begin' in config:
328 | args.append('-b')
329 | args.append(str(config['begin']))
330 | if 'end' in config:
331 | args.append('-e')
332 | args.append(str(config['end']))
333 | # if 'begin' not in config and 'end' not in config and 'end_intervals' not in config:
334 | # args.append('-r')
335 |
336 | import pprint
337 | logger.debug('args: %s' % pprint.pformat(args))
338 | logger.debug('command: %s' % ' '.join(args))
339 |
340 | sys.stdout.write("\n")
341 | sys.stdout.flush()
342 | p = subprocess.Popen(args, cwd=gogen_base_path,
343 | shell=False)
344 |
--------------------------------------------------------------------------------