暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

修改nginx日志文件为json格式、以便使用ELK进行分析【测试成功】

巴韭特锁螺丝 2024-03-19
105

一、需求背景

    通过ELK来分析nginx日志文件,默认格式为log格式,传输到es中需要经过grok插件进行处理并转换成json格式,这一过程很消耗logstash资源的,而且传入到es中的字段并不容易分析,所以在收集端先将日志转为json格式。

二、具体配置

    修改Nginx主配置文件

    vim  usr/local/nginx/conf/nginx.conf

    在http对应站点log_format模块增加以下配置:

         log_format json '{ "@timestamp": "$time_iso8601", '
    '"time": "$time_iso8601", '
    '"clientip": "$remote_addr", '
    '"remote_user": "$remote_user", '
    '"body_bytes_sent": "$body_bytes_sent", '
    '"request_time": "$request_time", '
    '"status": "$status", '
    '"host": "$host", '
    '"request": "$request", '
    '"request_method": "$request_method", '
    '"uri": "$uri", '
    '"http_referrer": "$http_referer", '
    '"body_bytes_sent":"$body_bytes_sent", '
    '"http_x_forwarded_for": "$http_x_forwarded_for", '
    '"http_user_agent": "$http_user_agent" '
    '}';



    在server配置项之下,增加:

    access_log  /var/log/nginx/io.log  json;

    三、重载nginx生效

      [root@ELK-Master nginx]# tail -f /var/log/nginx/io.log
      "@timestamp""2023-11-07T10:45:03+08:00""time""2023-11-07T10:45:03+08:00""clientip""192.168.3.13""remote_user""-""body_bytes_sent""0""request_time""0.000""status""304""host""192.168.3.88""request""GET / HTTP/1.1""request_method""GET""uri""/index.html""http_referrer""-""body_bytes_sent":"0""http_x_forwarded_for""-""http_user_agent""Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36" }


      文章转载自巴韭特锁螺丝,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

      评论