瞭解如何使用 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 輸出,該輸出會將所有控制平面虛擬機器系統記錄轉送到 ES 記錄伺服器。
[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