SigLens Helm Chart provides a simple deployment for a highly performant, low overhead observability solution that supports automatic Kubernetes events & container logs exporting
helm repo add siglens-repo https://siglens.github.io/charts
helm install siglens siglens-repo/siglens
Please ensure that helm
is installed.
To install SigLens from source:
git clone
cd charts/siglens
helm install siglens .
Important configs in values.yaml
Values | Description |
---|---|
siglens.configs | Server configs for siglens |
siglens.storage | Defines storage class to use for siglens StatefulSet |
siglens.storage.size | Storage size for persistent volume claim. Recommended to be half of license limit |
siglens.ingest.service | Configurations to expose an ingest service |
siglens.ingest.service | Configurations to expose a query service |
k8sExporter.enabled | Enable automatic exporting of k8s events using an exporting tool |
k8sExporter.configs.index | Output index name for kubernetes events |
logsExporter.enabled | Enable automatic exporting of logs using a Daemonset fluentd |
logsExporter.configs.indexPrefix | Prefix of index name used by logStash. Suffix will be namespace of log source |
If k8sExporter or logsExporter is enabled, then a ClusterRole will be created to get/watch/list all resources in all apigroups. Which resources and apiGroups can be edited in serviceAccount.yaml
Currently, only awsEBS
and local
storage classes provisioners can be configured by setting storage.defaultClass: false
and setting the required configs. To add more types of storage classes, add the necessary provisioner info to storage.yaml
.
It it recommended to use a storage class that supports volume expansion.
Example configuration to use an EBS storage class.
storage:
defaultClass: false
size: 20Gi
awsEBS:
parameters:
type: "gp2"
fsType: "ext4"
Example configuration to use a local storage class.
storage:
defaultClass: false
size: 20Gi
local:
hostname: minikube
capacity: 5Gi
path: /data # must be present on local machine
To add AWS credentials, add the following configuration:
serviceAccount:
annotations:
eks.amazonaws.com/role-arn: <<arn-of-role-to-use>>
If issues with AWS credentials are encountered, refer to this guide.
To use abc.txt
as a license, add the following configmap:
kubectl create configmap siglens-license --from-file=license.txt=abc.txt
Set the following config:
siglens:
configs:
license: abc.txt
-
Prepare Configuration:
Begin by creating acustom-values.yaml
file, where you'll provide your license key and other necessary configurations. Please look at this samplevalues.yaml
file for all the available config. By default, the Helm chart installs in thesiglensent
namespace. If needed, you can change this in yourcustom-values.yaml
, or manually create the namespace with the command:kubectl create namespace siglensent
-
Add Helm Repository:
Add the Siglens Helm repository with the following command:helm repo add siglens-repo https://siglens.github.io/charts
-
Update License and TLS Settings:
Update yourlicenseBase64
with your Base64-encoded license key. For license key, please reach out at [email protected]
If TLS is enabled, ensure you also updateacme.registrationEmail
,ingestHost
, andqueryHost
in your configuration. -
Apply Cert-Manager (If TLS is enabled):
If TLS is enabled, apply the Cert-Manager CRDs using the following command:kubectl apply -f https://github.com/cert-manager/cert-manager/releases/download/v1.14.4/cert-manager.crds.yaml
-
Update the Resources Config:
Update the CPU and memory resources for both raft and worker nodes:raft.deployment.cpu.request
,raft.deployment.memory.request
,worker.deployment.cpu.request
,worker.deployment.cpu.request
and also update the corresponding limits.
Also set the required storage size for the PVC of the worker node:pvc.size
and storage class type:storageClass.diskType
-
Enabling S3 as Blob Storage: To enable
S3
storage. Please set the following the config in thevalues.yaml
file underconfig
section:config: ... # other config params blobStoreMode: "S3" s3: enabled: true # Set to true if you want to use S3 bucketName: "bucketName" bucketPrefix: "data" regionName: "us-east-1" ... # other config params
-
Create Secret Keys for AWS S3 (If Applicable): If S3 config is enabled. Then create a secret with IAM keys that have access to S3 using the below command:
kubectl create secret generic aws-keys \ --from-literal=aws_access_key_id=<accessKey> \ --from-literal=aws_secret_access_key=<secretKey> \ --namespace=siglensent
-
Install Siglensent:
Install Siglensent using Helm with your custom configuration file:helm install siglensent siglens-repo/siglensent -f custom-values.yaml --namespace siglensent
-
Update DNS for TLS (If Applicable):
If you are using TLS, update your DNS settings to point to the ingress controller. First, find the load balancer associated with the ingress controller by running:kubectl get svc -n siglensent
Locate the service with the name
ingress-nginx-controller
in the appropriate namespace, and create a CNAME record in your DNS to point to this load balancer.
Note: If you uninstall and reinstall the chart, you'll need to update your
DNS again. But if you do a helm upgrade
instead, the ingress controller will
persist, so you won't have to update your DNS.