elk-nginx输出json格式的日志

elk-nginx输出json格式的日志

把Nginx日志的格式输出成JSON格式展示在Kibana面板,生产环境中基本都是这么使用。

1, 配置nginx

主要修改nginx的访问日志格式,这里定义成json格式,以便后面logstash更好的处理,建议生产环境也这样使用。在主配置/etc/nginx/nginx.conf文件中添加如下内容(注释其他日志格式):

复制代码
    log_format json '{"@timestamp":"$time_iso8601",'
                 '"host":"$server_addr",'
                 '"clientip":"$remote_addr",'
                 '"size":$body_bytes_sent,'
                 '"responsetime":$request_time,'
                 '"upstreamtime":"$upstream_response_time",'
                 '"upstreamhost":"$upstream_addr",'
                 '"http_host":"$host",'
                 '"url":"$uri",'
                 '"referer":"$http_referer",'
                 '"agent":"$http_user_agent",'
                 '"status":"$status"}';
复制代码
在/etc/nginx/conf.d/default.conf中添加如下一行,定义nginx日志使用的格式,以及日志文件的位置。

access_log  /var/log/nginx/access.log  json;
重新启动 nginx

nginx -s stop
nginx
2, 配置logstash

修改 indexer的角色配置文件  logstash_indexer.conf

复制代码
input {
     redis {
       host => "localhost"
       data_type => "list"
       key => "filebeat"
       type => "redis-input"
    }
}
 
filter {
     json {
       source => "message"
       remove_field => "message"
     }
}
 
output {
    elasticsearch {
      hosts => ["localhost"]
      index => "logstash-nginx-%{+YYYY.MM.dd}"
      document_type => "nginx"
      # template => "/usr/local/logstash-2.3.2/etc/elasticsearch-template.json"
      workers => 1
      flush_size => 20000
      idle_flush_time => 10
   }
}
复制代码
删除老的 es数据

    
$ rm -fr /data/elasticsearch/*
然后重启 logstash 和 elasticsearch, 继续刷新 nginx日志

 

 

转载自: http://www.ywnds.com/?p=9776

 

当服务器上 es安装好后,第一步就是数据的增删改查。

有一些概念:

索引:  索引是集群用来存放数据的地方,可以理解为一个数据库。

index_type:索引类型,数据在索引中按照type存放。可以理解为数据库中的表。

document: es 中存放数据的最小单位,相当于数据库表中每一行的数据。  后面结合java 代码实现es 搜索,操作的结果就是document。

 

转载于:https://www.cnblogs.com/gaoyuechen/p/8309595.html

你可能感兴趣的:(elk-nginx输出json格式的日志)