개 introduction
웹 서버 로그를 관리하는 것은 웹사이트를 畅通하게 運営하고, 문제를 해결하고, 사용자 행동을 이해하는 데 필요하다. 如果你는 Nginx를 사용하고 있으면, 유용한 정보가 들어있는 Acces 및 Error 로그를 생성한다. 이러한 로그를 관리하고 분석하기 위해서는, Logstash를 사용하여 로그를 처리하고 转发하는 것과, DigitalOcean의 Managed OpenSearch를 사용하여 데이터를 인덱스 하고 시각화할 수 있다.
이 튜토리얼에서는, Droplet에 Logstash를 설치하고, Nginx 로그를 수집하기 위한 settings를 하고, 이를 DigitalOcean Managed OpenSearch에 보내는 방법을 배울 것이다.
사전 요구 사항
-
A DigitalOcean Cloud account and an Ubuntu Droplet up and running.
-
Nginx를 설정하고 Droplet에서 로그를 생성해야 합니다. Droplet에 nginx를 설치하려면 우분투에 Ngnix를 설치하는 방법.
에 있는 이 튜토리얼을 참조하세요.
- 에 있는 이 튜토리얼을 참조하세요.
OpenSearch 클러스터가 실행 중이어야 하며, 이에 액세스할 수 있어야 합니다. 자세한 내용은 오픈서치 클러스터를 만드는 방법을 참조하세요.
.
-
Nginx, Logstash, OpenSearch에 익숙하다면 도움이 될 것입니다.
사용 사례
다음과 같은 경우에 이 셋업을 사용해야 할 수 있습니다:
- 모니터링 및 문제 해결: 실시간 로그를 분석하여 웹 서버 パフォーマン스 및 에러를 추적합니다.
- パフォーマンス 분석: 웹 トラffic 패턴과 서버 메트릭스에 대한 洞察을 얻습니다.
- 로그 중앙화: 여러 Nginx 서버의 로그를 하나의 OpenSearch 인스턴스로 모음하여 更容易的管理을 위해 사용합니다.
노트: 셋업 시간은 大概 30분입니다.
단계 1 – Droplet에 Logstash 설치
Logstash은 이 곳에 托管되는 배열 파일을 사용하거나 operatingsystem に合わせた 패키지 리포지토리로 설치할 수 있습니다. 更容易的管理과 更新을 위해 대체적으로 패키지 리포지토리를 사용하는 것이 推奨됩니다. Ubuntu 등 Debian-based 시스템에서 APT 패키지 관리자를 사용할 수 있으며, CentOS 또는 RHEL과 같은 Red Hat-based 시스템에서는 yum
을 사용할 수 있습니다. 이 두 방법은 Logstash를 시스템의 패키지 관리 인frastructure에 적절히 통합시키고 설치와 관리를 간단하게 합니다.
이 섹션에서는 apt
와 yum
패키지 관리자를 사용하여 Logstash의 설치를 指导할 것입니다 Logstash를 Droplet에 configuring regardless of your Linux distribution.
Operating System을 찾기 위해 다음 명령을 실행하십시오 :
APT 기반 시스템 (Ubuntu/Debian)
1.Public Signing Key를 다운로드 및 설치하십시오 :
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이 now 你的 系统上 installed and running 하고 있습니다.
Step 2 – Installing the Open Search Output Plugin
You can install the OpenSearch output plugin by running the following command:
You can find more information about the plugin on this logstash-output-opensearch plugin repository.
Step 3 – Configuring Logstash to Send Nginx Logs to OpenSearch
A Logstash pipeline consists of three main stages: input, filter, and output. Logstash pipelines make use of plugins. You can make use of community plugins or create your own.
- Input: This stage collects data from various sources. Logstash supports numerous input plugins to handle data sources like log files, databases, message queues, and cloud services.
- Filter: This stage processes and transforms the data collected in the input stage. Filters can modify, enrich, and structure the data to make it more useful and easier to analyze.
- 산출: 이 단계는 처리된 데이터를 목적지에 보내는 것입니다. 목적지는 데이터베이스, 파일, 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
구성의 概要
입력
input
블록은 로그를 읽기 위한 두 つ의 파일 입력을 구성합니다:
Nginx 로그:
경로:
/var/log/nginx/access.log
(ACCESS 로그用途)
/var/log/nginx/error.log
(에러 로그用途)
시작 위치: beginning
– 로그 파일の 시작부분에서 읽음
sinceDB 경로: /dev/null
– 连续 읽기 트랙킹을 사용하지 않음
태그:
["nginx_access"]
for ACCESS 로그
["nginx_error"]
for 에러 로그
注釈: Logstash 서비스가 입력 경로에 アクセス할 수 있도록 확인하세요.
FILTER
The filter
block processes logs based on their tags:
Log Processing:
Access Logs:
Uses a grok
filter to parse the access log format, extracting fields like client_ip
, timestamp
, method
, request
, http_version
, response
, bytes
, referrer
, and user_agent
.
Removes the original message
and certain metadata fields.
Error Logs:
Checks for the nginx_error
tag and applies a grok
filter to extract fields such as timestamp
, level
, pid
, tid
, and error_message
.
Also removes the message
and metadata fields.
OUTPUT
The output
block routes events to OpenSearch based on their tags:
Routing to OpenSearch:
For both access and error logs, it specifies:
Hosts: OpenSearch 인스턴스의 URL.
User: 인증용 doadmin
.
Password: OpenSearch 비밀번호.
Index:
Access logs 시 case nginx_access-%{+YYYY.MM.dd}
Error logs 시 case nginx_error-%{+YYYY.MM.dd}
SSL Settings: Enables SSL and certificate verification.
스텝 4 – OpenSearch configure
1. 웹 브라우저를 열고 OpenSearch Dashboard URL로 가기:
OpenSearch-Hostname
을 자신의 OpenSearch 서버의 호스트 이름으로 대체합니다.
2. 인덱스 패턴을 생성합니다.
a. 왼쪽 侧边栏에서 관리 > 대시보드 관리 > 인덱스 패턴로 이동합니다.
b. 상단 오른쪽에 인덱스 패턴 생성을 클릭합니다.
c. Logstash로 생성된 모든 인덱스와 일치하는 인덱스 패턴으로 nginx_access-*
또는 nginx_error-*
을 입력하고 다음 단계를 클릭합니다.
d. 인덱스 패턴 생성을 클릭합니다.
3. 인덱스 패턴이 성공적으로 생성되어 인덱스 패턴 목록에 보여지는지 확인합니다.
4. 왼쪽 侧边栏에서 DISCOVER를 선택하고 생성한 인덱스 패턴(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
パッケージ 관리기를 사용하여 Logstash를 droplets 上で 실행시키는 方法을 살펴보았습니다. 또한 Nginx 로그를 correctamente 분석하고 OpenSearch로 보내기 위해 Logstash 구성 파일을 생성하고 조정했습니다. 그 다음 OpenSearch Dashboards에서 인덱스 패턴을 설정하여 로그가 적절히 인덱싱되고 분석에 사용할 수 있도록 확인했습니다.이러한 단계를 모두 완료하면 Logstash가 Nginx 로그를 OpenSearch로 수집하고 보내는 작동 중인 세팅을 가지고 있게 됩니다. 이 세팅은 OpenSearch의 強力な searching 및 的可視化 ツール을 사용하여 서버 로그를 분석할 수 있습니다.
문제가 발생하면 문제 해결 팁을 확인하고 Logstash와 OpenSearch 문서를 참조하여 further help를 얻을 수 있습니다. 정기적인 모니터링은 로그 시스템을 平稳하고 효율적으로 运行시키게 합니다.
Source:
https://www.digitalocean.com/community/tutorials/forward-nginx-logs-to-opensearch-using-logstash