Sumo Logic Kubernetes Helm Chart Installation
This page describes how to install the Sumo Logic Kubernetes Helm Chart.
Requirementsβ
Helmβ
The Sumo Logic Kubernetes Collection solution is packaged as a Helm Chart. See the official Helm documentation for installation instructions for the Helm binary.
Helm Chart repositoryβ
Before installing the chart, you need to add the sumologic
Helm repository:
helm repo add sumologic https://sumologic.github.io/sumologic-kubernetes-collection
helm repo update
Sumo Logic accountβ
If you donβt already have a Sumo Logic account, you can Start a free trial.
The following are required to set up and deploy the Sumo Logic Kubernetes collection.
- Review our minimum requirements and support matrix
- An Access ID and Access Key with the following Data Management role capabilities: Manage Collectors and Manage Fields.
note
The Manage Monitors and Manage Content capabilities are required to install the built-in monitors and dashboards, which are recommended and enabled by default.
To get an idea of the resources this chart will require to run on your cluster, you can reference our performance doc.
Installation stepsβ
Required parametersβ
The Helm chart installation requires two parameter overrides:
sumologic.accessId
- Sumo Access ID.sumologic.accessKey
- Sumo Access key.sumologic.clusterName
- An identifier for your Kubernetes cluster. This is the name you will see for the cluster in Sumo Logic. Set a different value for each cluster you install the Helm Chart in.
Prepare minimal configurationβ
Create a user-values.yaml
file in your working directory with the following content:
sumologic:
accessId: ${SUMO_ACCESS_ID}
accessKey: ${SUMO_ACCESS_KEY}
clusterName: ${MY_CLUSTER_NAME}
Additional configuration is necessary for OpenShift
Install the Helm Chartβ
The following command will install the Sumo Logic chart with the release name my-release
in the ${NAMESPACE}
namespace.
helm upgrade \
--install \
-n `${NAMESPACE}` \
--create-namespace \
-f user-values.yaml \
my-release \
sumologic/sumologic
If the release exists, it will be upgraded, otherwise it will be installed. If the namespace doesn't exists, it will be created.
You should see output similar to the following:
Release "my-release" does not exist. Installing it now.
NAME: my-release
LAST DEPLOYED: Fri Oct 13 11:11:49 2023
NAMESPACE: sumologic
STATUS: deployed
REVISION: 1
NOTES:
Thank you for installing sumologic.
(...)
More configuration examples (i.e. OpenShift) can found seen in this document.
Viewing Data In Sumo Logicβ
Once you have completed installation, you can install the Kubernetes App and view the dashboards or open Kubernetes view in Sumo Logic. If you do not see data in Sumo Logic, you can review our troubleshooting guide.
Customizing Installationβ
We recommend creating a new user-values.yaml
for each Kubernetes cluster you wish to install collection in and setting only the properties
you wish to override. Once you have customized it you should use the following commands to install or upgrade.
helm upgrade \
--install \
-n `${NAMESPACE}` \
--create-namespace \
-f user-values.yaml \
my-release \
sumologic/sumologic
We documented some common customizations below:
Overriding names of resourcesβ
If you want to override the names of the resources created by the chart, see
Overriding chart resource names with fullnameOverride
.
Using a custom container registryβ
Container images used by this Helm Chart are currently hosted on Amazon Public ECR which requires authentication to provide a higher quota for image pulls. To find a comprehensive information on this please refer to Amazon Elastic Container Registry pricing.
Please refer to our instructions on how to provide credentials in order to authenticate with Public ECR.
An alternative would be to host Sumo Logic container images in one's container registries. To do so please refer to the following instructions
Using FIPS compliant OpenTelemetry Collectorβ
Refer to the FIPS compliant binaries section in the Advanced Configuration / Security Best Practices document.
Proxyβ
If you are installing the collection in a cluster that requires proxying outbound requests, please see the following additional properties you will need to set.
Collecting container logsβ
Refer to Collecting Container Logs document
Collecting metricsβ
Refer to Collecting Metrics.
Collecting Kubernetes eventsβ
Refer to Collecting Kubernetes Events document
Upgrading Sumo Logic Collectionβ
To upgrade our helm chart to a newer version, you must first run update your local helm repo.
helm repo update
Next, you can run helm upgrade --install
to upgrade to that version. The following upgrades the current version of my-release
to the
latest.
helm upgrade --install my-release sumologic/sumologic -f `user-values.yaml`
If you wish to upgrade to a specific version, you can use the --version
flag.
helm upgrade --install my-release sumologic/sumologic -f `user-values.yaml` --version=2.0.0
Note: If you no longer have your user-values.yaml
from the first installation or do not remember the options you added via --set
you
can run the following to see the values for the currently installed helm chart. For example, if the release is called my-release
you can
run the following.
helm get values my-release
If something goes wrong, or you want to go back to the previous version, you can rollback changes using helm:
helm history my-release
helm rollback my-release <REVISION-NUMBER>
Uninstalling Sumo Logic Collectionβ
To uninstall/delete the Helm chart:
helm delete my-release
Helm3 Tip: In Helm3 the default behavior is to purge history. Use --keep-history to preserve it while deleting the release.
The command removes all the Kubernetes components associated with the chart and deletes the release.
Post uninstallation cleanupβ
In order to clean up the Kubernetes secret and associated hosted collector one can use the optional cleanup job by setting
sumologic.cleanupEnabled
to true
.
Alternatively the secret can be removed manually with:
kubectl delete secret sumologic
and the associated hosted collector can be deleted in the Sumo Logic UI.
Troubleshooting Installationβ
See the Troubleshooting document.
Installing in OpenShift platformβ
The daemonset/statefulset fails to create the pods in Openshift environment due to the request of elevated privileges, like HostPath mounts, privileged: true, etc.
If you wish to install the chart in the Openshift Platform, it requires a SCC resource which is only created in Openshift (detected via API capabilities in the chart), you can add the following configuration to user-values.yaml
:
sumologic:
scc:
create: true
otellogs:
daemonset:
containers:
otelcol:
securityContext:
privileged: true
initContainers:
changeowner:
securityContext:
privileged: true
tailing-sidecar-operator:
scc:
create: true
Notice: Prometheus Operator is deployed by default on OpenShift platform, you may either limit scope for Prometheus Operator installed
with Sumo Logic Kubernetes Collection using kube-prometheus-stack.prometheusOperator.namespaces.additional
parameter in user-values.yaml
or exclude namespaces for Prometheus Operator installed with Sumo Logic Kubernetes Collection using
kube-prometheus-stack.prometheusOperator.denyNamespaces
in user-values.yaml
. For details, see
Prometheus document
Non-helm installationβ
If you do not want to use Helm to manage the installation, please use helm template
to generate Kubernetes templates and apply them using
Kubectl.
Warning: > Before upgrade, please delete the old jobs:
kubectl delete job -n ${NAMESPACE} my-release-sumologic-setup
kubectl delete job -n ${NAMESPACE} my-release-sumologic-ot-operator-instr
(needed only ifopentelemetry-operator.enabled=true
)
Simply replace:
helm upgrade \
--install \
-n `${NAMESPACE}` \
--create-namespace \
-f user-values.yaml \
my-release \
sumologic/sumologic
with
helm template \
-n "${NAMESPACE}" \
--create-namespace \
-f user-values.yaml \
my-release \
sumologic/sumologic | tee sumologic-rendered.yaml
kubectl create namespace "${NAMESPACE}"
kubectl apply -f sumologic-rendered.yaml -n "${NAMESPACE}"
OpenShiftβ
For Openshift, you need to add --api-versions=security.openshift.io/v1
argument to helm template
, so the final set of upgrade commands
will look like the following:
helm template \
--api-versions=security.openshift.io/v1` \
-n "${NAMESPACE}" \
--create-namespace \
-f user-values.yaml \
my-release \
sumologic/sumologic | tee sumologic-rendered.yaml
kubectl create namespace "${NAMESPACE}"
kubectl apply -f sumologic-rendered.yaml -n "${NAMESPACE}"