- EKS Fluent-Bit to OpenSearch2024년 12월 24일
- wngnl05
- 작성자
- 2024.12.24.:06
OpenSearch 도매인 생성할 때 참고하세요.
최대 절 수에 1024를 꼭 적어주세요.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "*" }, "Action": "es:ESHttp*", "Resource": "arn:aws:es:<리전>:<사용자 아이디>:domain/<OpenSearch 도매인>/*" } ] }
위의 정책은 OpenSearch의 보안구성 > 액세스 정책 에 넣어주세요
OpenSearch 정책 생성하기
OPENSEARCH_ARN="<OpenSearch ARN>"
aws iam create-policy \ --policy-name wngnl_OpenSearch_Policy \ --policy-document '{ "Version": "2012-10-17", "Statement": [ { "Action": [ "es:ESHttp*" ], "Resource": "'"${OPENSEARCH_ARN}"'", "Effect": "Allow" } ] }'
OpenSeach 역활 생성하기
CLUSTER_NAME="<EKS CLUSTER 이름>"
OIDC_ID=$(aws eks describe-cluster --name $CLUSTER_NAME --query "cluster.identity.oidc.issuer" --output text | sed 's|https://||') ACCOUNT_ID=$(aws sts get-caller-identity --query "Account" --output text) OIDC_ARN="arn:aws:iam::$ACCOUNT_ID:oidc-provider/$OIDC_ID" aws iam create-role --role-name wngnl_OpenSearch_Role --assume-role-policy-document '{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Federated": "'"${OIDC_ARN}"'" }, "Action": "sts:AssumeRoleWithWebIdentity", "Condition": { "StringEquals": { "'"${OIDC_ID}"':aud": "sts.amazonaws.com" "'"${OIDC_ID}"':sub": "fluent-bit", } } } ] }' aws iam attach-role-policy --role-name wngnl_OpenSearch_Role --policy-arn arn:aws:iam::aws:policy/PowerUserAccess
Down File
wget https://raw.githubusercontent.com/wngnl-dev/AWS/main/EKS/OpenSearch/serviceaccount.yaml wget https://raw.githubusercontent.com/wngnl-dev/AWS/main/EKS/OpenSearch/daemonset.yaml wget https://raw.githubusercontent.com/wngnl-dev/AWS/main/EKS/OpenSearch/fluentbit.yaml
daemonset.yaml, serviceaccount.yaml, fluentbit.yaml을 수정하고 apply 해줍니다.
export CLUSTER_NAME=<클러스터 이름> export LOGGING_ROLE=$(kubectl get sa fluent-bit -n default -o json |jq '.metadata.annotations."eks.amazonaws.com/role-arn"' -r) export OPEN_SEARCH_ENDPOINT=<OpenSearch 앤드포인트> export OPEN_SEARCH_MASTER_PASSWORD=<OpenSearch 비밀번호> curl -sS -u "${OPEN_SEARCH_MASTER_USER}:${OPEN_SEARCH_MASTER_PASSWORD}" \ -X PATCH ${OPEN_SEARCH_ENDPOINT}/_opendistro/_security/api/rolesmapping/all_access?pretty \ -H 'Content-Type: application/json' \ -d '[{"op": "add", "path": "/backend_roles", "value": [ "'${LOGGING_ROLE}'" ]}]'
OpenSearh 보안 역활 업데이트
kubectl logs daemonset.apps/fluent-bit
위의 명령어로 상태를 체크하고 아무 문제 없다면
로드밸런서 OR 컨테이너에서 curl 을 보내 로그를 생성한 후 OpenSearch 도매인으로 접속해줍니다,
OpenSearch 설정
_dashboards/app/management/opensearch-dashboards/indexPatterns/create
위의 경로로 접속하여 로그 이름을 작성해줍니다 ex. product-*
Time field = @timestamp
Log 확인
Discover 로 이동하여 줍니다.
product-* 를 클릭하면 로그를 확인할 수 있습니다.
특정 Log 확인
메뉴 아래의 DevTools를 클릭하고
POST /<로그 이름>-*/_search { "query": { "query_string": { "query": "<찾는 텍스트>" } } }
위의 코드로 원하는 값을 찾을 수 있습니다.
값이 있는 경우
값이 없는 경우
'Aws' 카테고리의 다른 글
ApiGW & Lambda에서 브라우저 분류하기 (0) 2024.12.24 EC2 접속 시 CloudWatch LogGroup에 USER 로그 작성하기 (0) 2024.12.24 EKS Fluent-Bit to CloudWatch 로그 그룹 (0) 2024.12.24 EKS Calico (0) 2024.12.24 EKS MetricServer [ HPA, VPA, CA ] 공부 (0) 2024.12.24 다음글이전글이전 글이 없습니다.댓글
스킨 업데이트 안내
현재 이용하고 계신 스킨의 버전보다 더 높은 최신 버전이 감지 되었습니다. 최신버전 스킨 파일을 다운로드 받을 수 있는 페이지로 이동하시겠습니까?
("아니오" 를 선택할 시 30일 동안 최신 버전이 감지되어도 모달 창이 표시되지 않습니다.)