Amazon Linux에서 Filebeat와 Logstash를 사용하여 OpenSearch Service에 연결하려면 어떻게 해야 합니까?
Amazon Linux에서 Filebeat와 Logstash를 사용하여 Amazon OpenSearch Service 클러스터에 연결하려고 하는데 오류가 발생합니다.
해결 방법
보안 포트 설정
Logstash를 사용하여 OpenSearch Service에 연결하려면 Logstash에서 로그를 전달하도록 보안 포트를 설정하십시오.
다음 단계를 완료하십시오.
- Filebeat용 Amazon Elastic Compute Cloud(Amazon EC2) 인스턴스를 시작한 다음, Logstash에서 로그를 전송할 다른 인스턴스를 시작합니다.
- EC2 인스턴스가 OpenSearch Service용 가상 프라이빗 클라우드(VPC)와 동일한 보안 그룹에 있는지 확인합니다.
- Logstash와 OpenSearch Service 간에 데이터를 전송할 수 있도록 보안 그룹에서 포트 80, 443 및 5044가 열려 있는지 확인합니다.
Filebeat, Logstash 및 OpenSearch Service 구성 업데이트
OpenSearch Service와 레거시 Elasticsearch 버전이 일치하는 Filebeat 및 Logstash 버전을 사용하는 것이 좋습니다. 도메인 버전과 일치하는 Filebeat 및 Logstash 버전을 사용하십시오.
예를 들어, 호환 모드에서 OpenSearch Service 1.x를 사용하는 경우 OpenSearch Service는 해당 버전을 7.10으로 보고합니다. 호환성 행렬을 확인하여 Filebeat 및 Logstash의 올바른 버전을 선택합니다. 자세한 내용은 Elastic 웹 사이트의 지원 행렬 또는 OpenSearch 웹 사이트의 호환성 행렬을 참조하십시오.
OpenSearch Service 버전 1.0 이상을 사용하는 경우 도메인을 시작할 때 호환 모드를 활성화하십시오.
다운로드한 소프트웨어를 동기화된 상태로 유지하도록 하려면 Red Hat Package Manager(RPM)를 각 인스턴스에 다운로드하십시오. 파이프라인의 단일 장애점을 방지하려면 동일한 인스턴스에서 Filebeat와 Logstash를 실행하지 마십시오.
소스 EC2 인스턴스에 Filebeat 설치
소스 인스턴스에 Filebeat를 설치하려면 다음 단계를 완료하십시오.
-
다음 명령을 실행하여 호환되는 Filebeat 버전의 RPM을 다운로드합니다.
wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-oss-8.15.2-x86_64.rpm -
다음 명령을 실행하여 Filebeat RPM 파일을 설치합니다.
rpm -ivh filebeat-oss-8.15.2-x86_64.rpm
별도의 EC2 인스턴스에 Logstash 설치 및 구성
다음 단계를 완료하십시오.
-
다음 명령을 실행하여 호환되는 Logstash RPM 파일을 다운로드합니다.
wget https://artifacts.elastic.co/downloads/logstash/logstash-oss-8.15.2-x86_64.rpm -
다음 명령을 실행하여 EC2 인스턴스에 Java 또는 OpenJDK를 설치합니다.
yum install java-1.8.0-*참고: 위 명령은 Java 버전 8(OpenJDK 1.8)을 사용합니다. 모든 Logstash 버전은 Java 버전 8을 지원합니다.
-
다음 명령을 실행하여 Logstash RPM 파일을 설치합니다.
rpm -ivh logstash-oss-8.15.2-x86_64.rpm -
다음 명령을 실행하여 Logstash 데이터 디렉터리를 엽니다.
cd /usr/share/logstash/ -
다음 명령을 실행하여 Logstash용 OpenSearch Service 플러그 인을 설치합니다.
bin/logstash-plugin install logstash-output-opensearch -
Logstash 플러그 인 설치를 확인하려면 다음 명령을 실행합니다.
bin/logstash-plugin list참고: Logstash OSS 7.13 이상에서는 logstash-output-opensearch 플러그 인만 사용하십시오. 버전 7.12.1은 logstash-output-elasticsearch 및 logstash-output-opensearch 플러그 인을 모두 지원합니다.
-
구성 디렉터리가 있는지 확인하려면 /etc/filebeat 및 /etc/logstash 디렉터리를 확인합니다.
-
Logstash를 통해 로그를 전송하려면 /etc/filebeat/filebeat.yml에 Filebeat 구성 파일을 만듭니다.
Filebeat 구성 파일 예시:filebeat.inputs: - type: log enabled: true paths: - /var/log/*.log filebeat.config.modules: path: ${path.config}/modules.d/*.yml reload.enabled: false setup.template.settings: index.number_of_shards: 1 index.codec: best_compression #output.elasticsearch: #hosts: ["your-domain-endpoint"] #protocol: "https" output.logstash: # The Logstash hosts hosts: ["Logstash-EC2-InstanceIP:5044"] setup.ilm.enabled: false ilm.enabled: false참고: Logstash-EC2-InstanceIP:5044를 Logstash 인스턴스의 IP 주소로 바꾸고, your-domain-endpoint를 도메인 엔드포인트로 바꾸십시오. OpenSearch Service에 직접 로그를 보낼 수도 있습니다. 자세한 내용은 GitHub 웹 사이트에서 logstash-output-opensearch를 참조하십시오.
-
/etc/logstash/conf.d/logstash.conf에 Logstash 구성 파일을 만듭니다.
Logstash 구성 파일 예시:
input { beats { port => 5044 } } output { opensearch { hosts => ["https://domain-endpoint:443"] ssl => true index => "%{[@metadata][beat]}-%{[@metadata][version]}-%{+YYYY.MM.dd}" user => "my-username" password => "my-password" } }
참고: domain-endpoint, my-username 및 my-password를 사용자 값으로 바꾸십시오. OpenSearch Service 엔드포인트에 대한 연결을 테스트하려면 다음 명령을 실행합니다.
curl -XGET https://your-domain-endpoint
참고: your-domain-endpoint를 도메인 엔드포인트로 바꾸십시오. (선택 사항) 세분화된 액세스 제어(FGAC)를 활성화한 경우 다음 명령을 실행합니다.
curl -u my-username:my-password -XGET https://your-domain-endpoint
참고: your-domain-endpoint를 도메인 엔드포인트로 바꾸십시오. 다음 명령을 실행하여 Filebeat 및 Logstash 서비스를 시작합니다.
systemctl start filebeat
systemctl start logstash
- Filebeat 로그가 전송되었는지 확인하려면 다음 curl 명령을 OpenSearch Service 도메인에 실행합니다.
curl -XGET https://your-domain-endpoint/_cat/indices
참고: your-domain-endpoint를 도메인 엔드포인트로 바꾸십시오.
Filebeat 인덱스의 출력 예시:
green open filebeat-7.16.2-2022.01.27 f97c4WnuQ-CtsAJJaJHUlg 1 1 1511515 0 249.7mb 124.7mb green open .kibana_1 Ioco6fUoSCGkaOvHNCL39g 1 1 1 0 7.4kb 3.7kb
green open filebeat-7.16.2-2022.01.27 f97c4WnuQ-CtsAJJaJHUlg 1 1 1511515 0 249.7mb 124.7mb green open .kibana_1 Ioco6fUoSCGkaOvHNCL39g 1 1 1 0 7.4kb 3.7kb green open filebeat-7.16.2-2022.01.28 4i8W0smlRGGFcQOaDMxonA 1 1 89 0 207.1kb 118.1kb
Amazon EC2 Linux에서 Filebeat, Logstash 및 OpenSearch 대시보드를 성공적으로 구성한 경우, 파이프라인은 다음 예와 비슷합니다.
Filebeat > Logstash > Amazon OpenSearch Service/Dashboards
401, 403 및 Logstash x-pack 설치 오류 해결
401 Unauthorized 오류
Logstash에서 ‘401 Unauthorized’ 오류를 반환하는 경우 OpenSearch Service 도메인은 다음 보안 기능 중 하나를 사용하는 것입니다.
- FGAC
- Amazon Cognito 인증
이 문제를 해결하려면 /etc/logstash/conf.d/logstash.conf의 Logstash 구성 파일에 인증 자격 증명을 추가하십시오.
구성 예시:
output { opensearch { hosts => ["https://your-domain-endpoint"] index => "%{[@metadata][beat]}-%{[@metadata][version]}-%{+YYYY.MM.dd}" ilm_enabled => false user => "my-username" password => "my-password" } }
참고: your-domain-endpoint, my-username 및 my-password를 OpenSearch Service 도메인 값으로 바꾸십시오.
403 Forbidden 오류
OpenSearch Service에 액세스하는 데 필요한 AWS Identity and Access Management(IAM) 권한이 Logstash에 없는 경우 ‘403 Forbidden’ 오류가 발생합니다.
이 문제를 해결하려면 다음 단계를 완료하십시오.
-
다음 명령을 실행하여 Logstash용 OpenSearch Service 플러그 인을 설치합니다.
bin/logstash-plugin install logstash-output-opensearch -
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "es:ESHttp*" ], "Resource": "[Amazon-OpenSearch-Domain-ARN]" } ] }참고: Amazon-OpenSearch-Domain-ARN을 OpenSearch Service 도메인의 Amazon 리소스 이름(ARN)으로 바꾸십시오.
-
/etc/logstash/conf.d/logstash.conf에서 Logstash 구성 파일을 업데이트합니다.
Logstash 구성 파일 예시:output { opensearch { hosts => ["domain-endpoint"] ssl => true region => "example_region" index => "%{[@metadata][beat]}-%{[@metadata][version]}-%{+YYYY.MM.dd}" } }참고: domain-endpoint와 example-region을 OpenSearch Service 도메인 값으로 바꾸십시오.
Logstash x-pack 설치 오류
‘x-pack plugin’ 오류로 인해 Logstash가 시작되지 않는 경우 다음 단계를 완료하십시오.
-
다음 레지스트리 파일을 엽니다.
/usr/share/logstash/logstash-core/lib/logstash/plugins/registry.rb -
다음 코드 줄을 찾습니다.
load_xpack unless LogStash::OSS -
코드를 다음 예제로 업데이트합니다.
#load_xpack unless LogStash::OSS -
x-pack 플러그 인 시작 오류를 방지하려면 구성 파일에서 인덱스 수명 관리(ILM) 설정을 비활성화합니다.
Filebeat에서 ilm.enabled: false를 구성합니다.
Logstash에서 ilm_enabled => false를 구성합니다.
관련 정보
- 언어
- 한국어

관련 콘텐츠
질문됨 3년 전