zoukankan      html  css  js  c++  java
  • 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。

  • 相关阅读:
    python_24_test
    python_23_tuple
    python_22_enumerate
    python_20_列表
    python_21_copy
    python_19_编码解码
    python_18_三元运算
    python_16_自己建立模块
    关于主键(PRIMARY KEY)和自增(AUTO_INCREMENT)结合使用的知识点
    MySQL root用户忘记密码怎么办?修改密码方法:skip-grant-tables
  • 原文地址:https://www.cnblogs.com/gaoyuechen/p/8309595.html
Copyright © 2011-2022 走看看