Skip to main content

Unified Helm Chart

The logzio-monitoring Helm Chart ships your Kubernetes telemetry (logs, metrics, traces and security reports) to your Logz.io account.

Before you integrate Kubernetes you'll need:

Prerequisites

  • Helm

  • Add Logzio-helm repository

    helm repo add logzio-helm https://logzio.github.io/logzio-helm && helm repo update

Send All Telemetry Data (logs, metrics, traces and security reports)

Send all of your telemetry data using one single Helm chart:

helm install  -n monitoring --create-namespace \
--set global.logzioRegion="<<LOGZIO_ACCOUNT_REGION_CODE>>" \
--set global.env_id="<<ENV-ID>>" \
--set logs.enabled=true \
--set global.logzioLogsToken="<<LOG-SHIPPING-TOKEN>>" \
--set logzio-k8s-telemetry.metrics.enabled=true \
--set global.logzioMetricsToken="<<METRICS-SHIPPING-TOKEN>>" \
--set logzio-k8s-telemetry.k8sObjectsConfig.enabled=true \
--set logzio-apm-collector.enabled=true \
--set global.logzioTracesToken="<<TRACING-SHIPPING-TOKEN>>" \
--set logzio-apm-collector.spm.enabled=true \
--set logzio-apm-collector.serviceGraph.enabled=true \
--set global.logzioSpmToken="<<METRICS-SHIPPING-TOKEN>>" \
--set securityReport.enabled=true \
--set deployEvents.enabled=true \
logzio-monitoring logzio-helm/logzio-monitoring
ParameterDescription
<<LOG-SHIPPING-TOKEN>>Your logs shipping token.
<<LISTENER-HOST>>Your account's listener host.
<<METRICS-SHIPPING-TOKEN>>Your metrics shipping token.
<<ENV-ID>>The name for your environment's identifier, to easily identify the telemetry data for each environment. For example, your cluster name.
<<TRACING-SHIPPING-TOKEN>>Your traces shipping token.
<<LOGZIO_ACCOUNT_REGION_CODE>>Your Logz.io region code

Manual Setup

Below are instructions for configuring each type of telemetry data individually.

Send your Logs

To send your logs, our chartlogzio-monitoring offers two methods:

  • logzio-logs-collector, based on OpenTelemetry collector
  • logzio-fluentd, based on fluentd

Log collection with OpenTelemetry collector

helm install -n monitoring --create-namespace \
--set logs.enabled=true \
--set global.logzioLogsToken="<<LOG-SHIPPING-TOKEN>>" \
--set global.logzioRegion="<<LOGZIO_ACCOUNT_REGION_CODE>>" \
--set global.env_id="<<CLUSTER-NAME>>" \
logzio-monitoring logzio-helm/logzio-monitoring

Log collection with Fluentd

The logzio-fluentd chart is disabled by default in favor of the logzio-logs-collector chart. Deploy logzio-fluentd by adding the following --set flags:

helm install -n monitoring --create-namespace \
--set logs.enabled=true \
--set logzio-fluentd.enabled=true \
--set logzio-logs-collector.enabled=false \
--set global.logzioLogsToken="<<LOG-SHIPPING-TOKEN>>" \
--set global.logzioRegion="<<LOGZIO_ACCOUNT_REGION_CODE>>" \
--set global.env_id="<<CLUSTER-NAME>>" \
logzio-monitoring logzio-helm/logzio-monitoring
ParameterDescription
<<LOG-SHIPPING-TOKEN>>Your logs shipping token.
<<CLUSTER-NAME>>The cluster's name, to easily identify the telemetry data for each environment.
<<LOGZIO-REGION>>Your Logz.io region code.

Encounter an issue? See our troubleshooting guide.

Adding pod labels

To ensure that labels are applied correctly to the pods managed by the Logz.io collector, add the following section to your Helm chart configuration:

logzio-k8s-telemetry:
standaloneCollector:
podLabels:
team: devops-tooling

Custom Configuration

You can view the full list of possible configuration options for each chart in the links below:

  1. logzio-fluentd Chart
  2. logzio-logs-collector Chart

To modify values, use the --set flag with the chart name as a prefix.

Example: For a parameter called someField in the logzio-logs-collector's values.yaml file, set it by adding the following to the helm install command:

