-
Notifications
You must be signed in to change notification settings - Fork 0
Installation Guide
Singh, Prabhu (He/Him/His) edited this page Apr 8, 2026
·
7 revisions
This guide covers installing Logsenta-Engine using Helm charts.
- Prerequisites
- Quick Start
- Installation Methods
- Storage Backend Setup
- Verify Installation
- Upgrade
- Uninstall
| Component | Version | Description |
|---|---|---|
| Kubernetes | 1.24+ | Target cluster |
| Helm | 3.0+ | Package manager |
| kubectl | Latest | Cluster access configured |
| Storage Backend | Requirements |
|---|---|
| PostgreSQL | PostgreSQL 12+ |
| MongoDB | MongoDB 4.4+ |
| MySQL | MySQL 8.0+ |
| Elasticsearch | Elasticsearch 7.x/8.x |
| Azure Log Analytics | Azure subscription, Workspace ID, Shared Key |
| AWS CloudWatch | AWS account, IAM credentials or IRSA |
| GCP Cloud Logging | GCP project, Service Account or Workload Identity |
git clone https://github.com/DevOpsArts/logsenta.git
cd logsentahelm install logsenta-engine ./charts/logsenta-engine \
--namespace logsenta \
--create-namespaceThis installs Logsenta with:
- File storage (logs written to
/logsin the pod) - Monitoring
defaultandkube-systemnamespaces - Error pattern detection enabled
# Clone the repository
git clone https://github.com/DevOpsArts/logsenta.git
cd logsenta
# Install from local chart
helm install logsenta-engine ./charts/logsenta-engine \
--namespace logsenta \
--create-namespace \
--set storage.type=postgresql \
--set connections.postgresql.host=postgresql.database.svc.cluster.local \
--set connections.postgresql.username=logsenta \
--set connections.postgresql.password=<YOUR_PASSWORD>Create a values-production.yaml:
# values-production.yaml
replicaCount: 3
image:
repository: devopsart1/logsenta-engine
tag: "0.4.3"
leaderElection:
enabled: true
storage:
type: azure
monitoring:
namespaces:
- default
- kube-system
- production
- staging
connections:
azure:
enabled: true
workspaceId: "" # Set via --set
sharedKey: "" # Set via --set
logType: "LogsentaK8sLogs"
scalability:
maxWorkers: 100
bufferSize: 5000
resources:
requests:
memory: 512Mi
cpu: 200m
limits:
memory: 1Gi
cpu: 1000mInstall with values file:
helm install logsenta-engine logsenta/logsenta-engine \
--namespace logsenta \
--create-namespace \
-f values-production.yaml \
--set connections.azure.workspaceId=$AZURE_WORKSPACE_ID \
--set connections.azure.sharedKey=$AZURE_SHARED_KEY# Install PostgreSQL (if not exists)
helm install postgresql bitnami/postgresql -n database --create-namespace \
--set auth.username=logsenta \
--set auth.password=<STRONG_PASSWORD> \
--set auth.database=k8s_logs
# Install Logsenta with PostgreSQL
# NOTE: Setting storage.type automatically enables the connection configuration
helm install logsenta-engine ./charts/logsenta-engine \
--namespace logsenta \
--create-namespace \
--set storage.type=postgresql \
--set connections.postgresql.host=postgresql.database.svc.cluster.local \
--set connections.postgresql.username=logsenta \
--set connections.postgresql.password=<STRONG_PASSWORD> \
--set connections.postgresql.database=k8s_logs# Install MySQL (if not exists)
helm install mysql bitnami/mysql -n database --create-namespace \
--set auth.rootPassword=<ROOT_PASSWORD> \
--set auth.username=logsenta \
--set auth.password=<STRONG_PASSWORD> \
--set auth.database=k8s_logs
# Install Logsenta with MySQL
helm install logsenta-engine ./charts/logsenta-engine \
--namespace logsenta \
--create-namespace \
--set storage.type=mysql \
--set connections.mysql.host=mysql.database.svc.cluster.local \
--set connections.mysql.username=logsenta \
--set connections.mysql.password=<STRONG_PASSWORD># Install MongoDB
helm install mongodb bitnami/mongodb -n database --create-namespace \
--set auth.rootPassword=<ROOT_PASSWORD> \
--set auth.username=logsenta \
--set auth.password=<STRONG_PASSWORD> \
--set auth.database=k8s_logs
# Install Logsenta with MongoDB
helm install logsenta-engine ./charts/logsenta-engine \
--namespace logsenta \
--create-namespace \
--set storage.type=mongodb \
--set connections.mongodb.host=mongodb.database.svc.cluster.local \
--set connections.mongodb.username=logsenta \
--set connections.mongodb.password=<STRONG_PASSWORD># Get your Azure Log Analytics credentials
# Workspace ID: Azure Portal > Log Analytics Workspace > Agents > Workspace ID
# Shared Key: Azure Portal > Log Analytics Workspace > Agents > Primary Key
helm install logsenta-engine ./charts/logsenta-engine \
--namespace logsenta \
--create-namespace \
--set storage.type=azure \
--set connections.azure.workspaceId="<WORKSPACE_ID>" \
--set connections.azure.sharedKey="<PRIMARY_KEY>" \
--set connections.azure.logType="LogsentaK8sLogs"Query logs in Azure Portal:
LogsentaK8sLogs_CL
| where TimeGenerated > ago(1h)
| project TimeGenerated, namespace_s, pod_name_s, error_line_s
| order by TimeGenerated desc# Using IAM credentials
helm install logsenta-engine ./charts/logsenta-engine \
--namespace logsenta \
--create-namespace \
--set storage.type=aws \
--set connections.aws.region=us-east-1 \
--set connections.aws.logGroup=/kubernetes/logsenta \
--set connections.aws.accessKeyId=$AWS_ACCESS_KEY_ID \
--set connections.aws.secretAccessKey=$AWS_SECRET_ACCESS_KEY
# Using IRSA (recommended for EKS)
helm install logsenta-engine ./charts/logsenta-engine \
--namespace logsenta \
--create-namespace \
--set storage.type=aws \
--set connections.aws.region=us-east-1 \
--set connections.aws.logGroup=/kubernetes/logsenta \
--set serviceAccount.annotations."eks\.amazonaws\.com/role-arn"=arn:aws:iam::ACCOUNT:role/logsenta-role# Using Workload Identity (recommended for GKE)
helm install logsenta-engine ./charts/logsenta-engine \
--namespace logsenta \
--create-namespace \
--set storage.type=gcp \
--set connections.gcp.projectId=$GCP_PROJECT_ID \
--set connections.gcp.logName=logsenta \
--set serviceAccount.annotations."iam\.gke\.io/gcp-service-account"=logsenta@$GCP_PROJECT_ID.iam.gserviceaccount.com# Install Elasticsearch (if not exists)
helm install elasticsearch elastic/elasticsearch -n logging --create-namespace
# Install Logsenta with Elasticsearch
helm install logsenta-engine ./charts/logsenta-engine \
--namespace logsenta \
--create-namespace \
--set storage.type=elasticsearch \
--set connections.elasticsearch.hosts="{http://elasticsearch-master.logging.svc.cluster.local:9200}" \
--set connections.elasticsearch.index=k8s-error-logskubectl get pods -n logsenta -l app=logsenta-engineExpected output:
NAME READY STATUS RESTARTS AGE
logsenta-engine-xxxxxxxxxx-xxxxx 1/1 Running 0 2m
kubectl logs -n logsenta -l app=logsenta-engine --tail=50Expected output:
INFO - Starting Logsenta (Scalable Edition)
INFO - Configuration: max_workers=20, buffer_size=5000, rate_limit=1000.0/s
INFO - Storage backend initialized: AzureLogAnalyticsStorage
INFO - Starting pod watcher (max_workers=20)
INFO - Started monitoring pod: kube-system/coredns-xxx/coredns
kubectl get configmap logsenta-engine-config -n logsenta -o yamlCreate a test pod that generates errors:
kubectl run error-test --image=busybox --restart=Never -- sh -c 'echo "ERROR: Test error message"; sleep 300'Check if Logsenta captures it:
kubectl logs -n logsenta -l app=logsenta-engine | grep "Error detected"helm repo update
helm upgrade logsenta-engine logsenta/logsenta-engine \
--namespace logsenta \
--reuse-valueshelm upgrade logsenta-engine logsenta/logsenta-engine \
--namespace logsenta \
--reuse-values \
--set scalability.maxWorkers=100 \
--set resources.limits.memory=2Gihelm history logsenta-engine -n logsenta
kubectl rollout status deployment/logsenta-engine -n logsentahelm uninstall logsenta-engine -n logsentakubectl delete namespace logsentakubectl delete pvc -n logsenta -l app=logsenta-engine- Configuration Reference - All available configuration options
- Storage Backends - Detailed storage backend setup
- Capacity Planning - Resource sizing guide
- Troubleshooting - Common issues and solutions