简介
跟踪网页服务器日志对于您的网站运行顺畅、解决问题以及了解用户行为至关重要。如果您正在使用Nginx,它会生成充满宝贵信息的访问和错误日志。为了管理和分析这些日志,您可以使用Logstash来处理和转发日志,以及DigitalOcean的托管OpenSearch来索引和可视化数据。
在这篇教程中,我们将指导您在Droplet上安装Logstash,设置它来收集您的Nginx日志,并将它们发送到DigitalOcean托管OpenSearch。
先决条件
-
一个DigitalOcean云账户和一个运行中的Ubuntu Droplet。
- 应该在您的Droplet上设置Nginx,并生成日志。要在Droplet上安装nginx,请参阅关于如何在Ubuntu上安装Nginx的教程。
- OpenSearch集群应该正在运行,您应该能够访问它。更多详情请访问如何创建OpenSearch集群。
- 熟悉Nginx、Logstash和OpenSearch是有益的。
用例
如果你想要:
- 监控和故障排除:通过分析实时日志来跟踪Web服务器的性能和错误。
- 分析性能:了解Web流量模式和服务器指标。
- 集中日志:将多个Nginx服务器的日志聚合到一个OpenSearch实例中,以便更容易管理。
注意:设置时间应该大约是30分钟。
步骤1 – 在Droplets上安装Logstash
Logstash可以通过这里提供的二进制文件安装,或者使用为您的操作系统定制的软件包仓库。为了更方便地管理和更新,通常建议使用软件包仓库。您可以在基于Debian的系统,如Ubuntu上使用APT包管理器,而在基于Red Hat的系统,如CentOS或RHEL上,可以使用yum
。这两种方法都确保Logstash能够正确地集成到您的系统的包管理基础设施中,简化了安装和维护。
在本节中,我们将向您展示如何使用 both apt
和 yum
包管理器来安装Logstash,确保您可以在任何Linux发行版的Droplet上配置Logstash。
要查找操作系统,请运行以下命令:
对于基于APT的系统(Ubuntu/Debian)
1.下载并安装公共签名密钥:
2.如果尚未安装,请安装apt-transport-https:
3.将Logstash仓库定义添加到您的apt
源列表并保存:
注意:确保不要使用add-apt-repository
命令,因为它可能会添加一个不支持的deb-src
条目。如果您遇到与deb-src
条目相关的错误,请将其从/etc/apt/sources.list
文件中删除。如果您已经添加了deb-src
条目,您将看到如下错误:
如果您只是从/etc/apt/sources.list
文件中删除了deb-src
条目,安装应该如预期般工作。
4.更新包索引以包括新仓库:
5.使用apt
包管理器安装Logstash:
6.启动Logstash并使其在系统启动时自动启动:
Logstash现在已安装并在您的系统上运行。
对于基于YUM的系统(CentOS/RHEL):
1.下载并安装Logstash仓库的公钥:
2.在/etc/yum.repos.d/
为Logstash创建一个仓库文件。例如,创建一个名为logstash.repo
的文件。您可以复制并粘贴下面的内容来创建文件并更新内容:
仓库现已准备好使用。
3.使用YUM包管理器安装Logstash:
4.启动Logstash并使其在系统启动时自动启动:
Logstash 已经安装并在您的系统上运行。
第2步 – 安装 Open Search 输出插件
您可以运行以下命令来安装 OpenSearch 输出插件:
您可以在 logstash-output-opensearch 插件仓库 上找到更多关于该插件的信息。
第3步 – 配置 Logstash 将 Nginx 日志发送到 OpenSearch
Logstash 管道由三个主要阶段组成:输入、过滤和输出。Logstash 管道使用插件。您可以使用社区插件或创建您自己的插件。
- 输入: 这个阶段从各种来源收集数据。Logstash 支持许多输入插件来处理诸如日志文件、数据库、消息队列和云服务之类的数据源。
- 过滤: 这个阶段处理和转换输入阶段收集的数据。过滤器可以修改、丰富和结构化数据,使其更有用且更容易分析。
- 输出:此阶段将处理后的数据发送到目的地。目的地可以是数据库、文件和如OpenSearch的数据存储。
现在让我们创建一个流水线。
1.在/etc/logstash/conf.d/nginx-to-opensearch.conf
创建一个Logstash配置文件,内容如下:
替换:
OpenSearch-Hostname
为你OpenSearch服务器的主机名。<your_password>
为你OpenSearch的密码。
2.通过重启Logstash应用新的配置:
3.检查Logstash日志,确保它正确地处理和转发数据:
以下是nginx-to-opensearch.conf
配置的详细解析
输入
输入块配置了两个文件输入,以读取日志:
Nginx日志:
路径:
/var/log/nginx/access.log
(用于访问日志)
/var/log/nginx/error.log
(用于错误日志)
起始位置:beginning
– 从日志文件的开始处读取。
Sincedb路径:/dev/null
– 禁用连续读取的跟踪。
标签:
["nginx_access"]
用于访问日志
["nginx_error"]
用于错误日志
注意:确保Logstash服务可以访问输入路径。
过滤器
该过滤
块根据它们的标签处理日志:
日志处理:访问日志:使用grok
过滤器解析访问日志格式,提取字段如client_ip
、timestamp
、method
、request
、http_version
、response
、bytes
、referrer
和user_agent
。删除原始message
和某些元数据字段。
错误日志:检查nginx_error
标签并应用grok
过滤器提取字段,如timestamp
、level
、pid
、tid
和error_message
。还删除message
和元数据字段。
输出
该输出
块根据它们的标签将事件路由到OpenSearch:
路由到OpenSearch:对于访问和错误日志,它指定:主机:OpenSearch实例的URL。用户:doadmin
用于身份验证。密码:您的OpenSearch密码。索引:对于访问日志是nginx_access-%{+YYYY.MM.dd}
,对于错误日志是nginx_error-%{+YYYY.MM.dd}
。SSL设置:启用SSL和证书验证。
步骤4 – 配置OpenSearch
1.打开您的网络浏览器,访问OpenSearch控制台网址:
将OpenSearch-Hostname
替换为您的OpenSearch服务器的域名。
2.创建一个索引模式。
a. 在左侧菜单栏,导航到管理 > 控制台管理 > 索引模式。
b. 点击顶部右侧的创建索引模式。
c. 输入nginx_access-*
或nginx_error-*
作为索引模式,以匹配Logstash创建的所有索引,然后点击下一步。
d. 点击创建索引模式。
3.确保索引模式已成功创建,并且在索引模式列表中可见。
4.在左侧菜单栏,转到发现并选择您创建的索引模式(nginx_access-*
或nginx_error-*
)。确认日志条目可见且正确索引。
5.创建可视化和控制台。详情请访问如何在OpenSearch中创建控制台。
故障排除
检查连通性
您可以通过测试连通性来验证Logstash是否能够连接到OpenSearch:
将OpenSearch-Hostname
替换为您的OpenSearch服务器的主机名。
<your_password>
替换为您自己的OpenSearch密码。
数据摄入
您可以通过以下curl命令确保数据在OpenSearch中正确索引:
将OpenSearch-Hostname
替换为您的OpenSearch服务器的主机名。
<your_password>
替换为您自己的OpenSearch密码。
防火墙和网络配置
确保防火墙规则和网络设置允许Logstash和OpenSearch之间的25060
端口通信。
结论
在本指南中,您学会了如何配置Logstash以收集并转发Nginx日志到OpenSearch。
您回顾了如何根据您的Linux发行版使用`apt`或`yum`包管理器来在您的Droplet上启动Logstash。您还创建并调整了Logstash配置文件,以确保Nginx日志被正确解析并发送到OpenSearch。之后,您在OpenSearch Dashboards中设置了一个索引模式,以检查日志是否被正确索引并可供分析。完成这些步骤后,您应该现在拥有一个工作设置,其中Logstash收集Nginx日志并发送到OpenSearch。这个设置允许您使用OpenSearch的强大搜索和可视化工具来分析您的服务器日志。
如果您遇到任何问题,请查看我们提供的故障排除技巧,并参考Logstash和OpenSearch文档以获得更多帮助。定期监控将使您的日志系统运行顺畅且有效。
Source:
https://www.digitalocean.com/community/tutorials/forward-nginx-logs-to-opensearch-using-logstash