`
corejava2008
  • 浏览: 296549 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Nginx 输出Json格式日志

阅读更多

在项目中,为了提高数据处理速度,需要Nginx输入Json格式的日志,处理方式如下:

 

修改NGINX_HOME/conf/nginx.conf文件,开启log_format格式,并配置格式定义如下:

 

log_format logstash_json '{ "@timestamp": "$time_iso8601", '
'"remote_addr": "$remote_addr", '
'"referer": "$http_referer", '
'"request": "$request", '
'"status": $status, '
'"bytes":$body_bytes_sent, '
'"agent": "$http_user_agent", '
'"x_forwarded": "$http_x_forwarded_for", '
'"upstr_addr": "$upstream_addr",'
'"upstr_host": "$upstream_http_host",'
'"ups_resp_time": "$upstream_response_time" }';

 

 开启Access日志

 access_log  logs/access.log  logstash_json;

 

配置完成后,reload Nginx服务

sbin/nginx -s reload

 

查看输出的日志格式:

{ "@timestamp": "2015-05-19T17:20:16+08:00", "remote_addr": "192.168.99.34", "referer": "http://10.10.20.212/qmonitor/", "request": "GET /qmonitor/css/bootstrap-responsive.min.css HTTP/1.1", "status": 200, "bytes":16451, "agent": "Mozilla/5.0 (Windows NT 6.1; rv:35.0) Gecko/20100101 Firefox/35.0", "x_forwarded": "-", "upstr_addr": "10.10.20.164:9480","upstr_host": "-","ups_resp_time": "0.002" }
{ "@timestamp": "2015-05-19T17:20:16+08:00", "remote_addr": "192.168.99.34", "referer": "http://10.10.20.212/qmonitor/", "request": "GET /qmonitor/css/font-awesome.min.css HTTP/1.1", "status": 200, "bytes":21141, "agent": "Mozilla/5.0 (Windows NT 6.1; rv:35.0) Gecko/20100101 Firefox/35.0", "x_forwarded": "-", "upstr_addr": "10.10.20.164:9480","upstr_host": "-","ups_resp_time": "0.001" }
{ "@timestamp": "2015-05-19T17:20:16+08:00", "remote_addr": "192.168.99.34", "referer": "http://10.10.20.212/qmonitor/", "request": "GET /qmonitor/css/bootstrap.light.min.css HTTP/1.1", "status": 200, "bytes":120584, "agent": "Mozilla/5.0 (Windows NT 6.1; rv:35.0) Gecko/20100101 Firefox/35.0", "x_forwarded": "-", "upstr_addr": "10.10.20.164:9480","upstr_host": "-","ups_resp_time": "0.003" }
{ "@timestamp": "2015-05-19T17:20:16+08:00", "remote_addr": "192.168.99.34", "referer": "http://10.10.20.212/qmonitor/", "request": "GET /qmonitor/img/small.png HTTP/1.1", "status": 200, "bytes":480, "agent": "Mozilla/5.0 (Windows NT 6.1; rv:35.0) Gecko/20100101 Firefox/35.0", "x_forwarded": "-", "upstr_addr": "10.10.20.164:9480","upstr_host": "-","ups_resp_time": "0.002" }
{ "@timestamp": "2015-05-19T17:20:17+08:00", "remote_addr": "192.168.99.34", "referer": "http://10.10.20.212/qmonitor/", "request": "GET /qmonitor/app/app.js HTTP/1.1", "status": 200, "bytes":658010, "agent": "Mozilla/5.0 (Windows NT 6.1; rv:35.0) Gecko/20100101 Firefox/35.0", "x_forwarded": "-", "upstr_addr": "10.10.20.164:9480","upstr_host": "-","ups_resp_time": "0.008" }
{ "@timestamp": "2015-05-19T17:20:17+08:00", "remote_addr": "192.168.99.34", "referer": "http://10.10.20.212/qmonitor/", "request": "GET /qmonitor/config.js HTTP/1.1", "status": 200, "bytes":2298, "agent": "Mozilla/5.0 (Windows NT 6.1; rv:35.0) Gecko/20100101 Firefox/35.0", "x_forwarded": "-", "upstr_addr": "10.10.20.164:9480","upstr_host": "-","ups_resp_time": "0.002" }
{ "@timestamp": "2015-05-19T17:20:18+08:00", "remote_addr": "192.168.99.34", "referer": "http://10.10.20.212/qmonitor/css/font-awesome.min.css", "request": "GET /qmonitor/font/fontawesome-webfont.woff?v=3.2.1 HTTP/1.1", "status": 304, "bytes":0, "agent": "Mozilla/5.0 (Windows NT 6.1; rv:35.0) Gecko/20100101 Firefox/35.0", "x_forwarded": "-", "upstr_addr": "10.10.20.164:9480","upstr_host": "-","ups_resp_time": "0.002" }

 

 

分享到:
评论
1 楼 ahack 2015-05-21  
看起来只要你格式化的变量中任何一个地方引号没闭合你序列化的时候就会有问题

相关推荐

    nginx中用JSON格式记录日志的配置示例

    在互联网技术中,日志记录是至关重要的,它帮助我们监控、调试以及优化服务器和应用...对于使用Logstash等日志分析工具的用户来说,这样的日志格式尤为有用,因为这些工具能够更有效地解析和使用结构化的JSON日志数据。

    nginx-ingress 日志持久化

    对于更复杂的日志格式,例如JSON格式,你可以通过配置Nginx的`log_format`指令来定义,以便于自动化处理和分析。例如,上面展示的JSON格式日志包含了请求时间戳、客户端IP、请求方法、状态码等详细信息,这对于日志...

    goaccess—nginx 日志分析工具

    GoAccess 支持多种日志格式,包括Nginx的自定义日志格式。它可以从日志文件中提取这些信息,并以图表、表格等形式展示出来,包括但不限于以下内容: 1. **访问者统计**:展示访问者的总数、唯一IP、地理位置分布、...

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

    1. Nginx日志输出:我们首先需要在Nginx中配置日志输出,以JSON格式输出日志信息。 2. Filebeat日志上报:我们使用Filebeat将日志信息发送到Elasticsearch中。 3. Elasticsearch聚合:Elasticsearch对日志信息进行...

    Nginx设置日志打印post请求参数的方法

    在日常运维工作中,了解如何定制Nginx日志格式并有效利用这些信息,对于提升系统的稳定性和安全性有着积极的作用。同时,也要注意日志的管理,避免过多的日志占用磁盘空间,可以结合日志切割策略,如按日期切割,来...

    用Prometheus细化Nginx监控

    1. **nginx-module-vts**: 这是Nginx的一个虚拟主机流量状态模块,能够输出JSON格式的监控数据。它兼容Nginx的多个版本,包括Tengine。通过在Nginx配置中启用此模块,可以在服务器上添加一个`/status`接口,用于展示...

    06_Python3处理Nginx日志.zip

    默认的Nginx日志格式通常称为"combined log format",其结构如下: ``` $remote_addr - $remote_user [$time_local] "$request" $status $body_bytes_sent "$http_referer" "$http_user_agent" "$gzip_ratio" ``` ...

    echo-nginx-module-0.58.tar.gz

    它由OpenResty团队开发,用于增强Nginx的输出处理能力,特别是在日志记录、性能测试和调试方面表现突出。0.58版本的echo-nginx-module包含了许多优化和新特性,使得开发者能够更加灵活地控制Nginx的响应行为。 二、...

    nginx监控工具GoAccess

    它支持多种日志格式,包括Nginx的combined、json、csv等,可以轻松处理高流量网站的日志数据,提供实时的访问统计信息,如访问量、访问者来源、热门页面、HTTP状态码分布等。 在使用GoAccess时,首先要确保Nginx的...

    16-08 nginx-hls-多码率测试环境搭建1

    6. **配置文件**:配置文件`nginx.conf`是Nginx服务器的核心配置,包含了服务器的监听端口、日志设置、虚拟主机、RTMP模块的配置等。`daemon off`设置使得Nginx以非守护进程模式运行,方便调试。 7. **HLS多码率**...

    lua-cjson-2.1.0

    Nginx的HTTP Lua模块允许在Nginx配置文件中嵌入Lua代码,通过`lua_cjson`模块,可以方便地在Nginx中进行JSON数据的处理,例如接收和响应JSON格式的HTTP请求,进行数据的转换和计算。 **四、使用示例** ```lua ...

    BASH-log_nginx:httpd 日志的简单解析器(nginxapache)

    2. **解析日志格式**:nginx 和 apache 的日志格式有所不同,脚本可能包含针对这两种格式的解析逻辑,如使用正则表达式分割每条记录。 3. **统计信息**:脚本可能计算访问次数、IP 地址频率、错误率等统计信息。 4. ...

    geostat:GeoStat,Python脚本,用于解析Nginx和Apache日志文件并从传入IP获取GEO数据

    GeoStat版本2.0 GeoStat这是一个基于Python的脚本,用于解析Nginx和Apache日志文件,并从传入的IP中获取GEO数据。 该脚本将解析的数据转换为JSON格式并将其发送到InfluxDB数据库,因此您可以使用它来构建漂亮的...

    kong日志.pdfn

    FileLog插件记录的日志格式是JSON格式,包含了请求和响应的详细信息,例如: - `request`:包含请求相关信息,如`method`(请求方法)、`uri`(请求URI)、`url`(请求的完整URL)、`headers`(请求头)、`...

    Ruby-HttpLogHTTP请求日志输出

    此外,HttpLog还提供了一些高级功能,例如自定义日志格式、过滤特定请求或响应、或者在特定情况下触发回调。这可以通过配置选项实现,例如: ```ruby HttpLog.options[:filter] = lambda { |request, response| ...

    第四章:项目:ELK+Filebeat+Redis部署海量日志分析平台1

    - 在Nginx节点上配置Nginx服务并调整日志格式为JSON; - 在Nginx节点上安装Filebeat,配置将Nginx日志输出到Redis; - 在Logstash节点上配置服务,使其从Redis获取数据; - 配置Kibana,添加索引模板以显示Nginx...

    ELK日志收集系统讲析

    例如,Nginx可以通过配置文件中的`log_format json`定义输出为JSON格式的日志。 ``` log_format json'{"@timestamp":"$time_iso8601",' '"@fields":{' '"remote_addr":"$http_x_forwarded_for",' '"upstream_...

    nginx-1-9-1.tar.gz

    4. `8eee929b2f4486d68b1692cff30661b7db21d61652835340a1da67eebfcb4c1a`:这是另一个哈希值命名的文件,可能与软件构建过程有关,如编译日志或特定阶段的输出。 5. `c757a20ecccc7cda9214442cdea56dda9901af6eb...

    ELK集群的部署、使用以及备份与版本升级.pdf

    为了更好地利用ELK进行日志分析,通常会将Nginx日志格式转换为JSON,因为JSON格式便于解析和处理。Logstash可以通过配置输入插件读取Nginx日志,使用grok filter解析成JSON格式,然后输出到Elasticsearch。 **八、...

    cpp-GoAccess可视化Web日志分析器

    4. **多格式支持**:除了标准的Apache日志格式,GoAccess还能处理Nginx、Lighttpd等多种服务器日志格式,具有良好的兼容性。 5. **性能优化**:在处理大量日志时,GoAccess利用内存映射技术加速读取,确保了高效的...

Global site tag (gtag.js) - Google Analytics