SlideShare a Scribd company logo
1 of 70
Download to read offline
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

카프카, 산전수전 노하우
카프카, 산전수전 노하우카프카, 산전수전 노하우
카프카, 산전수전 노하우if kakao
 
Meet cute-between-ebpf-and-tracing
Meet cute-between-ebpf-and-tracingMeet cute-between-ebpf-and-tracing
Meet cute-between-ebpf-and-tracingViller Hsiao
 
ストリーム処理を支えるキューイングシステムの選び方
ストリーム処理を支えるキューイングシステムの選び方ストリーム処理を支えるキューイングシステムの選び方
ストリーム処理を支えるキューイングシステムの選び方Yoshiyasu SAEKI
 
Elastic - ELK, Logstash & Kibana
Elastic - ELK, Logstash & KibanaElastic - ELK, Logstash & Kibana
Elastic - ELK, Logstash & KibanaSpringPeople
 
USENIX ATC 2017: Visualizing Performance with Flame Graphs
USENIX ATC 2017: Visualizing Performance with Flame GraphsUSENIX ATC 2017: Visualizing Performance with Flame Graphs
USENIX ATC 2017: Visualizing Performance with Flame GraphsBrendan Gregg
 
How to Avoid Common Mistakes When Using Reactor Netty
How to Avoid Common Mistakes When Using Reactor NettyHow to Avoid Common Mistakes When Using Reactor Netty
How to Avoid Common Mistakes When Using Reactor NettyVMware Tanzu
 
Introduction to eBPF and XDP
Introduction to eBPF and XDPIntroduction to eBPF and XDP
Introduction to eBPF and XDPlcplcp1
 
Blazing Performance with Flame Graphs
Blazing Performance with Flame GraphsBlazing Performance with Flame Graphs
Blazing Performance with Flame GraphsBrendan Gregg
 
From zero to hero Backing up alfresco
From zero to hero Backing up alfrescoFrom zero to hero Backing up alfresco
From zero to hero Backing up alfrescoToni de la Fuente
 
Container Performance Analysis
Container Performance AnalysisContainer Performance Analysis
Container Performance AnalysisBrendan Gregg
 
Terraform modules restructured
Terraform modules restructuredTerraform modules restructured
Terraform modules restructuredAmi Mahloof
 
Learning how AWS implement AWS VPC CNI
Learning how AWS implement AWS VPC CNILearning how AWS implement AWS VPC CNI
Learning how AWS implement AWS VPC CNIHungWei Chiu
 
왜 쿠버네티스는 systemd로 cgroup을 관리하려고 할까요
왜 쿠버네티스는 systemd로 cgroup을 관리하려고 할까요왜 쿠버네티스는 systemd로 cgroup을 관리하려고 할까요
왜 쿠버네티스는 systemd로 cgroup을 관리하려고 할까요Jo Hoon
 
Tuning TCP and NGINX on EC2
Tuning TCP and NGINX on EC2Tuning TCP and NGINX on EC2
Tuning TCP and NGINX on EC2Chartbeat
 
MySQL5.7 GA の Multi-threaded slave
MySQL5.7 GA の Multi-threaded slaveMySQL5.7 GA の Multi-threaded slave
MySQL5.7 GA の Multi-threaded slaveTakanori Sejima
 
Log analysis with the elk stack
Log analysis with the elk stackLog analysis with the elk stack
Log analysis with the elk stackVikrant Chauhan
 

What's hot (20)

카프카, 산전수전 노하우
카프카, 산전수전 노하우카프카, 산전수전 노하우
카프카, 산전수전 노하우
 
HashiCorp's Vault - The Examples
HashiCorp's Vault - The ExamplesHashiCorp's Vault - The Examples
HashiCorp's Vault - The Examples
 
Meet cute-between-ebpf-and-tracing
Meet cute-between-ebpf-and-tracingMeet cute-between-ebpf-and-tracing
Meet cute-between-ebpf-and-tracing
 
ストリーム処理を支えるキューイングシステムの選び方
ストリーム処理を支えるキューイングシステムの選び方ストリーム処理を支えるキューイングシステムの選び方
ストリーム処理を支えるキューイングシステムの選び方
 
