ELK7.4-Lostash Grok格式化Nginx日志
admin
2023-03-03 18:20:45
0

小生博客:http://xsboke.blog.51cto.com

                -------谢谢您的参考,如有疑问,欢迎交流

目录

  • 需求
  • 环境
  • Grok官方介绍
  • Web端配置
  • 部分效果展示

需求

使用filebeat收集nginx访问日志,output到logstash,
logstash使用grok filter plugin将获取到的nginx日志结构化
将结构化的nginx日志output到elasticsearch

环境

  • 这里只列出了和grok相关的配置,其他配置参考文章ELK7.4-快速入门实现数据收集.

    web               172.16.100.251      nignx/filebeat/logstash 
    elasticsearch 172.16.100.252      elasticsearch/kibana

Grok的官方介绍

  1. 解析任意文本并将其结构化。

  2. Grok是将非结构化日志数据解析为结构化和可查询内容的好方法。

  3. 该工具非常适合syslog日志,apache和其他Web服务器日志,mysql日志,以及通常用于人类而非计算机使用的任何日志格式。

  4. Grok语法:%{SYNTAX:SEMANTIC}

    • SYNTAX:匹配语法,也就是Grok语法.附:点击查看:Grok Patterns
    • SEMANTIC:用于标识匹配到的字符串,也就是field.
  5. 官方推荐的一个验证Grok语法的web工具,使用方法,将需要解析的字符串写入到第一个文本输入框,将写好的Grok表达式写入第二个输入框,然后勾选Named Captures Only即可.

    示例:

    • Nginx Log Format:$request_time|$host|$remote_addr|[$time_local]
    • Nginx Log:0.123|baidu.com|192.168.0.1|[18/Oct/2019:11:22:14 +0800]
      -ELK7.4-Lostash Grok格式化Nginx日志
    • 提示,为了避免"|"被转义,这里使用"\"禁止其转义.

web配置

1. Nginx Log Format
# 这里的日志格式比较复杂,是为了更好的展示Grok
log_format access   '$request_time|$host|$remote_addr|$remote_user|[$time_local]|$request|$status|$upstream_status|$upstream_response_time|$upstream_addr|$body_bytes_sent|$request_body|$http_referer|$http_user_agent|$http_x_forwarded_for|$http_x_forwarded_path,$server_addr|$upstream_cache_status';
2. filebeat
vim /etc/filebeat/filebeat.yml

filebeat.inputs:
- type: log
  enabled: true
  paths:
    - /var/log/nginx/jpg_access.log
  tags: ["nginx_access"]
3. logstash
vim /etc/logstash/conf.d/nginx.conf

input {
    beats {
        port => 5044
    }
}

filter {
    if "nginx_access" in [tags] {
        grok {
            match => { "message" => "%{NUMBER:request_time}\|%{IPORHOST:host}\|%{IPORHOST:remote_addr}\|%{USERNAME:remote_user}\|\[%{HTTPDATE:time_local}\]\|%{NOTSPACE:request_method} %{NOTSPACE:request} (?:HTTP/%{NUMBER:http_version})\|%{NUMBER:status}\|%{NUMBER:upstream_status}\|%{NUMBER:upstream_response_time}\|%{NOTSPACE:upstream_addr}\|%{NUMBER:body_bytes_sent}\|%{NOTSPACE:request_body}\|%{NOTSPACE:http_referer}\|%{GREEDYDATA:http_user_agent}\|%{NOTSPACE:http_x_forwarded_for}\|%{NOTSPACE:http_x_forwarded_path}\|%{NOTSPACE:upstream_cache_status}" }
        }

        geoip {
            source => "http_x_forwarded_for" # 通过geoip库查询IP归属地
        }
    }
}

output {
    if "nginx_access" in [tags] {
        elasticsearch {
            hosts => ["172.16.100.252"]
            index => "nginx_access-%{+YYYY.MM.dd}"
        }
    }
}

效果

然后在Kibana上面添加索引,在Discover页面就会看多自定义的fields

这样在更利于后期的数据分析,并且在Discover页面可以更直观的过滤或者查看数据.
ELK7.4-Lostash Grok格式化Nginx日志

相关内容

热门资讯

【第一消息】“369河南麻将.... 【第一消息】“369河南麻将.辅助开挂神器?”其实是有挂您好,369河南麻将这个游戏其实有挂的,确实...
玩家最新攻略“酉阳大贰.究竟有... 玩家最新攻略“酉阳大贰.究竟有挂吗?”必胜开挂神器您好,酉阳大贰这个游戏其实有挂的,确实是有挂的,需...
【第一资讯】“万人玩麻将.可以... 有 亲,根据资深记者爆料万人玩麻将是可以开挂的,确实有挂(咨询软件无需打...
我来教教您“丫丫衡阳字牌.开挂... 我来教教您“丫丫衡阳字牌.开挂器?”太坑了原来有挂您好,丫丫衡阳字牌这个游戏其实有挂的,确实是有挂的...
最新民调:赖清德仍未脱困,岛内... 海峡导报综合报道 “台湾民意基金会”最新民调表明,四成三台湾民众赞同赖清德处理政事的方式,四成九不赞...
玩家最新攻略“非凡卡五星.辅助... 您好:非凡卡五星这款游戏可以开挂,确实是有挂的,需要了解加客服微信【9784099】很多玩家在这款游...
云南兰坪县企业向澜沧江支流倾倒... 澎湃新闻记者 熊强12月9日,网友反映云南怒江州兰坪县河西乡有企业向澜沧江支流倾倒工业废渣,引发关注...
【今日要闻】“闲来贵州麻将.辅... 有 亲,根据资深记者爆料闲来贵州麻将是可以开挂的,确实有挂(咨询软件无需...
【第一资讯】“微信拼三张.辅助... 【第一资讯】“微信拼三张.辅助开挂神器?”其实是有挂您好,微信拼三张这个游戏其实有挂的,确实是有挂的...
终于懂了“琼雀海南麻将.怎么装... 网上科普关于“琼雀海南麻将有没有挂”话题很是火热,小编也是针对琼雀海南麻将作*弊开挂的方法以及开挂对...