手动阀

Good Luck To You!

详解用ELK来分析Nginx服务器日志的方法

使用ELK(Elasticsearch、Logstash和Kibana)堆栈来分析Nginx服务器日志是一种强大且灵活的方法,以下是详细步骤:

详解用ELK来分析Nginx服务器日志的方法

一、安装和配置Nginx

1、安装Nginx

   cd /usr/local/src/
   wget http://nginx.org/download/nginx-1.13.5.tar.gz
   tar -zxf nginx-1.13.5.tar.gz
   cd nginx-1.13.5
   ./configure --prefix=/usr/local/nginx
   make && make install

2、配置Nginx日志格式

nginx.conf中添加或修改log_format,以JSON格式记录日志:

   log_format main_json '{"domain":"$server_name",'
                     '"http_x_forwarded_for":"$http_x_forwarded_for",'
                     '"time_local":"$time_iso8601",'
                     '"request":"$request",'
                     '"request_body":"$request_body",'
                     '"status":$status,'
                     '"body_bytes_sent":"$body_bytes_sent",'
                     '"http_referer":"$http_referer",'
                     '"upstream_response_time":"$upstream_response_time",'
                     '"request_time":"$request_time",'
                     '"http_user_agent":"$http_user_agent",'
                     '"upstream_addr":"$upstream_addr",'
                     '"upstream_status":"$upstream_status"}';
   access_log /var/log/nginx/access.log main_json;
   error_log /var/log/nginx/error.log;

二、安装和配置Filebeat

1、下载并安装Filebeat

   wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-7.10.0-linux-x86_64.tar.gz
   tar xzf filebeat-7.10.0-linux-x86_64.tar.gz
   mv filebeat-7.10.0-linux-x86_64 /usr/local/filebeat

2、配置Filebeat

编辑/usr/local/filebeat/filebeat.yml,添加如下内容:

   filebeat.inputs:
   type: log
     enabled: true
     paths:
       /var/log/nginx/access.log
     fields:
       type: nginx-access
     ignore_older: 24h
   output.logstash:
     hosts: ["localhost:5044"]

3、启动Filebeat

   /usr/local/filebeat/filebeat -e -c /usr/local/filebeat/filebeat.yml

三、安装和配置Logstash

1、下载并安装Logstash

   wget https://artifacts.elastic.co/downloads/logstash/logstash-7.10.0.tar.gz
   tar xzf logstash-7.10.0.tar.gz
   mv logstash-7.10.0 /usr/local/logstash

2、配置Logstash

创建配置文件/usr/local/logstash/config/nginx_access.conf

   input {
     beats {
       port => 5044
     }
   }
   filter {
     if [type] == "nginx-access" {
       grok {
         match => { "message" => "%{NGINXACCESS}" }
       }
       date {
         match => [ "timestamp" , "dd/MMM/yyyy:HH:mm:ss Z" ]
       }
       mutate {
         remove_field => [ "message", "timestamp" ]
       }
     }
   }
   output {
     elasticsearch {
       hosts => ["localhost:9200"]
       index => "nginx-access-%{+YYYY.MM.dd}"
     }
     stdout { codec => rubydebug }
   }

3、启动Logstash

   /usr/local/logstash/bin/logstash -f /usr/local/logstash/config/nginx_access.conf

四、安装和配置Elasticsearch

1、下载并安装Elasticsearch

   wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.10.0-linux-x86_64.tar.gz
   tar xzf elasticsearch-7.10.0-linux-x86_64.tar.gz
   mv elasticsearch-7.10.0 /usr/local/elasticsearch

2、启动Elasticsearch

   /usr/local/elasticsearch/bin/elasticsearch -d

五、安装和配置Kibana

1、下载并安装Kibana

   wget https://artifacts.elastic.co/downloads/kibana/kibana-7.10.0-linux-x86_64.tar.gz
   tar xzf kibana-7.10.0-linux-x86_64.tar.gz
   mv kibana-7.10.0-linux-x86_64 /usr/local/kibana

2、启动Kibana

   /usr/local/kibana/bin/kibana -d

3、访问Kibana

打开浏览器,访问http://<你的服务器IP>:5601,即可进入Kibana管理界面。

六、可视化和分析数据

1、创建索引模式

在Kibana的管理界面中,导航到“Management” -> “Index Patterns”,创建一个新的索引模式,匹配“nginx-access-*”。

2、创建可视化图表

在Kibana的“Create” -> “Visualization”中,选择适合的数据可视化类型(如饼图、柱状图等),然后选择相应的字段进行图表绘制。

3、创建仪表盘

在Kibana的“Create” -> “Dashboard”中,将多个可视化图表添加到同一个仪表盘中,以便全面监控和分析Nginx日志。

通过以上步骤,你可以使用ELK堆栈高效地收集、解析和可视化Nginx服务器日志,从而更好地了解系统运行状态和用户行为。

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

Powered By Z-BlogPHP 1.7.3

Copyright Your WebSite.Some Rights Reserved.