SlideShare a Scribd company logo
Logstash
Integration
+
Origins
‣ Jordan Sissel
‣ Started in 2009
‣ Open Source (Apache License)
‣ Jordan joined Elastic in August 2013
‣ Still Open Source
‣ Will always be Open Source
What is it?
‣ A tool for receiving, processing and outputting
logs, and other data streams.
‣ Pipeline
‣ Input
‣ Filter
‣ Output
Inputs
• couchdb_changes
• drupal_dblog
• elasticsearch
• exec
• eventlog
• file
• ganglia
• gelf
• generator
• graphite
• github
• heartbeat
• heroku
• http
• http_poller
• irc
• imap
• jdbc
• jmx
• kafka
• log4j
• lumberjack
• meetup
• pipe
• syslog
• tcp
• twitter
• unix
• udp
• varnishlog
• wmi
• websocket
• xmpp
• zenoss
• zeromq
• puppet_facter
• relp
• rss
• rackspace
• rabbitmq
• redis
• snmptrap
• stdin
• sqlite
• s3
• sqs
• stomp
Filters
• aggregate
• alter
• anonymize
• collate
• csv
• cidr
• clone
• cipher
• checksum
• date
• dns
• syslog_pri
• sleep
• split
• throttle
• translate
• uuid
• urldecode
• useragent
• xml
• zeromq
• json_encode
• kv
• mutate
• metrics
• multiline
• metaevent
• prune
• punct
• ruby
• range
• drop
• elasticsearch
• extractnumbers
• environment
• elapsed
• fingerprint
• geoip
• grok
• i18n
• json
Outputs
• boundary
• circonus
• csv
• cloudwatch
• datadog
• datadog_metrics
• email
• elasticsearch
• exec
• file
• google_bigquery
• google_cloud_storage
• ganglia
• gelf
• stomp
• statsd
• solr_http
• sns
• syslog
• stdout
• tcp
• udp
• webhdfs
• websocket
• xmpp
• zabbix
• zeromq
• nagios
• null
• nagios_nsca
• opentsdb
• pagerduty
• pipe
• riemann
• redmine
• rackspace
• rabbitmq
• redis
• riak
• s3
• sqs
• graphtastic
• graphite
• hipchat
• http
• irc
• influxdb
• juggernaut
• jira
• kafka
• lumberjack
• librato
• loggly
• mongodb
• metriccatcher
Configuration
input {
plugin_name { settings... }
}
filter {
plugin_name { settings... }
}
output {
plugin_name { settings... }
}
Inputs
file
Read events from a file in real-time,
like tail
file
file {
path => "/path/to/logfile"
}
tcp
Read from TCP socket
tcp
tcp {
host => "ip or hostname"
port => 12345
}
irc
Capture all or part of the
discussion in one or more IRC
channels.
irc
irc {
channels => [ "#zabbix" ]
host => "irc.freenode.org"
nick => "my_nickname"
port => 6667
}
Inputs
• couchdb_changes
• drupal_dblog
• elasticsearch
• exec
• eventlog
• file
• ganglia
• gelf
• generator
• graphite
• github
• heartbeat
• heroku
• http
• http_poller
• irc
• imap
• jdbc
• jmx
• kafka
• log4j
• lumberjack
• meetup
• pipe
• syslog
• tcp
• twitter
• unix
• udp
• varnishlog
• wmi
• websocket
• xmpp
• zenoss
• zeromq
• puppet_facter
• relp
• rss
• rackspace
• rabbitmq
• redis
• snmptrap
• stdin
• sqlite
• s3
• sqs
• stomp
Filters
grok
Parse arbitrary text and structure it.
grok
‣ Parse unstructured log data into something structured.
‣ Perfect for syslog, webserver, & db logs, and in general,
any log format that is generally written for humans.
‣ Ships with 120+ patterns. You can add your own trivially.
‣ For help building patterns to match your logs:
‣ http://grokconstructor.appspot.com/
‣ http://grokdebug.herokuapp.com
grok
55.3.244.1 GET /index.html 15824 0.043
filter {
grok {
match => { "message" => "%{IP:client} %{WORD:method}
%{URIPATHPARAM:request} %{NUMBER:bytes} %{NUMBER:duration}" }
}
}
grok
‣ client: 55.3.244.1
‣ method: GET
‣ request: /index.html
‣ bytes: 15824
‣ duration: 0.043
grok
Oniguruma
‣ (?<field_name>the pattern here)
‣ (?<queue_id>[0-9A-F]{10,11})
Custom patterns_dir
‣ # contents of ./patterns/postfix:

POSTFIX_QUEUEID [0-9A-F]{10,11}
grok
Jan 1 06:25:43 mailserver14 postfix/cleanup[21403]: BEF25A72965: message-
id=<20130101142543.5828399CCAF@mailserver14.example.com>
filter {
grok {
patterns_dir => "./patterns"
match => { "message" => "%{SYSLOGBASE}
%{POSTFIX_QUEUEID:queue_id}: %{GREEDYDATA:syslog_message}" }
}
}
grok
‣ timestamp: Jan 1 06:25:43
‣ logsource: mailserver14
‣ program: postfix/cleanup
‣ pid: 21403
‣ queue_id: BEF25A72965
‣ syslog_message: message-
id=<20130101142543.5828399CCAF@mailserver14.example.com>
date
Convert string-based date formats
to date object for easy conversion
and export.
date
‣ syslog events usually have timestamps like this:
Apr 17 09:32:01
‣ You would use the date format MMM dd HH:mm:ss to
parse this.
‣ http://www.joda.org/joda-time/apidocs/org/joda/time/
format/DateTimeFormat.html
‣ Overwrites @timestamp by default
date
filter {
# ...grok, etc.
date {
match => [ "timestamp", "MMM dd HH:mm:ss" ]
remove_field => { "timestamp" }
locale => "en"
}
# ...other filters
}
date
‣ ISO8601 - should parse any valid ISO8601 timestamp, such
as 2011-04-19T03:44:01.103Z
‣ UNIX - will parse float or int value expressing unix time in
seconds since epoch like 1326149001.132 as well as
1326149001
‣ UNIX_MS - will parse int value expressing unix time in
milliseconds since epoch like 1366125117000
‣ TAI64N - will parse tai64n time values
geoip
Look up geographic information by
IP
geoip
geoip {
source => "clientip"
}
useragent
Parse useragent strings into fields.
useragent
useragent {
source => "useragent"
}
OR
if [useragent] != "" {
useragent { source => "useragent" }
}
Filters
• aggregate
• alter
• anonymize
• collate
• csv
• cidr
• clone
• cipher
• checksum
• date
• dns
• syslog_pri
• sleep
• split
• throttle
• translate
• uuid
• urldecode
• useragent
• xml
• zeromq
• json_encode
• kv
• mutate
• metrics
• multiline
• metaevent
• prune
• punct
• ruby
• range
• drop
• elasticsearch
• extractnumbers
• environment
• elapsed
• fingerprint
• geoip
• grok
• i18n
• json
Conditionals
if/then/else
if EXPRESSION {
...
} else if EXPRESSION {
...
} else {
...
}
expressions
Comparison operators:
• equality: ==, !=, <, >, <=, >=
• regexp: =~, !~
• inclusion: in, not in
Supported boolean operators:
• and, or, nand, xor
Supported unary operators:
• !
expressions
filter {
if [action] == "login" {
mutate { remove => "secret" }
}
}
expressions
output {
# Send production errors to Zabbix
if [loglevel] == "ERROR" and [deployment] ==
"production" {
zabbix {
...
}
}
}
expressions
if [foo] in [foobar] {
if [foo] in "foo" {
if "hello" in [greeting] {
if [foo] in ["hello", "world", "foo"] {
if [missing] in [alsomissing] {
if !("foo" in ["hello", "world"]) {
sprintf
‣ Reference field values within a string:
add_field => { "foo" => "%{bar}" }
add_field => { "foo_%{bar}" => "%{baz}" }
‣ Nested fields are referenced with square braces:
add_field => {
"foo" => "%{[@metadata][bar]"
}
zabbix
You know, for monitoring.
zabbix
‣ https://github.com/logstash-plugins/logstash-output-zabbix
‣ https://www.elastic.co/guide/en/logstash/current/plugins-outputs-zabbix.html
‣ Community plugin
‣ Deterministic (derives Zabbix host and key values from events)
‣ Installation:
bin/plugin install logstash-output-zabbix
zabbix
‣ zabbix_sender protocol
‣ Uses @timestamp
‣ Supports sending multiple values per event (most recently
added feature)
‣ Uses native ruby TCP calls (old version used zabbix_sender
binary)
‣ Does not support batching (don't overload your trappers)
options
‣ zabbix_host
‣ zabbix_key
‣ zabbix_value
‣ zabbix_server_host
‣ zabbix_server_port
‣ multi_value
‣ timeout
zabbix_host
‣ Type: String
‣ A single field name which holds the value you intend to
use as the Zabbix host name.
‣ Required value.
zabbix_key
‣ Type: String
‣ A single field name which holds the value you intend to
use as the Zabbix item key.
‣ Ignored if using multi_value, otherwise required.
zabbix_value
‣ Type: String
‣ A single field name which holds the value you intend to
send to zabbix_host's zabbix_key.
‣ Default: "message" (the whole, original log line)
‣ Ignored if using multi_value, otherwise required.
server
‣ zabbix_server_host
The IP or resolvable hostname where the Zabbix server is
running
Default: "localhost"
‣ zabbix_server_port
The port on which the Zabbix server is running
Default: 10051
multi_value
‣ Type: Array
‣ Ignores zabbix_key and zabbix_value.
‣ This can be visualized as:
[ key1, value1, key2, value2, ... keyN, valueN ]
‣ ...where key1 is an instance of zabbix_key, and value1
is an instance of zabbix_value.
‣ If the field referenced by any zabbix_key or
zabbix_value does not exist, that entry will be ignored.
timeout
‣ Type: Number
‣ The number of seconds to wait before giving up on a
connection to the Zabbix server.
‣ Default: 1
‣ This number should be very small, otherwise delays in
delivery of other outputs could result.
zabbix
output {
zabbix {
zabbix_server_host => "zabbix.example.com"
zabbix_host => "host_field"
zabbix_key => "key_field"
zabbix_value => "value_field"
}
# ... Other outputs
}
zabbix
output {
if [type] == "zabbix" {
zabbix {
zabbix_server_host => "zabbix.example.com"
zabbix_host => "host_field"
zabbix_key => "key_field"
zabbix_value => "value_field"
}
}
}
zabbix
output {
if [type] == "zabbix" {
zabbix {
zabbix_server_host => "zabbix.example.com"
zabbix_host => "host_field"
multi_value => [ "k1", "v1", "k2", "v2" ]
}
}
}
use cases
It's play time!
IRC
‣ Monitor IRC for catch word or phrase
‣ Send to Zabbix if the word is given
input
input {
irc {
channels => [ "#zabbix" ]
host => "irc.freenode.org"
nick => "howdy"
port => 6667
type => "irc"
}
}
filter
if [type] == "irc" {
if [message] =~ /^.*TESTING.*$/ {
mutate {
add_field => { "[@metadata][irc_key]" =>
"message" }
add_field => { "[@metadata][zabbix_host]" =>
"irc" }
add_tag => "testing"
}
}
output
if [type] == "irc" and "testing" in [tags] {
zabbix {
zabbix_server_host => "localhost"
zabbix_host => "[@metadata][zabbix_host]"
zabbix_key => "[@metadata][irc_key]"
zabbix_value => "message"
}
}
Result
Input (IRCCloud)
Output (Zabbix Frontend)
NGINX
‣ Capture NGINX logs for virtual hosts
‣ Watch for error codes (400 - 599)
‣ Send to Zabbix when one comes in
‣ Bonus: Send the client IP that generated the code
input
input {
file {
path => "/path/to/nxinx.log"
type => "nginx_json"
}
}
filter - pt.1
json {
source => "message"
remove_field => "message"
}
if [type] == "nginx_json" {
mutate {
replace => { "host" => "%{vhost}" }
remove_field => "vhost"
}
filter - pt.2
geoip { source => "clientip" }
if [useragent] != "" {
useragent { source => "useragent" }
}
if [referrer] == "-" {
mutate { remove_field => "referrer" }
}
filter - pt.3
if [status] >= 400 and [host] != "localhost" {
mutate {
add_field => {
"[@metadata][status_key]" => "status"
}
add_field => {
"[@metadata][clientip_key]" => "clientip"
}
filter - pt.4
add_field => {
"[@metadata][error]" => "error[%{status},]"
}
add_field => {
"[@metadata][counter]" => "1"
}
}
}
}
output - 1
if [type] == "nginx_json" {
if [status] >= 400 {
zabbix {
zabbix_server_host => "localhost"
zabbix_host => "host"
zabbix_key => "[@metadata][error]"
zabbix_value => "[@metadata][counter]"
}
zabbix host key value
fieldname host [@metadata][error] [@metadata][counter]
value untergeek.com error[404,] 1
output - 2
zabbix {
zabbix_server_host => "localhost"
zabbix_host => "host"
multi_value => [
"[@metadata][status_key]", "status",
"[@metadata][clientip_key]", "clientip"
]
}
Result
‣ Two kinds here:
Result
Result
‣ Just 404s
Conclusion
‣ https://www.elastic.co/guide/en/logstash/current/index.html
‣ https://github.com/elastic/logstash
‣ https://github.com/logstash-plugins/logstash-output-zabbix
‣ https://discuss.elastic.co/c/logstash
‣ #logstash on irc.freenode.org

More Related Content

What's hot

Monitoramento de Aplicações Web Modernas com Zabbix
Monitoramento de Aplicações Web Modernas com ZabbixMonitoramento de Aplicações Web Modernas com Zabbix
Monitoramento de Aplicações Web Modernas com Zabbix
André Déo
 
Secure container: Kata container and gVisor
Secure container: Kata container and gVisorSecure container: Kata container and gVisor
Secure container: Kata container and gVisor
Ching-Hsuan Yen
 
How to monitor your micro-service with Prometheus?
How to monitor your micro-service with Prometheus?How to monitor your micro-service with Prometheus?
How to monitor your micro-service with Prometheus?
Wojciech Barczyński
 
Introduction to docker
Introduction to dockerIntroduction to docker
Introduction to docker
Frederik Mogensen
 
Getting Started with Kubernetes
Getting Started with Kubernetes Getting Started with Kubernetes
Getting Started with Kubernetes
VMware Tanzu
 
Room 3 - 1 - Nguyễn Xuân Trường Lâm - Zero touch on-premise storage infrastru...
Room 3 - 1 - Nguyễn Xuân Trường Lâm - Zero touch on-premise storage infrastru...Room 3 - 1 - Nguyễn Xuân Trường Lâm - Zero touch on-premise storage infrastru...
Room 3 - 1 - Nguyễn Xuân Trường Lâm - Zero touch on-premise storage infrastru...
Vietnam Open Infrastructure User Group
 
Google Cloud Platform monitoring with Zabbix
Google Cloud Platform monitoring with ZabbixGoogle Cloud Platform monitoring with Zabbix
Google Cloud Platform monitoring with Zabbix
Max Kuzkin
 
Kubernetes Secrets Management on Production with Demo
Kubernetes Secrets Management on Production with DemoKubernetes Secrets Management on Production with Demo
Kubernetes Secrets Management on Production with Demo
Opsta
 
Docker Introduction
Docker IntroductionDocker Introduction
Docker Introduction
Peng Xiao
 
OpenTelemetry For Developers
OpenTelemetry For DevelopersOpenTelemetry For Developers
OpenTelemetry For Developers
Kevin Brockhoff
 
Kubernetes and container security
Kubernetes and container securityKubernetes and container security
Kubernetes and container security
Volodymyr Shynkar
 
Igor Nicoli: External scripts O poder do Zabbix em suas mãos
Igor Nicoli: External scripts O poder do Zabbix em suas mãosIgor Nicoli: External scripts O poder do Zabbix em suas mãos
Igor Nicoli: External scripts O poder do Zabbix em suas mãos
Zabbix BR
 
Terraform introduction
Terraform introductionTerraform introduction
Terraform introduction
Jason Vance
 
Introduction to Red Hat
Introduction to Red HatIntroduction to Red Hat
Introduction to Red Hat
Albert Wong
 
Zabbix Performance Tuning
Zabbix Performance TuningZabbix Performance Tuning
Zabbix Performance Tuning
Ricardo Santos
 
Kafka Tutorial: Kafka Security
Kafka Tutorial: Kafka SecurityKafka Tutorial: Kafka Security
Kafka Tutorial: Kafka Security
Jean-Paul Azar
 
OpenStack Architecture
OpenStack ArchitectureOpenStack Architecture
OpenStack Architecture
Mirantis
 
Room 3 - 7 - Nguyễn Như Phúc Huy - Vitastor: a fast and simple Ceph-like bloc...
Room 3 - 7 - Nguyễn Như Phúc Huy - Vitastor: a fast and simple Ceph-like bloc...Room 3 - 7 - Nguyễn Như Phúc Huy - Vitastor: a fast and simple Ceph-like bloc...
Room 3 - 7 - Nguyễn Như Phúc Huy - Vitastor: a fast and simple Ceph-like bloc...
Vietnam Open Infrastructure User Group
 
An Introduction To Jenkins
An Introduction To JenkinsAn Introduction To Jenkins
An Introduction To Jenkins
Knoldus Inc.
 

What's hot (20)

Monitoramento de Aplicações Web Modernas com Zabbix
Monitoramento de Aplicações Web Modernas com ZabbixMonitoramento de Aplicações Web Modernas com Zabbix
Monitoramento de Aplicações Web Modernas com Zabbix
 
Secure container: Kata container and gVisor
Secure container: Kata container and gVisorSecure container: Kata container and gVisor
Secure container: Kata container and gVisor
 
How to monitor your micro-service with Prometheus?
How to monitor your micro-service with Prometheus?How to monitor your micro-service with Prometheus?
How to monitor your micro-service with Prometheus?
 
Introduction to docker
Introduction to dockerIntroduction to docker
Introduction to docker
 
Getting Started with Kubernetes
Getting Started with Kubernetes Getting Started with Kubernetes
Getting Started with Kubernetes
 
Room 3 - 1 - Nguyễn Xuân Trường Lâm - Zero touch on-premise storage infrastru...
Room 3 - 1 - Nguyễn Xuân Trường Lâm - Zero touch on-premise storage infrastru...Room 3 - 1 - Nguyễn Xuân Trường Lâm - Zero touch on-premise storage infrastru...
Room 3 - 1 - Nguyễn Xuân Trường Lâm - Zero touch on-premise storage infrastru...
 
Google Cloud Platform monitoring with Zabbix
Google Cloud Platform monitoring with ZabbixGoogle Cloud Platform monitoring with Zabbix
Google Cloud Platform monitoring with Zabbix
 
Kubernetes Secrets Management on Production with Demo
Kubernetes Secrets Management on Production with DemoKubernetes Secrets Management on Production with Demo
Kubernetes Secrets Management on Production with Demo
 
Docker Introduction
Docker IntroductionDocker Introduction
Docker Introduction
 
OpenTelemetry For Developers
OpenTelemetry For DevelopersOpenTelemetry For Developers
OpenTelemetry For Developers
 
Kubernetes and container security
Kubernetes and container securityKubernetes and container security
Kubernetes and container security
 
Igor Nicoli: External scripts O poder do Zabbix em suas mãos
Igor Nicoli: External scripts O poder do Zabbix em suas mãosIgor Nicoli: External scripts O poder do Zabbix em suas mãos
Igor Nicoli: External scripts O poder do Zabbix em suas mãos
 
Terraform introduction
Terraform introductionTerraform introduction
Terraform introduction
 
Introduction to Red Hat
Introduction to Red HatIntroduction to Red Hat
Introduction to Red Hat
 
Zabbix Performance Tuning
Zabbix Performance TuningZabbix Performance Tuning
Zabbix Performance Tuning
 
Vagrant
VagrantVagrant
Vagrant
 
Kafka Tutorial: Kafka Security
Kafka Tutorial: Kafka SecurityKafka Tutorial: Kafka Security
Kafka Tutorial: Kafka Security
 
OpenStack Architecture
OpenStack ArchitectureOpenStack Architecture
OpenStack Architecture
 
Room 3 - 7 - Nguyễn Như Phúc Huy - Vitastor: a fast and simple Ceph-like bloc...
Room 3 - 7 - Nguyễn Như Phúc Huy - Vitastor: a fast and simple Ceph-like bloc...Room 3 - 7 - Nguyễn Như Phúc Huy - Vitastor: a fast and simple Ceph-like bloc...
Room 3 - 7 - Nguyễn Như Phúc Huy - Vitastor: a fast and simple Ceph-like bloc...
 
An Introduction To Jenkins
An Introduction To JenkinsAn Introduction To Jenkins
An Introduction To Jenkins
 

Similar to Aaron Mildenstein - Using Logstash with Zabbix

ELK stack at weibo.com
ELK stack at weibo.comELK stack at weibo.com
ELK stack at weibo.com
琛琳 饶
 
ETL with SPARK - First Spark London meetup
ETL with SPARK - First Spark London meetupETL with SPARK - First Spark London meetup
ETL with SPARK - First Spark London meetup
Rafal Kwasny
 
Devoxx france 2015 influxdb
Devoxx france 2015 influxdbDevoxx france 2015 influxdb
Devoxx france 2015 influxdb
Nicolas Muller
 
Devoxx france 2015 influx db
Devoxx france 2015 influx dbDevoxx france 2015 influx db
Devoxx france 2015 influx db
Nicolas Muller
 
Apache Spark v3.0.0
Apache Spark v3.0.0Apache Spark v3.0.0
Apache Spark v3.0.0
Jean-Georges Perrin
 
Matt Jarvis - Unravelling Logs: Log Processing with Logstash and Riemann
Matt Jarvis - Unravelling Logs: Log Processing with Logstash and Riemann Matt Jarvis - Unravelling Logs: Log Processing with Logstash and Riemann
Matt Jarvis - Unravelling Logs: Log Processing with Logstash and Riemann
Danny Abukalam
 
Nodejs - A quick tour (v6)
Nodejs - A quick tour (v6)Nodejs - A quick tour (v6)
Nodejs - A quick tour (v6)
Felix Geisendörfer
 
(Fios#02) 2. elk 포렌식 분석
(Fios#02) 2. elk 포렌식 분석(Fios#02) 2. elk 포렌식 분석
(Fios#02) 2. elk 포렌식 분석
INSIGHT FORENSIC
 
Logstash
LogstashLogstash
Logstash
琛琳 饶
 
London devops logging
London devops loggingLondon devops logging
London devops loggingTomas Doran
 
OSDC 2016 - Unifying Logs and Metrics Data with Elastic Beats by Monica Sarbu
OSDC 2016 - Unifying Logs and Metrics Data with Elastic Beats by Monica SarbuOSDC 2016 - Unifying Logs and Metrics Data with Elastic Beats by Monica Sarbu
OSDC 2016 - Unifying Logs and Metrics Data with Elastic Beats by Monica Sarbu
NETWAYS
 
Automating Complex Setups with Puppet
Automating Complex Setups with PuppetAutomating Complex Setups with Puppet
Automating Complex Setups with Puppet
Kris Buytaert
 
Running Airflow Workflows as ETL Processes on Hadoop
Running Airflow Workflows as ETL Processes on HadoopRunning Airflow Workflows as ETL Processes on Hadoop
Running Airflow Workflows as ETL Processes on Hadoop
clairvoyantllc
 
Vert.x v3 - high performance polyglot application toolkit
Vert.x v3 - high performance  polyglot application toolkitVert.x v3 - high performance  polyglot application toolkit
Vert.x v3 - high performance polyglot application toolkit
Sages
 
Serving Deep Learning Models At Scale With RedisAI: Luca Antiga
Serving Deep Learning Models At Scale With RedisAI: Luca AntigaServing Deep Learning Models At Scale With RedisAI: Luca Antiga
Serving Deep Learning Models At Scale With RedisAI: Luca Antiga
Redis Labs
 
CNIT 50: 6. Command Line Packet Analysis Tools
CNIT 50: 6. Command Line Packet Analysis ToolsCNIT 50: 6. Command Line Packet Analysis Tools
CNIT 50: 6. Command Line Packet Analysis Tools
Sam Bowne
 
Scaling ingest pipelines with high performance computing principles - Rajiv K...
Scaling ingest pipelines with high performance computing principles - Rajiv K...Scaling ingest pipelines with high performance computing principles - Rajiv K...
Scaling ingest pipelines with high performance computing principles - Rajiv K...
SignalFx
 
CONFidence 2015: DTrace + OSX = Fun - Andrzej Dyjak
CONFidence 2015: DTrace + OSX = Fun - Andrzej Dyjak   CONFidence 2015: DTrace + OSX = Fun - Andrzej Dyjak
CONFidence 2015: DTrace + OSX = Fun - Andrzej Dyjak
PROIDEA
 
Java/Scala Lab: Анатолий Кметюк - Scala SubScript: Алгебра для реактивного пр...
Java/Scala Lab: Анатолий Кметюк - Scala SubScript: Алгебра для реактивного пр...Java/Scala Lab: Анатолий Кметюк - Scala SubScript: Алгебра для реактивного пр...
Java/Scala Lab: Анатолий Кметюк - Scala SubScript: Алгебра для реактивного пр...
GeeksLab Odessa
 

Similar to Aaron Mildenstein - Using Logstash with Zabbix (20)

ELK stack at weibo.com
ELK stack at weibo.comELK stack at weibo.com
ELK stack at weibo.com
 
ETL with SPARK - First Spark London meetup
ETL with SPARK - First Spark London meetupETL with SPARK - First Spark London meetup
ETL with SPARK - First Spark London meetup
 
Devoxx france 2015 influxdb
Devoxx france 2015 influxdbDevoxx france 2015 influxdb
Devoxx france 2015 influxdb
 
Devoxx france 2015 influx db
Devoxx france 2015 influx dbDevoxx france 2015 influx db
Devoxx france 2015 influx db
 
Apache Spark v3.0.0
Apache Spark v3.0.0Apache Spark v3.0.0
Apache Spark v3.0.0
 
Matt Jarvis - Unravelling Logs: Log Processing with Logstash and Riemann
Matt Jarvis - Unravelling Logs: Log Processing with Logstash and Riemann Matt Jarvis - Unravelling Logs: Log Processing with Logstash and Riemann
Matt Jarvis - Unravelling Logs: Log Processing with Logstash and Riemann
 
Nodejs - A quick tour (v6)
Nodejs - A quick tour (v6)Nodejs - A quick tour (v6)
Nodejs - A quick tour (v6)
 
(Fios#02) 2. elk 포렌식 분석
(Fios#02) 2. elk 포렌식 분석(Fios#02) 2. elk 포렌식 분석
(Fios#02) 2. elk 포렌식 분석
 
Wider than rails
Wider than railsWider than rails
Wider than rails
 
Logstash
LogstashLogstash
Logstash
 
London devops logging
London devops loggingLondon devops logging
London devops logging
 
OSDC 2016 - Unifying Logs and Metrics Data with Elastic Beats by Monica Sarbu
OSDC 2016 - Unifying Logs and Metrics Data with Elastic Beats by Monica SarbuOSDC 2016 - Unifying Logs and Metrics Data with Elastic Beats by Monica Sarbu
OSDC 2016 - Unifying Logs and Metrics Data with Elastic Beats by Monica Sarbu
 
Automating Complex Setups with Puppet
Automating Complex Setups with PuppetAutomating Complex Setups with Puppet
Automating Complex Setups with Puppet
 
Running Airflow Workflows as ETL Processes on Hadoop
Running Airflow Workflows as ETL Processes on HadoopRunning Airflow Workflows as ETL Processes on Hadoop
Running Airflow Workflows as ETL Processes on Hadoop
 
Vert.x v3 - high performance polyglot application toolkit
Vert.x v3 - high performance  polyglot application toolkitVert.x v3 - high performance  polyglot application toolkit
Vert.x v3 - high performance polyglot application toolkit
 
Serving Deep Learning Models At Scale With RedisAI: Luca Antiga
Serving Deep Learning Models At Scale With RedisAI: Luca AntigaServing Deep Learning Models At Scale With RedisAI: Luca Antiga
Serving Deep Learning Models At Scale With RedisAI: Luca Antiga
 
CNIT 50: 6. Command Line Packet Analysis Tools
CNIT 50: 6. Command Line Packet Analysis ToolsCNIT 50: 6. Command Line Packet Analysis Tools
CNIT 50: 6. Command Line Packet Analysis Tools
 
Scaling ingest pipelines with high performance computing principles - Rajiv K...
Scaling ingest pipelines with high performance computing principles - Rajiv K...Scaling ingest pipelines with high performance computing principles - Rajiv K...
Scaling ingest pipelines with high performance computing principles - Rajiv K...
 
CONFidence 2015: DTrace + OSX = Fun - Andrzej Dyjak
CONFidence 2015: DTrace + OSX = Fun - Andrzej Dyjak   CONFidence 2015: DTrace + OSX = Fun - Andrzej Dyjak
CONFidence 2015: DTrace + OSX = Fun - Andrzej Dyjak
 
Java/Scala Lab: Анатолий Кметюк - Scala SubScript: Алгебра для реактивного пр...
Java/Scala Lab: Анатолий Кметюк - Scala SubScript: Алгебра для реактивного пр...Java/Scala Lab: Анатолий Кметюк - Scala SubScript: Алгебра для реактивного пр...
Java/Scala Lab: Анатолий Кметюк - Scala SubScript: Алгебра для реактивного пр...
 

More from Zabbix

Zabbix Conference LatAm 2016 - Jessian Ferreira - Wireless with Zabbix
Zabbix Conference LatAm 2016 - Jessian Ferreira - Wireless with ZabbixZabbix Conference LatAm 2016 - Jessian Ferreira - Wireless with Zabbix
Zabbix Conference LatAm 2016 - Jessian Ferreira - Wireless with Zabbix
Zabbix
 
Zabbix Conference LatAm 2016 - Andre Deo - Zabbix Brazil Community
Zabbix Conference LatAm 2016 - Andre Deo - Zabbix Brazil CommunityZabbix Conference LatAm 2016 - Andre Deo - Zabbix Brazil Community
Zabbix Conference LatAm 2016 - Andre Deo - Zabbix Brazil Community
Zabbix
 
Zabbix Conference LatAm 2016 - Jorge Pretel - Low Level Discovery for ODBC an...
Zabbix Conference LatAm 2016 - Jorge Pretel - Low Level Discovery for ODBC an...Zabbix Conference LatAm 2016 - Jorge Pretel - Low Level Discovery for ODBC an...
Zabbix Conference LatAm 2016 - Jorge Pretel - Low Level Discovery for ODBC an...
Zabbix
 
Zabbix Conference LatAm 2016 - Andre Deo - SNMP and Zabbix
Zabbix Conference LatAm 2016 - Andre Deo - SNMP and ZabbixZabbix Conference LatAm 2016 - Andre Deo - SNMP and Zabbix
Zabbix Conference LatAm 2016 - Andre Deo - SNMP and Zabbix
Zabbix
 
Zabbix Conference LatAm 2016 - Rodrigo Mohr - Challenges on Large Env with Or...
Zabbix Conference LatAm 2016 - Rodrigo Mohr - Challenges on Large Env with Or...Zabbix Conference LatAm 2016 - Rodrigo Mohr - Challenges on Large Env with Or...
Zabbix Conference LatAm 2016 - Rodrigo Mohr - Challenges on Large Env with Or...
Zabbix
 
Zabbix Conference LatAm 2016 - Marcio Prop - Monitoring Complex Environments ...
Zabbix Conference LatAm 2016 - Marcio Prop - Monitoring Complex Environments ...Zabbix Conference LatAm 2016 - Marcio Prop - Monitoring Complex Environments ...
Zabbix Conference LatAm 2016 - Marcio Prop - Monitoring Complex Environments ...
Zabbix
 
Zabbix Conference LatAm 2016 - Daniel Nasiloski - Extending Zabbix - Interact...
Zabbix Conference LatAm 2016 - Daniel Nasiloski - Extending Zabbix - Interact...Zabbix Conference LatAm 2016 - Daniel Nasiloski - Extending Zabbix - Interact...
Zabbix Conference LatAm 2016 - Daniel Nasiloski - Extending Zabbix - Interact...
Zabbix
 
Zabbix Conference LatAm 2016 - Filipe Paternot - Zbx@Globo Automation+Integra...
Zabbix Conference LatAm 2016 - Filipe Paternot - Zbx@Globo Automation+Integra...Zabbix Conference LatAm 2016 - Filipe Paternot - Zbx@Globo Automation+Integra...
Zabbix Conference LatAm 2016 - Filipe Paternot - Zbx@Globo Automation+Integra...
Zabbix
 
Zabbix Conference LatAm 2016 - Douglas Esteves - Zabbix at UNICAMP
Zabbix Conference LatAm 2016 - Douglas Esteves - Zabbix at UNICAMPZabbix Conference LatAm 2016 - Douglas Esteves - Zabbix at UNICAMP
Zabbix Conference LatAm 2016 - Douglas Esteves - Zabbix at UNICAMP
Zabbix
 
Ryan Armstrong - Monitoring More Than 6000 Devices in Zabbix | ZabConf2016
Ryan Armstrong - Monitoring More Than 6000 Devices in Zabbix | ZabConf2016Ryan Armstrong - Monitoring More Than 6000 Devices in Zabbix | ZabConf2016
Ryan Armstrong - Monitoring More Than 6000 Devices in Zabbix | ZabConf2016
Zabbix
 
Rafael Martinez Guerrero - Zabbix at the University of Oslo | ZabConf2016
Rafael Martinez Guerrero - Zabbix at the University of Oslo | ZabConf2016Rafael Martinez Guerrero - Zabbix at the University of Oslo | ZabConf2016
Rafael Martinez Guerrero - Zabbix at the University of Oslo | ZabConf2016
Zabbix
 
Wolfgang Alper - Zabbix Meets OPS Control / Rundeck | ZabConf2016
Wolfgang Alper - Zabbix Meets OPS Control / Rundeck | ZabConf2016Wolfgang Alper - Zabbix Meets OPS Control / Rundeck | ZabConf2016
Wolfgang Alper - Zabbix Meets OPS Control / Rundeck | ZabConf2016
Zabbix
 
Wolfgang Alper - Zabbix Meets OPS Control / Rundeck | ZabConf2016
Wolfgang Alper - Zabbix Meets OPS Control / Rundeck | ZabConf2016Wolfgang Alper - Zabbix Meets OPS Control / Rundeck | ZabConf2016
Wolfgang Alper - Zabbix Meets OPS Control / Rundeck | ZabConf2016
Zabbix
 
Sumit Goel - Monitoring Cloud Applications Using Zabbix | ZabConf2016
Sumit Goel - Monitoring Cloud Applications Using Zabbix | ZabConf2016Sumit Goel - Monitoring Cloud Applications Using Zabbix | ZabConf2016
Sumit Goel - Monitoring Cloud Applications Using Zabbix | ZabConf2016
Zabbix
 
Rihards Olups - Zabbix at Nokia - Case Study
Rihards Olups - Zabbix at Nokia - Case StudyRihards Olups - Zabbix at Nokia - Case Study
Rihards Olups - Zabbix at Nokia - Case Study
Zabbix
 
Raymond Kuiper - Zen and The Art of Zabbix Template Design | ZabConf2016
Raymond Kuiper - Zen and The Art of Zabbix Template Design | ZabConf2016Raymond Kuiper - Zen and The Art of Zabbix Template Design | ZabConf2016
Raymond Kuiper - Zen and The Art of Zabbix Template Design | ZabConf2016
Zabbix
 
Dimitri Bellini and Pietro Antonacci - Manage Zabbix Proxies in Remote Networ...
Dimitri Bellini and Pietro Antonacci - Manage Zabbix Proxies in Remote Networ...Dimitri Bellini and Pietro Antonacci - Manage Zabbix Proxies in Remote Networ...
Dimitri Bellini and Pietro Antonacci - Manage Zabbix Proxies in Remote Networ...
Zabbix
 
Erik Skytthe - Monitoring Mesos, Docker, Containers with Zabbix | ZabConf2016
Erik Skytthe - Monitoring Mesos, Docker, Containers with Zabbix | ZabConf2016Erik Skytthe - Monitoring Mesos, Docker, Containers with Zabbix | ZabConf2016
Erik Skytthe - Monitoring Mesos, Docker, Containers with Zabbix | ZabConf2016
Zabbix
 
Mikhail Serkov - Zabbix for HPC Cluster Support | ZabConf2016
Mikhail Serkov - Zabbix for HPC Cluster Support | ZabConf2016Mikhail Serkov - Zabbix for HPC Cluster Support | ZabConf2016
Mikhail Serkov - Zabbix for HPC Cluster Support | ZabConf2016
Zabbix
 
Lukáš Malý - Log management ELISA controlled by Zabbix | ZabConf2016
Lukáš Malý - Log management ELISA controlled by Zabbix | ZabConf2016Lukáš Malý - Log management ELISA controlled by Zabbix | ZabConf2016
Lukáš Malý - Log management ELISA controlled by Zabbix | ZabConf2016
Zabbix
 

More from Zabbix (20)

Zabbix Conference LatAm 2016 - Jessian Ferreira - Wireless with Zabbix
Zabbix Conference LatAm 2016 - Jessian Ferreira - Wireless with ZabbixZabbix Conference LatAm 2016 - Jessian Ferreira - Wireless with Zabbix
Zabbix Conference LatAm 2016 - Jessian Ferreira - Wireless with Zabbix
 
Zabbix Conference LatAm 2016 - Andre Deo - Zabbix Brazil Community
Zabbix Conference LatAm 2016 - Andre Deo - Zabbix Brazil CommunityZabbix Conference LatAm 2016 - Andre Deo - Zabbix Brazil Community
Zabbix Conference LatAm 2016 - Andre Deo - Zabbix Brazil Community
 
Zabbix Conference LatAm 2016 - Jorge Pretel - Low Level Discovery for ODBC an...
Zabbix Conference LatAm 2016 - Jorge Pretel - Low Level Discovery for ODBC an...Zabbix Conference LatAm 2016 - Jorge Pretel - Low Level Discovery for ODBC an...
Zabbix Conference LatAm 2016 - Jorge Pretel - Low Level Discovery for ODBC an...
 
Zabbix Conference LatAm 2016 - Andre Deo - SNMP and Zabbix
Zabbix Conference LatAm 2016 - Andre Deo - SNMP and ZabbixZabbix Conference LatAm 2016 - Andre Deo - SNMP and Zabbix
Zabbix Conference LatAm 2016 - Andre Deo - SNMP and Zabbix
 
Zabbix Conference LatAm 2016 - Rodrigo Mohr - Challenges on Large Env with Or...
Zabbix Conference LatAm 2016 - Rodrigo Mohr - Challenges on Large Env with Or...Zabbix Conference LatAm 2016 - Rodrigo Mohr - Challenges on Large Env with Or...
Zabbix Conference LatAm 2016 - Rodrigo Mohr - Challenges on Large Env with Or...
 
Zabbix Conference LatAm 2016 - Marcio Prop - Monitoring Complex Environments ...
Zabbix Conference LatAm 2016 - Marcio Prop - Monitoring Complex Environments ...Zabbix Conference LatAm 2016 - Marcio Prop - Monitoring Complex Environments ...
Zabbix Conference LatAm 2016 - Marcio Prop - Monitoring Complex Environments ...
 
Zabbix Conference LatAm 2016 - Daniel Nasiloski - Extending Zabbix - Interact...
Zabbix Conference LatAm 2016 - Daniel Nasiloski - Extending Zabbix - Interact...Zabbix Conference LatAm 2016 - Daniel Nasiloski - Extending Zabbix - Interact...
Zabbix Conference LatAm 2016 - Daniel Nasiloski - Extending Zabbix - Interact...
 
Zabbix Conference LatAm 2016 - Filipe Paternot - Zbx@Globo Automation+Integra...
Zabbix Conference LatAm 2016 - Filipe Paternot - Zbx@Globo Automation+Integra...Zabbix Conference LatAm 2016 - Filipe Paternot - Zbx@Globo Automation+Integra...
Zabbix Conference LatAm 2016 - Filipe Paternot - Zbx@Globo Automation+Integra...
 
Zabbix Conference LatAm 2016 - Douglas Esteves - Zabbix at UNICAMP
Zabbix Conference LatAm 2016 - Douglas Esteves - Zabbix at UNICAMPZabbix Conference LatAm 2016 - Douglas Esteves - Zabbix at UNICAMP
Zabbix Conference LatAm 2016 - Douglas Esteves - Zabbix at UNICAMP
 
Ryan Armstrong - Monitoring More Than 6000 Devices in Zabbix | ZabConf2016
Ryan Armstrong - Monitoring More Than 6000 Devices in Zabbix | ZabConf2016Ryan Armstrong - Monitoring More Than 6000 Devices in Zabbix | ZabConf2016
Ryan Armstrong - Monitoring More Than 6000 Devices in Zabbix | ZabConf2016
 
Rafael Martinez Guerrero - Zabbix at the University of Oslo | ZabConf2016
Rafael Martinez Guerrero - Zabbix at the University of Oslo | ZabConf2016Rafael Martinez Guerrero - Zabbix at the University of Oslo | ZabConf2016
Rafael Martinez Guerrero - Zabbix at the University of Oslo | ZabConf2016
 
Wolfgang Alper - Zabbix Meets OPS Control / Rundeck | ZabConf2016
Wolfgang Alper - Zabbix Meets OPS Control / Rundeck | ZabConf2016Wolfgang Alper - Zabbix Meets OPS Control / Rundeck | ZabConf2016
Wolfgang Alper - Zabbix Meets OPS Control / Rundeck | ZabConf2016
 
Wolfgang Alper - Zabbix Meets OPS Control / Rundeck | ZabConf2016
Wolfgang Alper - Zabbix Meets OPS Control / Rundeck | ZabConf2016Wolfgang Alper - Zabbix Meets OPS Control / Rundeck | ZabConf2016
Wolfgang Alper - Zabbix Meets OPS Control / Rundeck | ZabConf2016
 
Sumit Goel - Monitoring Cloud Applications Using Zabbix | ZabConf2016
Sumit Goel - Monitoring Cloud Applications Using Zabbix | ZabConf2016Sumit Goel - Monitoring Cloud Applications Using Zabbix | ZabConf2016
Sumit Goel - Monitoring Cloud Applications Using Zabbix | ZabConf2016
 
Rihards Olups - Zabbix at Nokia - Case Study
Rihards Olups - Zabbix at Nokia - Case StudyRihards Olups - Zabbix at Nokia - Case Study
Rihards Olups - Zabbix at Nokia - Case Study
 
Raymond Kuiper - Zen and The Art of Zabbix Template Design | ZabConf2016
Raymond Kuiper - Zen and The Art of Zabbix Template Design | ZabConf2016Raymond Kuiper - Zen and The Art of Zabbix Template Design | ZabConf2016
Raymond Kuiper - Zen and The Art of Zabbix Template Design | ZabConf2016
 
Dimitri Bellini and Pietro Antonacci - Manage Zabbix Proxies in Remote Networ...
Dimitri Bellini and Pietro Antonacci - Manage Zabbix Proxies in Remote Networ...Dimitri Bellini and Pietro Antonacci - Manage Zabbix Proxies in Remote Networ...
Dimitri Bellini and Pietro Antonacci - Manage Zabbix Proxies in Remote Networ...
 
Erik Skytthe - Monitoring Mesos, Docker, Containers with Zabbix | ZabConf2016
Erik Skytthe - Monitoring Mesos, Docker, Containers with Zabbix | ZabConf2016Erik Skytthe - Monitoring Mesos, Docker, Containers with Zabbix | ZabConf2016
Erik Skytthe - Monitoring Mesos, Docker, Containers with Zabbix | ZabConf2016
 
Mikhail Serkov - Zabbix for HPC Cluster Support | ZabConf2016
Mikhail Serkov - Zabbix for HPC Cluster Support | ZabConf2016Mikhail Serkov - Zabbix for HPC Cluster Support | ZabConf2016
Mikhail Serkov - Zabbix for HPC Cluster Support | ZabConf2016
 
Lukáš Malý - Log management ELISA controlled by Zabbix | ZabConf2016
Lukáš Malý - Log management ELISA controlled by Zabbix | ZabConf2016Lukáš Malý - Log management ELISA controlled by Zabbix | ZabConf2016
Lukáš Malý - Log management ELISA controlled by Zabbix | ZabConf2016
 

Recently uploaded

Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Product School
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
OnBoard
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Inflectra
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
Elena Simperl
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Tobias Schneck
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
Product School
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
Sri Ambati
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
Kari Kakkonen
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
DanBrown980551
 
Search and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical FuturesSearch and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical Futures
Bhaskar Mitra
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
Guy Korland
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
DianaGray10
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
Paul Groth
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
RTTS
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance
 
Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
Frank van Harmelen
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
ThousandEyes
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
DianaGray10
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
DianaGray10
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Product School
 

Recently uploaded (20)

Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
 
Search and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical FuturesSearch and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical Futures
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
 
Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
 

Aaron Mildenstein - Using Logstash with Zabbix

  • 2. Origins ‣ Jordan Sissel ‣ Started in 2009 ‣ Open Source (Apache License) ‣ Jordan joined Elastic in August 2013 ‣ Still Open Source ‣ Will always be Open Source
  • 3. What is it? ‣ A tool for receiving, processing and outputting logs, and other data streams. ‣ Pipeline ‣ Input ‣ Filter ‣ Output
  • 4. Inputs • couchdb_changes • drupal_dblog • elasticsearch • exec • eventlog • file • ganglia • gelf • generator • graphite • github • heartbeat • heroku • http • http_poller • irc • imap • jdbc • jmx • kafka • log4j • lumberjack • meetup • pipe • syslog • tcp • twitter • unix • udp • varnishlog • wmi • websocket • xmpp • zenoss • zeromq • puppet_facter • relp • rss • rackspace • rabbitmq • redis • snmptrap • stdin • sqlite • s3 • sqs • stomp
  • 5. Filters • aggregate • alter • anonymize • collate • csv • cidr • clone • cipher • checksum • date • dns • syslog_pri • sleep • split • throttle • translate • uuid • urldecode • useragent • xml • zeromq • json_encode • kv • mutate • metrics • multiline • metaevent • prune • punct • ruby • range • drop • elasticsearch • extractnumbers • environment • elapsed • fingerprint • geoip • grok • i18n • json
  • 6. Outputs • boundary • circonus • csv • cloudwatch • datadog • datadog_metrics • email • elasticsearch • exec • file • google_bigquery • google_cloud_storage • ganglia • gelf • stomp • statsd • solr_http • sns • syslog • stdout • tcp • udp • webhdfs • websocket • xmpp • zabbix • zeromq • nagios • null • nagios_nsca • opentsdb • pagerduty • pipe • riemann • redmine • rackspace • rabbitmq • redis • riak • s3 • sqs • graphtastic • graphite • hipchat • http • irc • influxdb • juggernaut • jira • kafka • lumberjack • librato • loggly • mongodb • metriccatcher
  • 7. Configuration input { plugin_name { settings... } } filter { plugin_name { settings... } } output { plugin_name { settings... } }
  • 9. file Read events from a file in real-time, like tail
  • 10. file file { path => "/path/to/logfile" }
  • 12. tcp tcp { host => "ip or hostname" port => 12345 }
  • 13. irc Capture all or part of the discussion in one or more IRC channels.
  • 14. irc irc { channels => [ "#zabbix" ] host => "irc.freenode.org" nick => "my_nickname" port => 6667 }
  • 15. Inputs • couchdb_changes • drupal_dblog • elasticsearch • exec • eventlog • file • ganglia • gelf • generator • graphite • github • heartbeat • heroku • http • http_poller • irc • imap • jdbc • jmx • kafka • log4j • lumberjack • meetup • pipe • syslog • tcp • twitter • unix • udp • varnishlog • wmi • websocket • xmpp • zenoss • zeromq • puppet_facter • relp • rss • rackspace • rabbitmq • redis • snmptrap • stdin • sqlite • s3 • sqs • stomp
  • 17. grok Parse arbitrary text and structure it.
  • 18. grok ‣ Parse unstructured log data into something structured. ‣ Perfect for syslog, webserver, & db logs, and in general, any log format that is generally written for humans. ‣ Ships with 120+ patterns. You can add your own trivially. ‣ For help building patterns to match your logs: ‣ http://grokconstructor.appspot.com/ ‣ http://grokdebug.herokuapp.com
  • 19. grok 55.3.244.1 GET /index.html 15824 0.043 filter { grok { match => { "message" => "%{IP:client} %{WORD:method} %{URIPATHPARAM:request} %{NUMBER:bytes} %{NUMBER:duration}" } } }
  • 20. grok ‣ client: 55.3.244.1 ‣ method: GET ‣ request: /index.html ‣ bytes: 15824 ‣ duration: 0.043
  • 21. grok Oniguruma ‣ (?<field_name>the pattern here) ‣ (?<queue_id>[0-9A-F]{10,11}) Custom patterns_dir ‣ # contents of ./patterns/postfix:
 POSTFIX_QUEUEID [0-9A-F]{10,11}
  • 22. grok Jan 1 06:25:43 mailserver14 postfix/cleanup[21403]: BEF25A72965: message- id=<20130101142543.5828399CCAF@mailserver14.example.com> filter { grok { patterns_dir => "./patterns" match => { "message" => "%{SYSLOGBASE} %{POSTFIX_QUEUEID:queue_id}: %{GREEDYDATA:syslog_message}" } } }
  • 23. grok ‣ timestamp: Jan 1 06:25:43 ‣ logsource: mailserver14 ‣ program: postfix/cleanup ‣ pid: 21403 ‣ queue_id: BEF25A72965 ‣ syslog_message: message- id=<20130101142543.5828399CCAF@mailserver14.example.com>
  • 24. date Convert string-based date formats to date object for easy conversion and export.
  • 25. date ‣ syslog events usually have timestamps like this: Apr 17 09:32:01 ‣ You would use the date format MMM dd HH:mm:ss to parse this. ‣ http://www.joda.org/joda-time/apidocs/org/joda/time/ format/DateTimeFormat.html ‣ Overwrites @timestamp by default
  • 26. date filter { # ...grok, etc. date { match => [ "timestamp", "MMM dd HH:mm:ss" ] remove_field => { "timestamp" } locale => "en" } # ...other filters }
  • 27. date ‣ ISO8601 - should parse any valid ISO8601 timestamp, such as 2011-04-19T03:44:01.103Z ‣ UNIX - will parse float or int value expressing unix time in seconds since epoch like 1326149001.132 as well as 1326149001 ‣ UNIX_MS - will parse int value expressing unix time in milliseconds since epoch like 1366125117000 ‣ TAI64N - will parse tai64n time values
  • 28. geoip Look up geographic information by IP
  • 29. geoip geoip { source => "clientip" }
  • 31. useragent useragent { source => "useragent" } OR if [useragent] != "" { useragent { source => "useragent" } }
  • 32. Filters • aggregate • alter • anonymize • collate • csv • cidr • clone • cipher • checksum • date • dns • syslog_pri • sleep • split • throttle • translate • uuid • urldecode • useragent • xml • zeromq • json_encode • kv • mutate • metrics • multiline • metaevent • prune • punct • ruby • range • drop • elasticsearch • extractnumbers • environment • elapsed • fingerprint • geoip • grok • i18n • json
  • 34. if/then/else if EXPRESSION { ... } else if EXPRESSION { ... } else { ... }
  • 35. expressions Comparison operators: • equality: ==, !=, <, >, <=, >= • regexp: =~, !~ • inclusion: in, not in Supported boolean operators: • and, or, nand, xor Supported unary operators: • !
  • 36. expressions filter { if [action] == "login" { mutate { remove => "secret" } } }
  • 37. expressions output { # Send production errors to Zabbix if [loglevel] == "ERROR" and [deployment] == "production" { zabbix { ... } } }
  • 38. expressions if [foo] in [foobar] { if [foo] in "foo" { if "hello" in [greeting] { if [foo] in ["hello", "world", "foo"] { if [missing] in [alsomissing] { if !("foo" in ["hello", "world"]) {
  • 39. sprintf ‣ Reference field values within a string: add_field => { "foo" => "%{bar}" } add_field => { "foo_%{bar}" => "%{baz}" } ‣ Nested fields are referenced with square braces: add_field => { "foo" => "%{[@metadata][bar]" }
  • 40. zabbix You know, for monitoring.
  • 41. zabbix ‣ https://github.com/logstash-plugins/logstash-output-zabbix ‣ https://www.elastic.co/guide/en/logstash/current/plugins-outputs-zabbix.html ‣ Community plugin ‣ Deterministic (derives Zabbix host and key values from events) ‣ Installation: bin/plugin install logstash-output-zabbix
  • 42. zabbix ‣ zabbix_sender protocol ‣ Uses @timestamp ‣ Supports sending multiple values per event (most recently added feature) ‣ Uses native ruby TCP calls (old version used zabbix_sender binary) ‣ Does not support batching (don't overload your trappers)
  • 43. options ‣ zabbix_host ‣ zabbix_key ‣ zabbix_value ‣ zabbix_server_host ‣ zabbix_server_port ‣ multi_value ‣ timeout
  • 44. zabbix_host ‣ Type: String ‣ A single field name which holds the value you intend to use as the Zabbix host name. ‣ Required value.
  • 45. zabbix_key ‣ Type: String ‣ A single field name which holds the value you intend to use as the Zabbix item key. ‣ Ignored if using multi_value, otherwise required.
  • 46. zabbix_value ‣ Type: String ‣ A single field name which holds the value you intend to send to zabbix_host's zabbix_key. ‣ Default: "message" (the whole, original log line) ‣ Ignored if using multi_value, otherwise required.
  • 47. server ‣ zabbix_server_host The IP or resolvable hostname where the Zabbix server is running Default: "localhost" ‣ zabbix_server_port The port on which the Zabbix server is running Default: 10051
  • 48. multi_value ‣ Type: Array ‣ Ignores zabbix_key and zabbix_value. ‣ This can be visualized as: [ key1, value1, key2, value2, ... keyN, valueN ] ‣ ...where key1 is an instance of zabbix_key, and value1 is an instance of zabbix_value. ‣ If the field referenced by any zabbix_key or zabbix_value does not exist, that entry will be ignored.
  • 49. timeout ‣ Type: Number ‣ The number of seconds to wait before giving up on a connection to the Zabbix server. ‣ Default: 1 ‣ This number should be very small, otherwise delays in delivery of other outputs could result.
  • 50. zabbix output { zabbix { zabbix_server_host => "zabbix.example.com" zabbix_host => "host_field" zabbix_key => "key_field" zabbix_value => "value_field" } # ... Other outputs }
  • 51. zabbix output { if [type] == "zabbix" { zabbix { zabbix_server_host => "zabbix.example.com" zabbix_host => "host_field" zabbix_key => "key_field" zabbix_value => "value_field" } } }
  • 52. zabbix output { if [type] == "zabbix" { zabbix { zabbix_server_host => "zabbix.example.com" zabbix_host => "host_field" multi_value => [ "k1", "v1", "k2", "v2" ] } } }
  • 54. IRC ‣ Monitor IRC for catch word or phrase ‣ Send to Zabbix if the word is given
  • 55. input input { irc { channels => [ "#zabbix" ] host => "irc.freenode.org" nick => "howdy" port => 6667 type => "irc" } }
  • 56. filter if [type] == "irc" { if [message] =~ /^.*TESTING.*$/ { mutate { add_field => { "[@metadata][irc_key]" => "message" } add_field => { "[@metadata][zabbix_host]" => "irc" } add_tag => "testing" } }
  • 57. output if [type] == "irc" and "testing" in [tags] { zabbix { zabbix_server_host => "localhost" zabbix_host => "[@metadata][zabbix_host]" zabbix_key => "[@metadata][irc_key]" zabbix_value => "message" } }
  • 59. NGINX ‣ Capture NGINX logs for virtual hosts ‣ Watch for error codes (400 - 599) ‣ Send to Zabbix when one comes in ‣ Bonus: Send the client IP that generated the code
  • 60. input input { file { path => "/path/to/nxinx.log" type => "nginx_json" } }
  • 61. filter - pt.1 json { source => "message" remove_field => "message" } if [type] == "nginx_json" { mutate { replace => { "host" => "%{vhost}" } remove_field => "vhost" }
  • 62. filter - pt.2 geoip { source => "clientip" } if [useragent] != "" { useragent { source => "useragent" } } if [referrer] == "-" { mutate { remove_field => "referrer" } }
  • 63. filter - pt.3 if [status] >= 400 and [host] != "localhost" { mutate { add_field => { "[@metadata][status_key]" => "status" } add_field => { "[@metadata][clientip_key]" => "clientip" }
  • 64. filter - pt.4 add_field => { "[@metadata][error]" => "error[%{status},]" } add_field => { "[@metadata][counter]" => "1" } } } }
  • 65. output - 1 if [type] == "nginx_json" { if [status] >= 400 { zabbix { zabbix_server_host => "localhost" zabbix_host => "host" zabbix_key => "[@metadata][error]" zabbix_value => "[@metadata][counter]" } zabbix host key value fieldname host [@metadata][error] [@metadata][counter] value untergeek.com error[404,] 1
  • 66. output - 2 zabbix { zabbix_server_host => "localhost" zabbix_host => "host" multi_value => [ "[@metadata][status_key]", "status", "[@metadata][clientip_key]", "clientip" ] }
  • 70. Conclusion ‣ https://www.elastic.co/guide/en/logstash/current/index.html ‣ https://github.com/elastic/logstash ‣ https://github.com/logstash-plugins/logstash-output-zabbix ‣ https://discuss.elastic.co/c/logstash ‣ #logstash on irc.freenode.org