ELK : Exemple logstash config Nagios

si vous ne passez pas par le pluggin mais par un simple logstash

input {
 file {
 path => [ "D:/project/tmp/nagios*" ]
 start_position => "beginning"
 type => "nagios-alert"
 }
}

filter {
 if [type] == "nagios-alert" {

if [message] =~ /SERVICE DOWNTIME ALERT/ {
 grok {
 match => { "message" => "\[%{INT:timestamp}\] %{DATA:nagios_type}: %{DATA:nagios_hostname};%{DATA:nagios_service_command};%{DATA:nagios_service_stat};%{GREEDYDATA:nagios_message}" }
 }
 }
 if [message] =~ /SERVICE ALERT/ {
 grok {
 match => { "message" => "\[%{INT:timestamp}\] %{DATA:nagios_type}: %{DATA:nagios_hostname};%{DATA:nagios_serivce_up_down};%{DATA:nagios_state};%{DATA:nagios_serivce_stat_up_down};%{DATA:nagios_serivce_retry_up_down};%{GREEDYDATA:nagios_message}" }
 }
 }
 if [message] =~ /HOST DOWNTIME ALERT/ {
 grok {
 match => { "message" => "\[%{INT:timestamp}\] %{DATA:nagios_type}: %{DATA:nagios_hostname};%{DATA:nagios_host_stat};%{GREEDYDATA:nagios_message}" }
 }
 }
 if [message] =~ /HOST ALERT/ {
 grok {
 match => { "message" => "\[%{INT:timestamp}\] %{DATA:nagios_type}: %{DATA:nagios_hostname};%{DATA:nagios_host_up_down};%{DATA:nagios_host_stat_up_down};%{DATA:nagios_host_retry_up_down};%{GREEDYDATA:nagios_message}" }
 }
 }
 if [message] =~ /CURRENT SERVICE STATE/ {
 grok {
 match => { "message" => "\[%{INT:timestamp}\] %{DATA:nagios_type}: %{DATA:nagios_hostname};%{DATA:nagios_service_command};%{DATA:nagios_serivce_up_down};%{DATA:nagios_serivce_stat_up_down};%{DATA:nagios_serivce_retry_up_down};%{GREEDYDATA:nagios_message}" }
 }
 }
 if [message] =~ /CURRENT HOST STATE/ {
 grok {
 match => { "message" => "\[%{INT:timestamp}\] %{DATA:nagios_type}: %{DATA:nagios_hostname};%{DATA:nagios_host_up_down};%{DATA:nagios_host_stat_up_down};%{DATA:nagios_host_retry_up_down};%{GREEDYDATA:nagios_message}" }
 }
 }
 if [message] =~ /HOST NOTIFICATION/ {
 grok {
 match => { "message" => "\[%{INT:timestamp}\] %{DATA:nagios_type}: %{DATA:nagios_notifyname};%{DATA:nagios_hostname};%{DATA:nagios_state};%{DATA:nagios_contact};%{GREEDYDATA:nagios_message}" }
 }
 }
 if [message] =~ /SERVICE NOTIFICATION/ {
 grok {
 match => { "message" => "\[%{INT:timestamp}\] %{DATA:nagios_type}: %{DATA:nagios_notifyname};%{DATA:nagios_hostname};%{DATA:nagios_service_command};%{DATA:nagios_state};%{DATA:nagios_contact};%{GREEDYDATA:nagios_message}" }
 }
 }
 if [message] =~ /EXTERNAL COMMAND/ {
 grok {
 match => { "message" => "\[%{INT:timestamp}\] %{DATA:nagios_type}: %{DATA:nagios_message};%{GREEDYDATA:nagios_hostname}" }
 }
 }
 if [message] =~ /Warning/ {
 grok {
 match => { "message" => "\[%{INT:timestamp}\] %{DATA:nagios_type}: %{GREEDYDATA:nagios_message}" }
 }
 }
 } 
 date {
 match => ["timestamp", "UNIX"]
 }
 }


output {
 ## Debug
 stdout { codec => rubydebug }


}
Étiquettes : ,

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *