1. 下载和安装 Elasticsearch、Logstash 和 Filebeat

首先,需要分别下载和安装 Elasticsearch、Logstash 和 Filebeat。

1. 下载并安装 Elasticsearch:根据系统类型下载相应的 Elasticsearch 安装包,然后按照官方文档所述的步骤进行安装。

2. 下载并安装 Logstash:同样,根据系统类型下载相应的 Logstash 安装包,并按照官方文档中的步骤进行安装。

3. 下载并安装 Filebeat:同样地,根据系统类型下载相应的 Filebeat 安装包,并按照官方文档中的步骤进行安装。

2. 配置 Filebeat

在进行日志分析之前,我们需要配置 Filebeat 来收集 Nginx 日志。

1. 编辑 Filebeat 配置文件:打开安装目录下的 Filebeat 配置文件 filebeat.yml,并按照以下方式进行配置:

filebeat:
  inputs:
    - type: log
      enabled: true
      paths:
        - /path/to/nginx/logs/*.log          # 指定Nginx日志文件的路径
      
  output:
    logstash:
      hosts: ["localhost:5044"]             # 设置Logstash的地址和端口
YAML

2. 启动 Filebeat:保存配置文件后,启动 Filebeat 服务来开始收集 Nginx 日志。

sudo service filebeat start
Shell

3. 配置 Logstash

配置 Logstash 将 Filebeat 收集到的 Nginx 日志发送到 Elasticsearch 进行存储和分析。

1. 编辑 Logstash 配置文件:打开 Logstash 的配置文件 logstash.conf,并按照以下方式进行配置:

input {
  beats {
    port => 5044               # 设置 Logstash 监听的端口,与 Filebeat 配置文件中的一致
  }
}

filter {
  grok {
    match => { "message" => "%{COMBINEDAPACHELOG}" }     # 使用 grok 模式匹配 Nginx 日志的格式
  }
  date {
    match => [ "timestamp", "dd/MMM/yyyy:HH:mm:ss Z" ]   # 将 timestamp 字段按照指定格式解析为日期
  }
}

output {
  elasticsearch {
    hosts => ["localhost:9200"]      # 设置 Elasticsearch 的地址和端口
    index => "nginx-%{+YYYY.MM.dd}"  # 指定存储到 Elasticsearch 的索引名称
  }
}
Conf

2. 启动 Logstash:保存配置文件后,启动 Logstash 服务来接收 Filebeat 发送的 Nginx 日志。

sudo service logstash start
Shell

4. 使用 Elasticsearch 进行 Nginx 日志分析

安装、配置并启动 Elasticsearch、Logstash 和 Filebeat 后,我们可以使用 Kibana 来进行 Nginx 日志的可视化和分析。

1. 打开 Kibana:在浏览器中打开 Kibana 的地址(默认为 http://localhost:5601)。

2. 创建索引模式:在 Kibana 的界面上,导航到 "Management" -> "Index Patterns",点击 "Create index pattern" 按钮。在 "Index pattern" 字段中输入索引名称(如 nginx-*),然后点击 "Next step"。

3. 选择时间字段:在 "Time Filter field name" 下拉菜单中选择日期字段(如 @timestamp),然后点击 "Create index pattern" 完成索引模式的创建。

4. 分析 Nginx 日志:现在我们可以在 Kibana 的 "Discover" 或 "Visualize" 页面中使用各种功能和可视化工具来分析和可视化 Nginx 日志了。