ELK创建索引配置

ELK需要收集多种类型日志,并且在kibana分开使用不同索引相关配置

logstash分别收集tomcat,nginx日志

input {
  beats {
    port => 5044
  }
}

filter {
  #根据type字段来区分日志,在filebeat配置字段为 document_type
  if [type] == "nginx" {
    grok {
      patterns_dir => ["/etc/logstash/patterns"]
      match => {
          "message" => "%{NGINX_COMMONLOG}"
      }
    }
    date {
      match => ["timestamp", "dd/MMM/yyyy:HH:mm:ss Z"]
    }
  }

  if [type] == "tomcat_access" {
    grok {
      patterns_dir => ["/etc/logstash/patterns"]
      match => {
          "message" => "%{COMMONAPACHELOG}"
      }
    }
    date {
      match => ["timestamp", "dd/MMM/yyyy:HH:mm:ss Z"]
    }
  }
}

output {
  if [type] == "nginx" {
    #判断nginx响应码,保存5XX,4XX的消息
    if [response] =~ /^5\d\d/ or [response] =~ /^4\d\d/ {
      elasticsearch {
        hosts => ["127.0.0.1:9200"]
        #指定索引名,在kibana创建索引使用 nginx-*
        index=>"nginx-%{+YYYY.MM.dd}"
      }
    }
  }

  if [type] == "tomcat_access" {
      elasticsearch {
        hosts => ["127.0.0.1:9200"]
        #指定索引名,在kibana创建索引使用 tomcat_access-*
        index=>"tomcat_access-%{+YYYY.MM.dd}"
      }
  }
}

filebeat配置,配置不同的document_type字段来区分日志类型

filebeat.prospectors:
- input_type: log
#不同的日志配置不同的 document_type, 如果是tomcat日志可以配置为tomcat_access
  document_type: nginx
  paths:
      - /data/logs/info.log
output.logstash:
  hosts: ["18.18.18.18:5046"]

你可能感兴趣的:(ELK创建索引配置)