Installation
Install the KloudMate Agent on Linux, Docker, Kubernetes, or Windows.
Choose your environment and run the appropriate installation command:
Docker Installation
Docker agent is containerized version of the Agent that collect host level metrics (via hostmetricreceiver) and logs (via the volume mounts)
User can install the agent by running below script
KM_API_KEY="<YOUR_API_KEY>" KM_COLLECTOR_ENDPOINT="https://otel.kloudmate.com:4318" bash -c "$(curl -L https://cdn.kloudmate.com/scripts/install_docker.sh)"The Docker agent required docker.sock to be mounted to the agent container.
Linux Installation
The agent supports both Debian and Red Hat based systems on x86_64 and ARM64 (aarch64) architectures.
Packages are available as .deb (Debian/Ubuntu) and .rpm (RHEL/CentOS/Fedora).
Install the agent via the automated bash script:
KM_API_KEY="<YOUR_API_KEY>" KM_COLLECTOR_ENDPOINT="https://otel.kloudmate.com:4318" bash -c "$(curl -L https://cdn.kloudmate.com/scripts/install_linux.sh)"Bash script should have various configurable arguments to configure the agent apart from API_KEY which is required for authentication at exporter. Each of the script should have corresponding uninstall command to remove the agent from the system.
Kubernetes Installation
- The agent will run as DaemonSet as well as a Deployment in the cluster and add necessary components to monitor the nodes and pods.
- you must install
kloudmate-crdbefore running helm install command:
kubectl apply -f https://raw.githubusercontent.com/kloudmate/km-agent/refs/heads/develop/deployment/helm/km-kube-agent/crds/crd-otel-instrumentation.yamlYou can then install the agent using below Helm commands
helm repo add kloudmate https://kloudmate.github.io/km-agent
helm repo update
helm install kloudmate-release kloudmate/km-kube-agent --namespace km-agent --create-namespace \
--set API_KEY="<YOUR_API_KEY>" \
--set COLLECTOR_ENDPOINT="https://otel.kloudmate.com:4318" \
--set clusterName="<YOUR_CLUSTER_NAME>" \
--set "monitoredNamespaces={MONITORED_NS}" \
--set featuresEnabled.apm=true \
--set featuresEnabled.logs=true⚠️NOTE:
- For the
monitoredNamespacesflag the namespaces should be passed as comma-separated values. For example ---set "monitoredNamespaces={bookinfo,mongodb,cassandra}"wherebookinfo,mongodbandcassandraare the targetted namespaces that you want to monitor.
🚨 Note: For private GKE clusters, you will need to either add a firewall rule that allows master nodes access to port 9443/tcp on worker nodes, or change the existing rule that allows access to port 80/tcp, 443/tcp and 10254/tcp to also allow access to port 9443/tcp. More information can be found in the Official GCP Documentation. See the GKE documentation on adding rules and the Kubernetes issue for more detail.
Note: To enable APM (Application Performance Monitoring) and logs collection, set the featuresEnabled.apm and featuresEnabled.logs flags to true. By default, metrics and traces are enabled. You can customize these settings based on your monitoring requirements:
featuresEnabled.apm=true- Enables application performance monitoringfeaturesEnabled.logs=true- Enables log collectionfeaturesEnabled.metrics=true- Enables metrics collection (enabled by default)featuresEnabled.traces=true- Enables trace collection (enabled by default)
⚠️ Configuration Management: Manually updating the ConfigMaps for the DaemonSet or Deployment agents is not recommended, as these configurations may be overwritten by updates sent from KloudMate APIs. The recommended approach is to use the KloudMate Agent Config Editor - a web-based YAML editor that ensures your configurations are properly synchronized and persisted across your infrastructure.
Installing the Agent on Nodes with Taints
If your Kubernetes cluster uses taints on nodes, the agent daemonset pods must have corresponding tolerations to be scheduled successfully. By default, the agent does not apply any tolerations. You can configure tolerations during installation using Helm parameters. The helm installation command in this case will look like this -
helm install kloudmate-release kloudmate/km-kube-agent --namespace km-agent --create-namespace \
--set API_KEY="<YOUR_API_KEY>" --set COLLECTOR_ENDPOINT="https://otel.kloudmate.com:4318" \
--set clusterName="<YOUR_CLUSTER_NAME>" \
--set "monitoredNamespaces={MONITORED_NS}" \
--set tolerations[0].key="env" --set tolerations[0].operator="Equal" --set tolerations[0].value="uat" --set tolerations[0].effect="NoSchedule" \
--set tolerations[1].key="env" --set tolerations[1].operator="Equal" --set tolerations[1].value="sb-uat-node" --set tolerations[1].effect="NoSchedule"In the above example, two tolerations are provided to match the taints configured on the cluster's nodes. This ensures the agent daemonset pods can be scheduled across all desired nodes.
Notes
- You can define as many tolerations as needed by incrementing the index (
tolerations[0],tolerations[1], etc.). - The values of key, operator, value, and effect should match the taints applied to your nodes.
- If your cluster has no taints, you can skip these parameters. By default, the agent daemonset pods will be automatically scheduled on untainted nodes.
Windows Installation
Download and run the Windows (.exe) installer from our releases page.