Fluent Bit を使用して、スーパーバイザー 制御プレーン ログを Grafana Loki や Elastic Search などの外部監視システムに転送するように構成する方法を確認します。
スーパーバイザー 制御プレーン ログは、Fluent Bit を使用して、vCenter Server アプライアンスに構成された Syslog サーバに自動的に転送されます。Fluent Bit は、オープンソースで軽量のログおよびメトリック プロセッサかつフォワーダであり、さまざまなログ データ タイプ、フィルタリング、およびログ タグの機能強化をサポートする構成を提供します。
スーパーバイザー のアクティベーションまたはアップグレード中も、ブートストラップ ログは rsyslog によって、vCenter Server アプライアンスに構成されている Syslog サーバに転送されます。スーパーバイザー 制御プレーン仮想マシンが実行中になると、Fluent Bit が スーパーバイザー 制御プレーン ログのデフォルトのログ フォワーダになります。
vSphere 管理者は、Fluent Bit を使用して以下のことができます。
スーパーバイザー 制御プレーン ログとシステム ジャーナル ログを、Loki、Elastic Search、Grafana などの主要な外部ログ監視プラットフォームや、Fluent Bit でサポートされているその他のプラットフォームに転送します。
- k8s API を使用して、スーパーバイザー 制御プレーンのログ転送構成を更新またはリセットします。
inputs-custom.conf: | [INPUT] Name tail Alias audit_apiserver_tail Tag audit.apiserver.* Path /var/log/vmware/audit/kube-apiserver.log DB /var/log/vmware/fluentbit/flb_audit_apiserver.db Buffer_Max_Size 12MBb Mem_Buf_Limit 32MB Skip_Long_Lines On Refresh_Interval 10 filters-custom.conf: | [FILTER] Name record_modifier Alias audit_apiserver_modifier Match audit.apiserver.* Record hostname ${NODE_NAME} Record appname audit-kube-apiserver Record filename kube-apiserver.log outputs-custom.conf: | [OUTPUT] Name syslog Alias audit_apiserver_output_syslog Match audit.apiserver.* Host <syslog-server-host> Port <syslog-server-port> Mode tcp Syslog_Format rfc5424 Syslog_Message_key log Syslog_Hostname_key hostname Syslog_Appname_key appname Syslog_Msgid_key filename
Fluent Bit ログ転送のカスタマイズ
次の手順に従って、Fluent Bit ログ転送構成をカスタマイズします。
- vCenter Single Sign-On 管理者として、スーパーバイザー 制御プレーンにログインします。
> kubectl vsphere login --server=<supervisor-cluster-vip> -u [email protected] > kubectl config use-context <supervisor-cluster-vip>
- fluentbit-config-custom ConfigMap の outputs-custom.conf セクションで、Syslog 出力を更新または追加します。これにより、すべての制御プレーン仮想マシン システム ログが外部サーバに転送されるようになります。
[OUTPUT] Name syslog Alias syslog_system Match system* Host <syslog-server-host> Port <syslog-server-port> Mode tcp Syslog_Format rfc5424 Syslog_Message_key log Syslog_Hostname_key hostname Syslog_Appname_key appname Syslog_Msgid_key filename # add the following if the mode is TLS Tls on Tls.verify off Tls.ca_file /etc/ssl/certs/vmca.pem
- 変更を fluentbit-config-custom ConfigMap に適用します。
> kubectl -n vmware-system-logging edit cm fluentbit-config-custom # use the below command if the change is stored in outputs-custom.conf file > kubectl -n vmware-system-logging create configmap fluentbit-config-custom --from-file=filters-custom.conf --from-file=inputs-custom.conf --from-file=outputs-custom.conf -o yaml --from-file=parsers-custom.conf --dry-run | kubectl replace -f -
Fluent Bit ポッドを監視して構成の変更を自動的に適用し、Syslog サーバの スーパーバイザー ログを照会します。更新した構成が再ロードされた後に Fluentbit DaemonSet でエラーが発生する場合は、
fluentbit-config-custom
ConfigMap で構成を修復またはリセットして、Fluentbit DaemonSet が健全に動作するようにします。> kubectl -n vmware-system-logging get pod > kubectl -n vmware-system-logging logs <fluentbit-pod-name>
Kubernetes API サーバ監査ログの Grafana Loki サーバへの転送
次の手順に従って、外部 Grafana Loki サーバへのログ転送を構成します。
- vCenter Single Sign-On 管理者として、スーパーバイザー 制御プレーンにログインします。
> kubectl vsphere login --server=<supervisor-cluster-vip> -u [email protected] > kubectl config use-context <supervisor-cluster-vip>
- fluentbit-config-custom ConfigMap の outputs-custom.conf セクションで、Loki 出力を更新または追加します。これにより、すべての制御プレーン仮想マシン システム ログが Loki ログ サーバに転送されるようになります。
[OUTPUT] Name loki Alias system_output_loki Match system* Host <loki-server-host> Port <loki-server-port> Labels $hostname,$appname,$filename,$procid,$labels
- 変更を fluentbit-config-custom ConfigMap に適用します。
> kubectl -n vmware-system-logging edit cm fluentbit-config-custom # use the below command if the change is stored in outputs-custom.conf file > kubectl -n vmware-system-logging create configmap fluentbit-config-custom --from-file=filters-custom.conf --from-file=inputs-custom.conf --from-file=outputs-custom.conf -o yaml --from-file=parsers-custom.conf --dry-run | kubectl replace -f -
Fluent Bit ポッドを監視して構成の変更を自動的に適用し、Syslog サーバの スーパーバイザー ログを照会します。更新した構成が再ロードされた後に Fluentbit DaemonSet でエラーが発生する場合は、
fluentbit-config-custom
ConfigMap で構成を修復またはリセットして、Fluentbit DaemonSet が健全に動作するようにします。> kubectl -n vmware-system-logging get pod > kubectl -n vmware-system-logging logs <fluentbit-pod-name>
Elastic Search へのログの転送
- vCenter Single Sign-On 管理者として、スーパーバイザー 制御プレーンにログインします。
> kubectl vsphere login --server=<supervisor-cluster-vip> -u [email protected] > kubectl config use-context <supervisor-cluster-vip>
- fluentbit-config-custom ConfigMap の outputs-custom.conf セクションで、Elastic Search 出力を更新または追加します。これにより、すべての制御プレーン仮想マシン システム ログが Elastic Search ログ サーバに転送されるようになります。
[OUTPUT] Name es Alias system_output_es Match system* Host <es-server-host> Port <es-server-port> Index supervisor Type controlplanevm
- 変更を fluentbit-config-custom ConfigMap に適用します。
> kubectl -n vmware-system-logging edit cm fluentbit-config-custom # use the below command if the change is stored in outputs-custom.conf file > kubectl -n vmware-system-logging create configmap fluentbit-config-custom --from-file=filters-custom.conf --from-file=inputs-custom.conf --from-file=outputs-custom.conf -o yaml --from-file=parsers-custom.conf --dry-run | kubectl replace -f -
Fluent Bit ポッドを監視して構成の変更を自動的に適用し、Syslog サーバの スーパーバイザー ログを照会します。
> kubectl -n vmware-system-logging get pod > kubectl -n vmware-system-logging logs <fluentbit-pod-name>
Kubernetes API 監査ログの Syslog サーバへの転送
次の手順に従って、Kubernetes API 監査ログの外部 Syslog サーバへの転送を構成します。
- kubectl-plugin-vsphere および authproxy 入力を fluentbit-config ConfigMap に追加します。
[INPUT] Name tail Tag auth.kubectl-plugin.* Path /var/log/containers/audit/kubectl-plugin-vsphere*.log DB /var/log/vmware/fluentbit/flb_auth_kubectl-plugin.db Skip_Long_Lines Off Refresh_Interval 10 [INPUT] Name tail Tag auth.authproxy.* Path /var/log/containers/audit/wcp-authproxy*.log DB /var/log/vmware/fluentbit/flb_auth_authproxy.db Skip_Long_Lines Off Refresh_Interval 10
- kubectl-plugin-vsphere および authproxy フィルタを fluentbit-config ConfigMap に追加します。
[FILTER] Name kubernetes Match auth.* Kube_URL https://localhost:6443 Tls.verify Off K8S-Logging.Parser On K8S-Logging.Exclude On [FILTER] Name record_modifier Match auth.* Operation lift Nested_under kubernetes [FILTER] Name modify Match auth.* Rename container_name appname Rename host hostname Rename pod_name procid
- Syslog サーバへの kubectl-plugin-vsphere 出力を fluentbit-config ConfigMap に追加します。
[OUTPUT] Name syslog Match auth.* Host <syslog-server-host> Port <syslog-server-port> Mode tcp Syslog_Format rfc5424 Syslog_Message_key log Syslog_Hostname_key hostname Syslog_Appname_key appname Syslog_Msgid_key filename
- 上記のファイルを vmware-system-logging 名前空間の fluentbit-config ConfigMap にインクルードします。
> k -n vmware-system-logging edit cm fluentbit-config > k -n vmware-system-logging rollout restart ds fluentbit > k -n vmware-system-logging rollout status ds fluentbit