This documentation is for a release that is no longer maintained
See documentation for the latest supported version 3 or the latest supported version 4.4.3.9. 로그 저장소 서비스를 경로로 노출
기본적으로 OpenShift Logging과 함께 배포된 로그 저장소는 로깅 클러스터 외부에서 액세스할 수 없습니다. 데이터에 액세스하는 도구의 로그 저장소 서비스에 대한 외부 액세스를 위해 재암호화 종료로 경로를 활성화할 수 있습니다.
외부에서는 재암호화 경로, OpenShift Container Platform 토큰 및 설치된 로그 저장소 CA 인증서를 생성하여 로그 저장소에 액세스할 수 있습니다. 그런 후 다음을 포함하는 cURL 요청으로 로그 저장소 서비스를 호스팅하는 노드에 액세스합니다.
-
인증: 전달자 ${token} - Elasticsearch 재암호화 경로 및 Elasticsearch API 요청
내부에서는 다음 명령 중 하나로 얻을 수 있는 로그 저장소 클러스터 IP를 사용하여 로그 저장소 서비스에 액세스할 수 있습니다.
oc get service elasticsearch -o jsonpath={.spec.clusterIP} -n openshift-logging
$ oc get service elasticsearch -o jsonpath={.spec.clusterIP} -n openshift-logging
출력 예
172.30.183.229
172.30.183.229
oc get service elasticsearch -n openshift-logging
$ oc get service elasticsearch -n openshift-logging
출력 예
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE elasticsearch ClusterIP 172.30.183.229 <none> 9200/TCP 22h
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
elasticsearch ClusterIP 172.30.183.229 <none> 9200/TCP 22h
다음과 유사한 명령을 사용하여 클러스터 IP 주소를 확인할 수 있습니다.
oc exec elasticsearch-cdm-oplnhinv-1-5746475887-fj2f8 -n openshift-logging -- curl -tlsv1.2 --insecure -H "Authorization: Bearer ${token}" "https://172.30.183.229:9200/_cat/health"
$ oc exec elasticsearch-cdm-oplnhinv-1-5746475887-fj2f8 -n openshift-logging -- curl -tlsv1.2 --insecure -H "Authorization: Bearer ${token}" "https://172.30.183.229:9200/_cat/health"
출력 예
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 29 100 29 0 0 108 0 --:--:-- --:--:-- --:--:-- 108
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 29 100 29 0 0 108 0 --:--:-- --:--:-- --:--:-- 108
사전 요구 사항
- OpenShift Logging 및 Elasticsearch가 설치되어 있어야 합니다.
- 로그에 액세스하려면 프로젝트에 액세스할 수 있어야 합니다.
프로세스
로그 저장소를 외부에 노출하려면 다음을 수행합니다.
openshift-loggin프로젝트로 변경합니다.oc project openshift-logging
$ oc project openshift-loggingCopy to Clipboard Copied! Toggle word wrap Toggle overflow 로그 저장소에서 CA 인증서를 추출하고 admin-ca 파일에 씁니다.
oc extract secret/elasticsearch --to=. --keys=admin-ca
$ oc extract secret/elasticsearch --to=. --keys=admin-caCopy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
admin-ca
admin-caCopy to Clipboard Copied! Toggle word wrap Toggle overflow 로그 저장소 서비스의 경로를 YAML 파일로 생성합니다.
다음을 사용하여 YAML 파일을 생성합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 로그 저장소 CA 인증서를 추가하거나 다음 단계에서 명령을 사용합니다. 일부 재암호화 경로에 필요한
spec.tls.key,spec.tls.certificate및spec.tls.caCertificate매개변수를 설정할 필요는 없습니다.
다음 명령을 실행하여 이전 단계에서 생성한 경로 YAML에 로그 저장소 CA 인증서를 추가합니다.
cat ./admin-ca | sed -e "s/^/ /" >> <file-name>.yaml
$ cat ./admin-ca | sed -e "s/^/ /" >> <file-name>.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 경로를 생성합니다.
oc create -f <file-name>.yaml
$ oc create -f <file-name>.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
route.route.openshift.io/elasticsearch created
route.route.openshift.io/elasticsearch createdCopy to Clipboard Copied! Toggle word wrap Toggle overflow
Elasticsearch 서비스가 노출되어 있는지 확인합니다.
요청에 사용할 이 서비스 계정의 토큰을 가져옵니다.
token=$(oc whoami -t)
$ token=$(oc whoami -t)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 생성한 elasticsearch 경로를 환경 변수로 설정합니다.
routeES=`oc get route elasticsearch -o jsonpath={.spec.host}`$ routeES=`oc get route elasticsearch -o jsonpath={.spec.host}`Copy to Clipboard Copied! Toggle word wrap Toggle overflow 경로가 성공적으로 생성되었는지 확인하려면 노출된 경로를 통해 Elasticsearch에 액세스하는 다음 명령을 실행합니다.
curl -tlsv1.2 --insecure -H "Authorization: Bearer ${token}" "https://${routeES}"curl -tlsv1.2 --insecure -H "Authorization: Bearer ${token}" "https://${routeES}"Copy to Clipboard Copied! Toggle word wrap Toggle overflow 응답은 다음과 유사하게 나타납니다.
출력 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow