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。
时来天地皆同力,运去英雄不自由