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
|
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
|
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
|