Please enable Javascript to view the contents

Loggie 部署与配置

 ·  ☕ 1 分钟

1. 下载 Chart 包

1
git clone https://github.com/loggie-io/installation

2. 安装 loggie

1
cd installation/helm-chart
1
helm install loggie ./ -nloggie --create-namespace

3. 全局配置修改

1
kubectl -n loggie  edit cm loggie-config-loggie 

将 parseStdout 改为 true,移除标准输出前面的时间戳。

1
2
3
4
5
6
config:
  loggie:
    discovery:
      enabled: true
      kubernetes:
        parseStdout: true

4. 业务快速配置

  • 配置环境变量
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
export NAMESPACE=""
export ES_INDEX=""
export ES_PORT=""
export ES_HOSTS=""
export ES_USERNAME=""
export ES_PASSWORD=""
export POD_LABEL_KEY=""
export POD_LABEL_VALUE=""

ES_HOSTS_YAML=""
IFS=',' read -ra _es_host_arr <<< "${ES_HOSTS}"
for _h in "${_es_host_arr[@]}"; do
  _h="${_h#"${_h%%[![:space:]]*}"}"
  _h="${_h%"${_h##*[![:space:]]}"}"
  [[ -z "${_h}" ]] && continue
  ES_HOSTS_YAML+="        - \"http://${_h}:${ES_PORT}\""$'\n'
done
  • 配置 Sink
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
cat << EOF | kubectl apply -f -
apiVersion: loggie.io/v1beta1
kind: Sink
metadata:
  name: default
  namespace: ${NAMESPACE}
spec:
  sink: |
    type: elasticsearch
    index: "${ES_INDEX}"
    hosts: 
${ES_HOSTS_YAML}
    username: "${ES_USERNAME}"
    password: "${ES_PASSWORD}"
EOF
  • 配置 Interceptor
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
cat << EOF | kubectl apply -f -
apiVersion: loggie.io/v1beta1
kind: Interceptor
metadata:
  name: default
  namespace: ${NAMESPACE}
spec:
  interceptors: |
    - type: jsonDecode
      field: message
      target: message_json
    - type: schema
      addMeta:
        timestamp:
          key: "@timestamp"
      remap:
        body:
          key: message
EOF
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
cat << EOF | kubectl apply -f -
apiVersion: loggie.io/v1beta1
kind: Interceptor
metadata:
  name: default
  namespace: ${NAMESPACE}
spec:
  interceptors: |
    - type: schema
      addMeta:
        timestamp:
          key: "@timestamp"
      remap:
        body:
          key: message
EOF
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
cat << EOF | kubectl apply -f -
apiVersion: loggie.io/v1beta1
kind: LogConfig
metadata:
  name: default
  namespace: ${NAMESPACE}
spec:
  selector:
    type: pod
    labelSelector:
      "${POD_LABEL_KEY}": "${POD_LABEL_VALUE}"
  pipeline:
    sources: |
      - type: file
        name: common
        paths:
          - stdout
    sinkRef: default
    interceptorRef: default
EOF

微信公众号
作者
微信公众号