Elastic - ELK, Logstash & Kibana
Elastic - ELK, Logstash & KibanaElastic - ELK, Logstash & Kibana
Elastic - ELK, Logstash & Kibana
 
Terraform
TerraformTerraform
Terraform
 
USENIX ATC 2017: Visualizing Performance with Flame Graphs
USENIX ATC 2017: Visualizing Performance with Flame GraphsUSENIX ATC 2017: Visualizing Performance with Flame Graphs
USENIX ATC 2017: Visualizing Performance with Flame Graphs
 
How to Avoid Common Mistakes When Using Reactor Netty
How to Avoid Common Mistakes When Using Reactor NettyHow to Avoid Common Mistakes When Using Reactor Netty
How to Avoid Common Mistakes When Using Reactor Netty
 
Introduction to eBPF and XDP
Introduction to eBPF and XDPIntroduction to eBPF and XDP
Introduction to eBPF and XDP
 
infrastructure as code
infrastructure as codeinfrastructure as code
infrastructure as code
 
Blazing Performance with Flame Graphs
Blazing Performance with Flame GraphsBlazing Performance with Flame Graphs
Blazing Performance with Flame Graphs
 
From zero to hero Backing up alfresco
From zero to hero Backing up alfrescoFrom zero to hero Backing up alfresco
From zero to hero Backing up alfresco
 
Container Performance Analysis
Container Performance AnalysisContainer Performance Analysis
Container Performance Analysis
 
Terraform modules restructured
Terraform modules restructuredTerraform modules restructured
Terraform modules restructured
 
Learning how AWS implement AWS VPC CNI
Learning how AWS implement AWS VPC CNILearning how AWS implement AWS VPC CNI
Learning how AWS implement AWS VPC CNI
 
왜 쿠버네티스는 systemd로 cgroup을 관리하려고 할까요
왜 쿠버네티스는 systemd로 cgroup을 관리하려고 할까요왜 쿠버네티스는 systemd로 cgroup을 관리하려고 할까요
왜 쿠버네티스는 systemd로 cgroup을 관리하려고 할까요
 
Tuning TCP and NGINX on EC2
Tuning TCP and NGINX on EC2Tuning TCP and NGINX on EC2
Tuning TCP and NGINX on EC2
 
Ansible - Introduction
Ansible - IntroductionAnsible - Introduction
Ansible - Introduction
 
MySQL5.7 GA の Multi-threaded slave
MySQL5.7 GA の Multi-threaded slaveMySQL5.7 GA の Multi-threaded slave
MySQL5.7 GA の Multi-threaded slave
 
Log analysis with the elk stack
Log analysis with the elk stackLog analysis with the elk stack
Log analysis with the elk stack
 

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 meetupRafal Kwasny
 
Devoxx france 2015 influxdb
Devoxx france 2015 influxdbDevoxx france 2015 influxdb
Devoxx france 2015 influxdbNicolas Muller
 
Devoxx france 2015 influx db
Devoxx france 2015 influx dbDevoxx france 2015 influx db
Devoxx france 2015 influx dbNicolas Muller
 
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
 
(Fios#02) 2. elk 포렌식 분석
(Fios#02) 2. elk 포렌식 분석(Fios#02) 2. elk 포렌식 분석
(Fios#02) 2. elk 포렌식 분석INSIGHT FORENSIC
 
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 SarbuNETWAYS
 
Automating Complex Setups with Puppet
Automating Complex Setups with PuppetAutomating Complex Setups with Puppet
Automating Complex Setups with PuppetKris 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 Hadoopclairvoyantllc
 
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 toolkitSages
 
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 AntigaRedis 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 ToolsSam 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 ZabbixZabbix
 
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 CommunityZabbix
 
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 ZabbixZabbix
 
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 UNICAMPZabbix
 
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 | ZabConf2016Zabbix
 
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 | ZabConf2016Zabbix
 
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 | ZabConf2016Zabbix
 
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 | ZabConf2016Zabbix
 
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 | ZabConf2016Zabbix
 
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 StudyZabbix
 
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 | ZabConf2016Zabbix
 
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 | ZabConf2016Zabbix
 
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 | ZabConf2016Zabbix
 
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 | ZabConf2016Zabbix
 

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

Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Google AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGGoogle AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGSujit Pal
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 

Recently uploaded (20)

Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Google AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGGoogle AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAG
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 

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