`

Ngnix log to Elasticsearch

 
阅读更多

nginx-es.conf

 

input {
 file {
        path => "/opt/logtest/nginx_access.log.1"
        start_position => "beginning"
       sincedb_path => "/opt/logstash-2.3.4/sincedb/"
    }

}
filter {
   ruby{
     init => "@kname=['remote_addr','time_local','http_host','request','status','body_bytes_sent','http_referer','http_user_agent','upstream_response_time','request_time']"
     code => "event.append(Hash[@kname.zip(event['message'].split(' | '))])"
   }
  if [http_user_agent] =="-" {
     drop { }
  }
  if [request] {
    ruby {
      init => "@kname = ['method','uri','verb']"
      code => "event.append(Hash[@kname.zip(event['request'].split(' '))])"
    }
    if [uri] {
       ruby {
         init => "@kname = ['url_path', 'url_args']"
         code => "event.append(Hash[@kname.zip(event['uri'].split('?'))])"
      }
    }
  }
  geoip {
    source => "remote_addr"
  }
  mutate {
     convert => [
          "body_bytes_sent", "integer",
          "status", "integer",
          "upstream_response_time", "float",
          "request_time", "float"
        ]
   add_field => {"type" => "nginx"}
   remove_field => ["uri","request"]
  }
  date {
    match => ["time_local", "dd/MMM/yyyy:HH:mm:ss +0800", "ISO8601"]
    target => "@timestamp"
    remove_field => ["time_local", "message"]
  }

}

  

output {
  stdout{ codec => rubydebug}

  elasticsearch {
     hosts => ["192.168.0.135:9200"]
     index => "logstash-%{type}-%{+YYYY.MM.dd}"
     workers => 2
     template_overwrite => true
   }
}

 

log content sample

192.168.100.10 | 29/Jul/2016:17:19:36 +0800 | api2.unichat.cn | GET / HTTP/1.1 | 200 | 17 | - | - | 0.052 | 0.052
118.212.135.122 | 29/Jul/2016:17:19:44 +0800 | api2.unichat.cn | GET /api/uchat?page=2&recommend_sort=1469783728640 HTTP/1.1 | 200 | 3499 | - | PhotoFlow/1.0.9 (iPhone; iOS 9.2.1; Scale/2.00) | 0.200 | 0.201

 

log_format uchat "$remote_addr | $time_local | $http_host | $request | $status | $body_bytes_sent | $http_referer | $http_user_agent | $upstream_response_time | $request_time";

 

output

 

{
                  "@version" => "1",
                "@timestamp" => "2016-08-03T02:18:21.000Z",
                      "path" => "/opt/logtest/nginx_access.log",
                      "host" => "inok-c0",
               "remote_addr" => "125.71.215.46",
                 "http_host" => "api2.unichat.cn",
                    "status" => 200,
           "body_bytes_sent" => 17,
              "http_referer" => "-",
           "http_user_agent" => "check_http/v1.4.16 (nagios-plugins 1.4.16)",
    "upstream_response_time" => 0.042,
              "request_time" => 0.043,
                    "method" => "GET",
                      "verb" => "HTTP/1.1",
                  "url_path" => "/",
                  "url_args" => nil,
                     "geoip" => {
                      "ip" => "125.71.215.46",
           "country_code2" => "CN",
           "country_code3" => "CHN",
            "country_name" => "China",
          "continent_code" => "AS",
             "region_name" => "32",
               "city_name" => "Chengdu",
                "latitude" => 30.66669999999999,
               "longitude" => 104.06670000000003,
                "timezone" => "Asia/Chongqing",
        "real_region_name" => "Sichuan",
                "location" => [
            [0] 104.06670000000003,
            [1] 30.66669999999999
        ]
    },
                      "type" => "nginx"
}

 

 

 

 

 

分享到:
评论

相关推荐

    nginx-log-elasticsearch-lua:使用Lua从Nginx直接记录到Elasticsearch

    ngx.log(ngx.ERR, "failed to send request to Elasticsearch: ", err) else if res.status ~= 201 then ngx.log(ngx.ERR, "unexpected status code from Elasticsearch: ", res.status) end end ``` 五、测试...

    nginx日志测试使用 access.log.zip

    分析日志文件通常使用命令行工具,如`grep`、`awk`、`sort`和`uniq`,或者使用专门的日志分析软件如Logstash、Splunk和ELK(Elasticsearch、Logstash、Kibana)堆栈。对于大型日志,可能需要实时分析,这时可以考虑...

    nginx-log-analysis:用于分析 nginx 日志文件的很棒的 linux shell 命令的精选列表

    最后,如果你想要进行更深度的分析或自动化处理,可以考虑使用脚本语言(如Python或Perl)编写更复杂的工具,或者使用专门的日志分析软件,如Logstash、ELK Stack(Elasticsearch、Logstash、Kibana)等。...

    Filebeat 实时收集 Nginx 日志1

    配置完成后,Filebeat 将收集的日志发送至 Elasticsearch,这里需要配置 `output.elasticsearch`,包括 Elasticsearch 服务器的 IP 和端口,以及索引名称,例如 `filebeat_server_nginx_%{+YYYY-MM}`,这里的 `%{+...

    基于ELK的nginx-qps监控解决方案.docx

    3. Elasticsearch聚合:Elasticsearch对日志信息进行聚合和搜索。 4. Kibana可视化:Kibana将Elasticsearch中的数据可视化,提供丰富的图表和仪表盘功能。 nginx日志配置 在Nginx中,我们需要配置日志输出,以JSON...

    nginx日志导入elasticsearch的方法示例

    本篇文章将深入探讨如何将Nginx的日志数据导入到Elasticsearch,以便进行高效检索、分析和可视化。Nginx日志通常包含了丰富的信息,如访问者IP、请求时间、请求类型等,通过Elasticsearch可以方便地对这些数据进行...

    springboot项目查询es中的日志内容

    在本项目中,我们主要探讨如何使用SpringBoot与Elasticsearch(ES)集成,以便查询存储在ES中的日志内容。Elasticsearch是一种强大的、分布式、实时的搜索和分析引擎,常用于处理大量数据,特别是在日志管理和分析...

    实战nginx-全

    5. **日志分析**:集成Logstash和Elasticsearch,进行Nginx日志的收集与分析。 通过以上内容的学习和实践,你将能够熟练地掌握Nginx的使用和维护,无论是搭建网站、优化性能还是应对复杂的网络环境,都能得心应手。...

    Logash+Elasticsearch+Kibana 日志系统安装部署教程

    ### Logstash + Elasticsearch + Kibana (ELK) 日志系统安装部署教程 #### 一、环境准备 本文档将详细介绍如何在特定环境下部署一套基于Logstash + Elasticsearch + Kibana(简称ELK)的日志收集与分析系统。具体...

    Nginx 日志改成 JSON 格式的方法

    通过以上步骤,Nginx的日志格式就成功转换成了JSON,这将使得日志数据更易于解析和导入到各种日志管理和分析工具中,比如Elasticsearch、Logstash和Kibana等,帮助你更好地监控、分析和理解服务器的运行状况。

    nginx工具

    - **Logstash/Elasticsearch/Kibana**: 结合ELK日志收集分析栈,进行实时日志监控和分析。 6. **故障排查与维护** - **错误日志**: 查看`error.log`和`access.log`,定位问题。 - **状态检查**: 使用`ngx_...

    nginx-1.16.1.tar , nginx-1.18.0.tar

    可以使用第三方工具如 Logstash、Elasticsearch 和 Kibana (ELK stack) 对日志进行收集和分析。 **总结** Nginx 在 Linux 上的部署和使用是一项关键任务,涉及到源码下载、编译安装、配置管理等多个环节。理解其...

    elk(都是6.2.4重点-版本2-收集nginx日志-无filebeat

    在这个场景中,我们将搭建 ELK Stack 6.2.4 版本,特别关注如何在没有 Filebeat 的情况下,通过 Logstash 直接收集 Nginx 日志,并利用 Redis 作为中间缓存,最终将日志数据写入 Elasticsearch 分析和绘图。...

    轻松上手Fluentd,结合 Rainbond 插件市场,日志收集更快捷.doc

    4. **建立连接**:配置Nginx组件以连接到Elasticsearch,确保日志数据能够传输到Elasticsearch。 5. **验证日志**:在Kibana中,检查索引管理,确认存在名为`fluentd.es.nginx.log`的索引,然后创建相应的索引模式,...

    操作手册1

    然后切换到ELK用户,进入/home/ELK/ELK/elasticsearch/bin目录,执行`./elasticsearch &`启动Elasticsearch服务。在生产环境中,还需要配置Logstash和Kibana以完成完整的日志收集、处理和可视化流程。 这份操作手册...

    nginx:为nginx添加用户日志

    日志生成后,可能需要进一步处理,例如使用Logstash、Fluentd等工具收集日志,然后通过Elasticsearch存储,Kibana展示。这种方式称为ELK(Elasticsearch、Logstash、Kibana)堆栈,便于进行日志分析和监控。 5. **...

    前端开源库-common-log-format

    2. **日志聚合**:与ELK(Elasticsearch、Logstash、Kibana)堆栈或其他日志聚合平台配合,实现大规模日志管理和分析。 3. **性能优化**:通过对HTTP状态码的统计,可以发现可能存在的性能瓶颈和错误,进一步优化...

Global site tag (gtag.js) - Google Analytics