TKG1.6.0でfluent-bitを構築した記事をv2.1.1で確認し直したもの。
オプションが変わっていたので、コピペしやすいよう別記事としてこちらにメモを残す。
なお、syslogサーバの構築は同じなので今回は割愛した。
インストール
利用可能なバージョンを確認する。
tanzu package available list fluent-bit.tanzu.vmware.com -A
values.yamlを生成してみる。オプションが--generate-default-values-file
から--default-values-file-output
に変わり、引数を要求するようになったので注意。
FB_VERSION="1.9.5+vmware.1-tkg.1"
tanzu package available get fluent-bit.tanzu.vmware.com/$FB_VERSION --default-values-file-output fluent-bit-default-values.yaml
が、中身が以下のようになっており使い物にならなかったので、自分で自作する。
$ cat fluent-bit-default-values.yaml
# fluent_bit:
# config:
# filters: default kubernetes filter
# inputs: tail
# outputs: standard output
# parsers: json parser
# service: default fluent-bit service config.
# namespace: tanzu-system-logging
以下で自作する。TKG1.6.0で作ったものにHTTP_Server On
を追加した。また、syslogのIPを変更することを忘れないこと。
cat <<'EOF' > ./fluent-bit-default-values.yaml
---
fluent_bit:
config:
service: |
[SERVICE]
Daemon Off
Flush 1
Log_Level info
Parsers_File parsers.conf
Health_Check On
HTTP_Server On
inputs: |
[INPUT]
Name tail
Path /var/log/containers/*.log
DB /var/log/flb_kube.db
parser cri
Tag kube.*
Mem_Buf_Limit 5MB
Skip_Long_Lines On
parsers: |
[PARSER]
# http://rubular.com/r/tjUt3Awgg4
Name cri
Format regex
Regex ^(?<time>[^ ]+) (?<stream>stdout|stderr) (?<logtag>[^ ]*) (?<message>.*)$
Time_Key time
Time_Format %Y-%m-%dT%H:%M:%S.%L%z
filters: |
[FILTER]
Name kubernetes
Match kube.*
Kube_URL https://kubernetes.default.svc.cluster.local:443
Kube_CA_File /var/run/secrets/kubernetes.io/serviceaccount/ca.crt
Kube_Token_File /var/run/secrets/kubernetes.io/serviceaccount/token
Kube_Tag_Prefix kube.var.log.containers.
Merge_Log On
Merge_Log_Key log_processed
Keep_Log Off
K8S-Logging.Parser On
K8S-Logging.Exclude On
outputs: |
[OUTPUT]
Name syslog
Match *
Host 10.151.199.248
Port 514
Mode tcp
Syslog_Format rfc5424
Syslog_Hostname_key tkg_cluster
Syslog_Appname_key pod_name
Syslog_Procid_key container_name
Syslog_Message_key message
syslog_msgid_key msgid
Syslog_SD_key k8s
Syslog_SD_key labels
Syslog_SD_key annotations
namespace: tanzu-system-logging
EOF
fluent-bitをインストールする。
--package-name
が--package
に変わり、--create-namespace
がなくなっているようなので上手いこと置き換えて実行する。
NAMESPACE="my-packages"
kubectl create ns $NAMESPACE
tanzu package install fluent-bit \
--package fluent-bit.tanzu.vmware.com \
--version $FB_VERSION \
--values-file fluent-bit-default-values.yaml \
--namespace $NAMESPACE
動作確認
syslog側のログを確認すると、問題なく取れていることが分かる。
$ kubectl exec -n rsyslog -it rsyslog -- tail -f /var/log/remote.log
:(省略)
2023-04-12T10:43:10.935655Z - - I0412 10:43:10.935430 1 server.go:569] CmdDel for container 6c448410e38d80077a9e6dc718220d9738815899576a7055a545e5d32e510712 succeeded