Liberty에서 Logstash 콜렉터 기능을 사용하여
Liberty 서버에서 로그 및 기타 이벤트를 수집하고
이를 원격 Logstash 서버에 전송할 수 있습니다. 수집된 이벤트는 로그 분석 및 문제점 해결에 사용할 수 있습니다.
시작하기 전에
logstashCollector-1.0 기능은 다음 제품에서 테스트되었습니다.
- Logstash V2.x, Elasticsearch V2.x 및 Kibana V4.x
Logstash V5.3.x, Elasticsearch V5.3.x 및 Kibana
V5.3.x
Logstash에서 사용 가능한 출력 플러그인과 함께 실행되는 Logstash 서버에서
logstashCollector-1.0 기능을 사용할 수 있습니다. 하지만 대부분의 사용자는 완전한 로그 통합 및
분석 기능을 제공하기 위해 Elasticsearch 및 Kibana와 함께 Logstash를 사용하도록 선택합니다. 자세한
정보는 Elastic 웹 사이트를 참조하십시오.
프로시저
- Elastic의 지시사항에 따라 Logstash를 설정하십시오.
- Logstash를 위해 SSL에 대한 인증서 및 키 쌍 파일을 작성하거나 확보하십시오.
다음 openSSL에 대한 명령 예제는 인증서 및 키 쌍을 생성합니다. 필요에 따라 키의
유효 기간(일)을 사용자 정의하십시오.
openssl req -x509 -newkey rsa:2048 -keyout logstash.key -out logstash.crt -days 365 -nodes
- Logstash 및 Elasticsearch 사용자의 경우 이
저장소에서 샘플 Logstash 구성 파일 및 색인 템플리트 파일을 다운로드하십시오.
- readme 파일의 내용에 따라 Elastic 스택 버전에 맞는 Logstash 구성
파일(liberty_logstash.conf) 및 색인 템플리트
파일(liberty_logstash_template.json)을 다운로드하십시오.
- liberty_logstash.conf 파일에서 Lumberjack
ssl_certificate 및 ssl_key 경로와 Elasticsearch
hosts(Elasticsearch_host_name:port_number)
값을 사용자 정의하십시오.
- Elasticsearch V2.x 사용자의 경우 선택적으로 liberty_logstash_template.json 파일에서
_ttl 기본값을 사용자 정의하여 각 이벤트 유형의 레코드를
보관하는 기간(밀리초)을 표시하십시오.
- 이벤트를 수집할 각 Liberty 서버에 대해 다음 단계를
완료하십시오.
- Liberty 서버에 대한 키 저장소를 확보하거나 작성하십시오. 자체 서명된 인증서를 작성하려면
다음 명령을 사용하십시오. 필요에 따라 서버 이름, 비밀번호 및 주제를
사용자 정의하십시오.
d:\wlp\bin\securityUtility createSSLCertificate --server=myServerName --password="Liberty" --subject=CN=myHostname,OU=defaultServer,O=ibm,C=us
- 2단계의 logstash.crt 파일을 서버의
trust.jks 파일로 가져오십시오. 필요에 따라
wlp_install_dir 및 서버 이름을 사용자 정의하십시오. 비밀번호를 요청하는 프롬프트가 표시되면
4a 단계의 인증서 비밀번호를 사용하십시오.
d:\java\bin\keytool -import -noprompt -alias logstash -file logstash.crt -keystore wlp_install_dir\usr\servers\myServerName\resources\security\trust.jks -storepass Liberty
- 다음 명령을 실행하여 logstashcollector-1.0 기능을 설치하십시오.
d:\wlp\bin\installUtility install logstashcollector-1.0
- 다음 컨텐츠를 추가하여 Liberty의
server.xml 파일에서 Logstash 콜렉터를 구성하십시오.
필요에 따라 logstashCollector 소스 목록, 호스트 이름 및 포트를 사용자 정의하십시오.
메시지 또는 추적 이벤트의 메시지 필드 또는 FFDC 이벤트의 스택 추적에
허용되는 최대 문자 수를 변경할 수 있습니다. 기본 최대값은 2048자입니다. 다음 예제는
logstashCollector 요소에서 maxFieldLength
매개변수를 3000자로 설정합니다. 문자 수를 무제한으로 설정하려면
maxFieldLength를 0(영) 또는 -1로 설정하십시오.
각 유형의 이벤트(메시지, 추적, accessLog, ffdc, garbageCollection)에 대해 초당 전송되는 최대 이벤트 수를 제한할 수 있습니다. 이벤트의 기본 최대값은
0이며, 이는 스로틀링이 적용되지 않음을 의미합니다. maxEvents가 0보다 큰 값으로 설정되면
초당 전송되는 이벤트 수에 대한 한계가 있습니다. maxEvents 값은
0 - 2147483647 사이의 정수여야 합니다.
![[17.0.0.1 and later]](../ng_v17001plus.gif)
또한 서버에서 전송되는 이벤트를 데코레이션할 사용자 정의 태그를
추가할 수 있습니다. 다음 예제에는
logstashCollector 요소의 두
tag 요소가 있습니다.
참고: Admin Center에서
사용되는 태그는 logstashCollector/bluemixLogCollector에서
사용되는 태그와 관계가 없습니다.
<featureManager>
<feature>logstashCollector-1.0</feature>
</featureManager>
<keyStore id="defaultKeyStore" password="Liberty" />
<keyStore id="defaultTrustStore" location="trust.jks" password="Liberty" />
<ssl id="mySSLConfig" trustStoreRef="defaultTrustStore" keyStoreRef="defaultKeyStore" />
<logstashCollector
source="message,trace,garbageCollection,ffdc,accessLog"
hostName="localhost"
port="5043"
sslRef="mySSLConfig"
maxEvents="10"
maxFieldLength="3000">
<tag>serverRackA5</tag>
<tag>billingAppTeam</tag>
</logstashCollector>
추적 및 액세스 로그는 볼륨이 큰 로그이므로 네트워크,
CPU 및 수집할 스토리지 자원이 더 많이 필요합니다.
- HTTP 액세스 로깅을 사용으로 설정하고 '%h %u %t "%r" %s %b %D %{User-agent}i' 로그 형식을
사용하십시오.
- Elasticsearch, Logstash 및 Kibana를 시작하십시오. 지시사항에 대해서는 Elastic 웹 사이트를
참조하십시오.
- Liberty 서버를 시작하고 몇 개의 이벤트를 생성하십시오.
- 브라우저에서 Kibana를 열고 색인을 작성하십시오.
- Kibana 5의 경우 을 클릭하고 시간 필드 이름을 datetime으로 설정한 후
작성을 클릭하십시오.
- Kibana 4의 경우 을 클릭하고 시간 필드 이름을 datetime으로 설정한 후
작성을 클릭하십시오.
- 이 저장소에서 샘플 대시보드를 다운로드하십시오.
- 대시보드를 Kibana로 가져오십시오.
- Kibana 5의 경우 를 클릭하십시오.
- Kibana 4의 경우 를 클릭하십시오.
- 대시보드를 확인하십시오.
- Kibana 5의 경우 를 클릭한 후 대시보드를 선택하십시오.
- Kibana 4의 경우 를 클릭한 후 대시보드를 선택하십시오.
결과
Logstash 서버에 이벤트를 전송하도록 Liberty 서버를 구성했으며, 이제 Kibana를 사용하여 Liberty 대시보드에서 이벤트를 볼 수 있습니다.