Monitor Kubernetes with sfPod
sfPod is a collector that is installed on Kubernetes and runs as a DaemonSet on each worker node. It monitors the following elements of a Kubernetes environment:
- Cluster metrics
- Host metrics
- Pod metrics
- Container metrics
- Kubernetes services health– Kubelet, Kube-Proxy, API Server, Controller Manager, Core DNS
Kubernetes cluster logs
Poll Prometheus Exporters running on application pods
Pod Application Logs
Below is short video explaining the sfPOD installation steps
Step 1: Create a Cloud profile
Create a cloud profile in SnappyFlow (or use an existing profile) and copy the profile key to use it while installing the sfPod in your cluster.
Step 2: Add Snappyflow helm chart
Login to any node that has network connectivity to Kubernetes master node and run the following commands
helm repo add snappyflow https://snappyflow.github.io/helm-charts
helm repo list
helm repo update
Step 3: Installing helm chart
kubectl create namespace sfagent
helm install <name> snappyflow/sfagent --set config.project_name=<my-project-name> --set config.app_name=<my-cluster-name> --set config.key=<profile key> --set architecture=<arch> --namespace sfagent
<my-cluster-name>- Replace with an unique name. Cluster will be discovered by this name on the Snappyflow
<profile key>- Replace with profile key copied from SnappyFlow
<arch>- Replace with architecture of the kube cluster
<arch> is an optional parameter. x86_64(amd64) is enabled by default. To monitor arm64/aarch64, add arm64 in the helm chart configuration.
Restricted sfPod Configuration
By default, sfPod is installed with a comprehensive configuration mode that actively monitors all elements. You have the option to choose a limited configuration by using specific flags, enabling them to monitor either cluster logs or cluster metrics exclusively.
Enable or disable Cluster Monitoring by using the following flag.
trueenables Cluster Monitoring.
falseto disables Cluster Monitoring and enables Prometheus Polling and Centralized Application Log Monitoring.
Drop Cluster Logs
Disable Cluster Monitoring by using the following flag.
--set config.node_agent.drop_cluster_logs=true =>
sfPod organizes data collected by plugin/documentType. Example: pod, node, container, cluster_stats etc. The detailed list of document types can be viewed in Browse Data section of a Kubernetes cluster. You can disable collection of a documentType using the following flag.
--set config.<doc_type>= false
By default, sfPod sends metrics for pods and containers that have
appName tags to both the
Cluster Index and
Project Index, resulting in duplicated metric data. This feature is enabled to enhance correlation of Application and Infrastructure data. App view feature can be switched-off by using the following flag.
--set config.app_view= true
To enable or disable Single Line Parsing (skipping multiline log parsers) with supported parser plugins in SnappyFlow, use the following flag.
The Kubernetes cluster efficiently manages the scheduling and deletion of numerous pod and container deployments within a brief timeframe. By default, the metadata server utilized is the
apiserver. However, to prevent any potential
apiserver throttling in a busy cluster,
kubelet can be employed. Use the following flag to set the usage of
kubelet server for retrieving pod/container metadata.