Logstash 收集Nginx日志
1. 下载安装¶
cd /usr/local/src/elk/ wget https://artifacts.elastic.co/downloads/logstash/logstash-5.6.16.tar.gz tar xf logstash-5.6.16.tar.gz -C /opt/ ln -sf /opt/logstash-5.6.16 /opt/logstash mkdir /opt/logstash/extra cd /opt/logstash/extra cat>>nginx_logstash.conf<<EOF input { stdin { } } filter { grok { match => { "message" => '%{IPORHOST:remote_ip} - %{DATA:user_name} \[%{HTTPDATE:time}\] "%{WORD:request_act ion} %{DATA:request} HTTP/%{NUMBER:http_version}" %{NUMBER:response} %{NUMBER:bytes} "%{DATA:referrer}" "%{DATA:agent}"' } } date { match => [ "time", "dd/MMM/YYYY:HH:mm:ss Z" ] locale => en } geoip { source => "remote_ip" target => "geoip" } useragent { source => "agent" target => "user_agent" } } output { stdout { codec => rubydebug } } EOF head -n2 /var/log/nginx_logs|/opt/logstash/bin/logstash -f /opt/logstash/extra/nginx_logstash.conf
详细过程
root@master:~# cd /usr/local/src/elk/ root@master:/usr/local/src/elk# wget https://artifacts.elastic.co/downloads/logstash/logstash-5.6.16.tar.gz root@master:/usr/local/src/elk# tar xf logstash-5.6.16.tar.gz -C /opt/ root@master:/usr/local/src/elk# ln -sf /opt/logstash-5.6.16 /opt/logstash root@master:~# mkdir /opt/logstash/extra root@master:/opt/logstash/extra# egrep -v '#|^$' nginx_logstash.conf input { stdin { } } filter { grok { match => { "message" => '%{IPORHOST:remote_ip} - %{DATA:user_name} \[%{HTTPDATE:time}\] "%{WORD:request_act ion} %{DATA:request} HTTP/%{NUMBER:http_version}" %{NUMBER:response} %{NUMBER:bytes} "%{DATA:referrer}" "%{DATA:agent}"' } } date { match => [ "time", "dd/MMM/YYYY:HH:mm:ss Z" ] locale => en } geoip { source => "remote_ip" target => "geoip" } useragent { source => "agent" target => "user_agent" } } output { stdout { codec => rubydebug } } root@master:/var/log# head -n2 nginx_logs 93.180.71.3 - - [17/May/2015:08:05:32 +0000] "GET /downloads/product_1 HTTP/1.1" 304 0 "-" "Debian APT-HTTP/1.3 (0.8.16~exp12ubuntu10.21)" 93.180.71.3 - - [17/May/2015:08:05:23 +0000] "GET /downloads/product_1 HTTP/1.1" 304 0 "-" "Debian APT-HTTP/1.3 (0.8.16~exp12ubuntu10.21)" root@master:/var/log# head -n2 /var/log/nginx_logs|/opt/logstash/bin/logstash -f /opt/logstash/extra/nginx_logstash.conf /opt/logstash/vendor/bundle/jruby/1.9/gems/manticore-0.6.4-java/lib/manticore/client.rb:109 warning: already initialized constant DEFAULT_MAX_POOL_SIZE /opt/logstash/vendor/bundle/jruby/1.9/gems/manticore-0.6.4-java/lib/manticore/client.rb:111 warning: already initialized constant DEFAULT_REQUEST_TIMEOUT /opt/logstash/vendor/bundle/jruby/1.9/gems/manticore-0.6.4-java/lib/manticore/client.rb:112 warning: already initialized constant DEFAULT_SOCKET_TIMEOUT /opt/logstash/vendor/bundle/jruby/1.9/gems/manticore-0.6.4-java/lib/manticore/client.rb:113 warning: already initialized constant DEFAULT_CONNECT_TIMEOUT /opt/logstash/vendor/bundle/jruby/1.9/gems/manticore-0.6.4-java/lib/manticore/client.rb:114 warning: already initialized constant DEFAULT_MAX_REDIRECTS /opt/logstash/vendor/bundle/jruby/1.9/gems/manticore-0.6.4-java/lib/manticore/client.rb:115 warning: already initialized constant DEFAULT_EXPECT_CONTINUE /opt/logstash/vendor/bundle/jruby/1.9/gems/manticore-0.6.4-java/lib/manticore/client.rb:116 warning: already initialized constant DEFAULT_STALE_CHECK /opt/logstash/vendor/bundle/jruby/1.9/gems/manticore-0.6.4-java/lib/manticore/client.rb:592 warning: already initialized constant ISO_8859_1 /opt/logstash/vendor/bundle/jruby/1.9/gems/manticore-0.6.4-java/lib/manticore/client.rb:644 warning: already initialized constant KEY_EXTRACTION_REGEXP Sending Logstash's logs to /opt/logstash/logs which is now configured via log4j2.properties [2019-10-09T17:59:34,685][INFO ][logstash.modules.scaffold] Initializing module {:module_name=>"fb_apache", :directory=>"/opt/logstash/modules/fb_apache/configuration"} [2019-10-09T17:59:34,688][INFO ][logstash.modules.scaffold] Initializing module {:module_name=>"netflow", :directory=>"/opt/logstash/modules/netflow/configuration"} [2019-10-09T17:59:34,690][INFO ][logstash.setting.writabledirectory] Creating directory {:setting=>"path.queue", :path=>"/opt/logstash/data/queue"} [2019-10-09T17:59:34,691][INFO ][logstash.setting.writabledirectory] Creating directory {:setting=>"path.dead_letter_queue", :path=>"/opt/logstash/data/dead_letter_queue"} [2019-10-09T17:59:34,705][INFO ][logstash.agent ] No persistent UUID file found. Generating new UUID {:uuid=>"66202436-14a5-46b1-8a4b-42cde92ebae6", :path=>"/opt/logstash/data/uui d"}[2019-10-09T17:59:35,047][INFO ][logstash.filters.geoip ] Using geoip database {:path=>"/opt/logstash/vendor/bundle/jruby/1.9/gems/logstash-filter-geoip-4.3.1-java/vendor/GeoLite2-City.mm db"}[2019-10-09T17:59:35,173][INFO ][logstash.pipeline ] Starting pipeline {"id"=>"main", "pipeline.workers"=>8, "pipeline.batch.size"=>125, "pipeline.batch.delay"=>5, "pipeline.max_infl ight"=>1000}[2019-10-09T17:59:35,182][INFO ][logstash.pipeline ] Pipeline main started [2019-10-09T17:59:35,234][INFO ][logstash.agent ] Successfully started Logstash API endpoint {:port=>9600} { "request" => "/downloads/product_1", "request_action" => "GET", "agent" => "Debian APT-HTTP/1.3 (0.8.16~exp12ubuntu10.21)", "geoip" => { "timezone" => "Europe/Amsterdam", "ip" => "93.180.71.3", "latitude" => 52.3824, "country_name" => "Netherlands", "country_code2" => "NL", "continent_code" => "EU", "country_code3" => "NL", "location" => { "lon" => 4.8995, "lat" => 52.3824 }, "longitude" => 4.8995 }, "user_name" => "-", "http_version" => "1.1", "message" => "93.180.71.3 - - [17/May/2015:08:05:32 +0000] \"GET /downloads/product_1 HTTP/1.1\" 304 0 \"-\" \"Debian APT-HTTP/1.3 (0.8.16~exp12ubuntu10.21)\"", "referrer" => "-", "@timestamp" => 2015-05-17T08:05:32.000Z, "remote_ip" => "93.180.71.3", "response" => "304", "bytes" => "0", "@version" => "1", "host" => "master", "time" => "17/May/2015:08:05:32 +0000", "user_agent" => { "os" => "Debian", "major" => "1", "minor" => "3", "build" => "", "name" => "Debian APT-HTTP", "os_name" => "Debian", "device" => "Other" } } { "request" => "/downloads/product_1", "request_action" => "GET", "agent" => "Debian APT-HTTP/1.3 (0.8.16~exp12ubuntu10.21)", "geoip" => { "timezone" => "Europe/Amsterdam", "ip" => "93.180.71.3", "latitude" => 52.3824, "country_name" => "Netherlands", "country_code2" => "NL", "continent_code" => "EU", "country_code3" => "NL", "location" => { "lon" => 4.8995, "lat" => 52.3824 }, "longitude" => 4.8995 }, "user_name" => "-", "http_version" => "1.1", "message" => "93.180.71.3 - - [17/May/2015:08:05:23 +0000] \"GET /downloads/product_1 HTTP/1.1\" 304 0 \"-\" \"Debian APT-HTTP/1.3 (0.8.16~exp12ubuntu10.21)\"", "referrer" => "-", "@timestamp" => 2015-05-17T08:05:23.000Z, "remote_ip" => "93.180.71.3", "response" => "304", "bytes" => "0", "@version" => "1", "host" => "master", "time" => "17/May/2015:08:05:23 +0000", "user_agent" => { "os" => "Debian", "major" => "1", "minor" => "3", "build" => "", "name" => "Debian APT-HTTP", "os_name" => "Debian", "device" => "Other" } } [2019-10-09T17:59:38,205][WARN ][logstash.agent ] stopping pipeline {:id=>"main"}