ELK7.4-Lostash GROK形式のログnginxの

ニッチのブログ:http://xsboke.blog.51cto.com

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

ディレクトリ

  • 需要
  • 環境
  • Grok公式の紹介
  • Web端配置
  • 部分的に効果的なショーケース

需要

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

環境

Grok公式発表

  1. 任意のテキストと構造化の解析。

  2. Grokこれは、非構造化ログデータの解析およびクエリ構造化されたコンテンツには良い方法です。

  3. このツールは理想的ですsyslogログapacheや他のWebサーバーのログ、mysqlログ、および任意のログ形式は、一般的に、コンピュータではなく、人間が使用されています。

  4. Grok構文:%{SYNTAX:SEMANTIC}

  5. 公式には完全に理解文法を検証するためのWebツール推奨、使用方法を、文字列を解析する必要があります最初のテキスト入力ボックス、第二の入力ボックスに書き込まGROK書かれた表現に書き込まれ、その後、チェックされるNamed Captures Onlyまで。

    例:

    • Nginx Log Format$request_time|$host|$remote_addr|[$time_local]
    • Nginx Log0.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の

おすすめ

転載: blog.51cto.com/xsboke/2443586
おすすめ