--set logzio-logs-collector.someField="my new value"

Adding log_type annotation with a custom value will be parsed into a log_type field with the same value.

Advanced Configuration and Troubleshooting

Handling image pull rate limit

Docker Hub pull rate limits could result in the following error: You have reached your pull rate limit. You may increase the limit by authenticating and upgrading: https://www.docker.com/increase-rate-limits. To avoid this, use the --set commands below to access an alternative image repository:

--set logzio-k8s-telemetry.image.repository=ghcr.io/open-telemetry/opentelemetry-collector-releases/opentelemetry-collector-contrib
--set logzio-k8s-telemetry.prometheus-pushgateway.image.repository=public.ecr.aws/logzio/prom-pushgateway
--set logzio-fluentd.image=public.ecr.aws/logzio/logzio-fluentd
--set logzio-fluentd.daemonset.init.containerImage=public.ecr.aws/docker/library/busybox
--set logzio-trivy.image=public.ecr.aws/logzio/trivy-to-logzio

Instrumentation

If you're using manual instrumentation or an instrumentation agent, configure it to export data to the Logz.io APM collector by setting the export/output address as follows:

logzio-apm-collector.monitoring.svc.cluster.local:<<PORT>>
note

Replace <<PORT>> based on the protocol your agent uses:

  • 4317 for OTLP GRCP
  • 4318 for OTLP HTTP For a complete list, see values.yaml.

Migrating to logzio-monitoring 7.0.0

Step 1: Update helm repositories

Run the following command to ensure you have the latest chart versions:

helm repo update

Step 2: Build the upgrade command

Choose the appropriate upgrade command for your current setup. If you're unsure of your configuration, use the following command to retrieve the current values

helm get values logzio-monitoring -n monitoring
Important

If you have enabled any of the following

  • logzio-k8s-events (deployEvents)
  • logzio-trivy (securityReport)
  • logzio-k8s-telemetry.k8sObjectsConfig You must use one of the Logs command options as part of the upgrade process.
helm upgrade logzio-monitoring logzio-helm/logzio-monitoring -n monitoring --version 7.0.0 \
--set global.logzioRegion="<<LOGZIO-REGION>>" \
--set global.env_id="<<ENV-ID>>" \
--set global.logzioLogsToken="<<LOG-SHIPPING-TOKEN>>" \
--set global.logzioMetricsToken="<<PROMETHEUS-METRICS-SHIPPING-TOKEN>>" \
--set logzio-k8s-telemetry.traces.enabled=false \
--set logzio-apm-collector.enabled=true \
--set global.logzioTracesToken="<<TRACES-SHIPPING-TOKEN>>" \

# If you also send SPM or ServiceGraph, add the relevant enable flag for them and the token
--set logzio-apm-collector.spm.enabled=true \
--set logzio-apm-collector.serviceGraph.enabled=true \
--set global.logzioSpmToken="<<SPM-SHIPPING-TOKEN>>" \

--reuse-values
note

If you were using logzio-logs-collector.secrets.logType, add to your command --set global.logType=<<LOG-TYPE>> \

note

Make sure to update your Instrumentation service endpoint from logzio-monitoring-otel-collector.monitoring.svc.cluster.local to logzio-apm-collector.monitoring.svc.cluster.local.

Managing own secret

If you manage your own secret for the Logz.io charts, please also add to your command:

--set sub-chart-name.secret.name="<<NAME-OF-SECRET>>" \
--set sub-chart-name.secret.enabled=false \
Important

This change is not relevant for the logzio-k8s-telemetry chart.

Replace sub-chart-name with the name of the sub chart which you manage the secrets for.

For example, if you manage secret for both logzio-logs-collector and for logzio-trivy, use:

helm upgrade logzio-monitoring logzio-helm/logzio-monitoring -n monitoring --version 7.0.0 \
--set global.logzioRegion="<<LOGZIO-REGION>>" \
--set global.env_id="<<ENV-ID>>" \
--set logzio-logs-collector.secret.name="<<NAME-OF-SECRET>>" \
--set logzio-logs-collector.secret.enabled=false \
--set logzio-trivy.secret.name="<<NAME-OF-SECRET>>" \
--set logzio-trivy.secret.enabled=false \
--reuse-values