在项目中,为了提高数据处理速度,需要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" }
相关推荐
在互联网技术中,日志记录是至关重要的,它帮助我们监控、调试以及优化服务器和应用...对于使用Logstash等日志分析工具的用户来说,这样的日志格式尤为有用,因为这些工具能够更有效地解析和使用结构化的JSON日志数据。
对于更复杂的日志格式,例如JSON格式,你可以通过配置Nginx的`log_format`指令来定义,以便于自动化处理和分析。例如,上面展示的JSON格式日志包含了请求时间戳、客户端IP、请求方法、状态码等详细信息,这对于日志...
GoAccess 支持多种日志格式,包括Nginx的自定义日志格式。它可以从日志文件中提取这些信息,并以图表、表格等形式展示出来,包括但不限于以下内容: 1. **访问者统计**:展示访问者的总数、唯一IP、地理位置分布、...
1. Nginx日志输出:我们首先需要在Nginx中配置日志输出,以JSON格式输出日志信息。 2. Filebeat日志上报:我们使用Filebeat将日志信息发送到Elasticsearch中。 3. Elasticsearch聚合:Elasticsearch对日志信息进行...
在日常运维工作中,了解如何定制Nginx日志格式并有效利用这些信息,对于提升系统的稳定性和安全性有着积极的作用。同时,也要注意日志的管理,避免过多的日志占用磁盘空间,可以结合日志切割策略,如按日期切割,来...
1. **nginx-module-vts**: 这是Nginx的一个虚拟主机流量状态模块,能够输出JSON格式的监控数据。它兼容Nginx的多个版本,包括Tengine。通过在Nginx配置中启用此模块,可以在服务器上添加一个`/status`接口,用于展示...
默认的Nginx日志格式通常称为"combined log format",其结构如下: ``` $remote_addr - $remote_user [$time_local] "$request" $status $body_bytes_sent "$http_referer" "$http_user_agent" "$gzip_ratio" ``` ...
它由OpenResty团队开发,用于增强Nginx的输出处理能力,特别是在日志记录、性能测试和调试方面表现突出。0.58版本的echo-nginx-module包含了许多优化和新特性,使得开发者能够更加灵活地控制Nginx的响应行为。 二、...
它支持多种日志格式,包括Nginx的combined、json、csv等,可以轻松处理高流量网站的日志数据,提供实时的访问统计信息,如访问量、访问者来源、热门页面、HTTP状态码分布等。 在使用GoAccess时,首先要确保Nginx的...
6. **配置文件**:配置文件`nginx.conf`是Nginx服务器的核心配置,包含了服务器的监听端口、日志设置、虚拟主机、RTMP模块的配置等。`daemon off`设置使得Nginx以非守护进程模式运行,方便调试。 7. **HLS多码率**...
Nginx的HTTP Lua模块允许在Nginx配置文件中嵌入Lua代码,通过`lua_cjson`模块,可以方便地在Nginx中进行JSON数据的处理,例如接收和响应JSON格式的HTTP请求,进行数据的转换和计算。 **四、使用示例** ```lua ...
2. **解析日志格式**:nginx 和 apache 的日志格式有所不同,脚本可能包含针对这两种格式的解析逻辑,如使用正则表达式分割每条记录。 3. **统计信息**:脚本可能计算访问次数、IP 地址频率、错误率等统计信息。 4. ...
GeoStat版本2.0 GeoStat这是一个基于Python的脚本,用于解析Nginx和Apache日志文件,并从传入的IP中获取GEO数据。 该脚本将解析的数据转换为JSON格式并将其发送到InfluxDB数据库,因此您可以使用它来构建漂亮的...
FileLog插件记录的日志格式是JSON格式,包含了请求和响应的详细信息,例如: - `request`:包含请求相关信息,如`method`(请求方法)、`uri`(请求URI)、`url`(请求的完整URL)、`headers`(请求头)、`...
此外,HttpLog还提供了一些高级功能,例如自定义日志格式、过滤特定请求或响应、或者在特定情况下触发回调。这可以通过配置选项实现,例如: ```ruby HttpLog.options[:filter] = lambda { |request, response| ...
- 在Nginx节点上配置Nginx服务并调整日志格式为JSON; - 在Nginx节点上安装Filebeat,配置将Nginx日志输出到Redis; - 在Logstash节点上配置服务,使其从Redis获取数据; - 配置Kibana,添加索引模板以显示Nginx...
例如,Nginx可以通过配置文件中的`log_format json`定义输出为JSON格式的日志。 ``` log_format json'{"@timestamp":"$time_iso8601",' '"@fields":{' '"remote_addr":"$http_x_forwarded_for",' '"upstream_...
4. `8eee929b2f4486d68b1692cff30661b7db21d61652835340a1da67eebfcb4c1a`:这是另一个哈希值命名的文件,可能与软件构建过程有关,如编译日志或特定阶段的输出。 5. `c757a20ecccc7cda9214442cdea56dda9901af6eb...
为了更好地利用ELK进行日志分析,通常会将Nginx日志格式转换为JSON,因为JSON格式便于解析和处理。Logstash可以通过配置输入插件读取Nginx日志,使用grok filter解析成JSON格式,然后输出到Elasticsearch。 **八、...
4. **多格式支持**:除了标准的Apache日志格式,GoAccess还能处理Nginx、Lighttpd等多种服务器日志格式,具有良好的兼容性。 5. **性能优化**:在处理大量日志时,GoAccess利用内存映射技术加速读取,确保了高效的...