Search

FluentBit

cat <<EOF> cw-log-policy.json { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents", "logs:DescribeLogStreams" ], "Resource": [ "arn:aws:logs:*:*:*" ] } ] } EOF
Shell
복사
aws iam create-policy --policy-name fluent-bit-policy --policy-document file://cw-log-policy.json > /dev/null
Shell
복사
kubectl create ns fluent-bit
Shell
복사
POLICY_ARN=$(aws iam list-policies --query "Policies[?PolicyName=='fluent-bit-policy'].Arn" --output text)
Shell
복사
eksctl utils associate-iam-oidc-provider --cluster wsi-eks-cluster --approve
Shell
복사
eksctl create iamserviceaccount \ --cluster=wsi-eks-cluster \ --namespace=wsi-ns \ --name=aws-for-fluent-bit \ --role-name FluentBitIAMRole \ --attach-policy-arn=$POLICY_ARN \ --approve
Shell
복사
cat <<EOF> values.yaml serviceAccount: create: false name: fluent-bit cloudWatchLogs: enabled: true region: "ap-northeast-2" logGroupName: "/wsi/eks/log/" logStreamPrefix: "log-" autoCreateGroup: true EOF
Shell
복사
helm repo add eks https://aws.github.io/eks-charts helm upgrade --install aws-for-fluent-bit --namespace fluent-bit eks/aws-for-fluent-bit -f values.yaml
Shell
복사
apiVersion: v1 kind: ConfigMap metadata: name: fluent-bit-sidecar namespace: wsi-ns labels: app.kubernetes.io/name: fluent-bit-sidecar helm.sh/chart: default-0.1.0 app.kubernetes.io/instance: flb-sidecar app.kubernetes.io/version: "1.0" app.kubernetes.io/managed-by: Tiller data: fluent-bit.conf: | [SERVICE] Flush 1 Log_Level info Daemon off Parsers_File parsers.conf [INPUT] Name tail Path /logs/app.log Parser custom_log Tag app.log [OUTPUT] Name stdout Match * [OUTPUT] Name cloudwatch Match * endpoint https://logs.ap-northeast-2.amazonaws.com region ap-northeast-2 log_group_name /wsi/eks/log/ log_stream_name log-${HOSTNAME} auto_create_group true parsers.conf: | [PARSER] Name custom_log Format regex Regex ^(?<year>\d{4})-(?<month>\d{2})-(?<day>\d{2})\s(?<hour>\d{2}):(?<minute>\d{2}):(?<second>\d{2}),\d+ - - (?<ip>\d+\.\d+\.\d+\.\d+) (?<port>\d+) (?<method>\S+) (?<path>\S+) (?<statuscode>\d+)$ Time_Key time Time_Format %Y-%m-%d %H:%M:%S Time_Keep On
YAML
복사
kubectl apply -f fluent-bit-cm.yaml
Shell
복사