AWS, GCP, Digital Ocean are supported out of the box. For installation in a different cloud provider or in your own datacenter, any S3 compatible Block Storage can be supplied, such as minio server.
Helm version 3.0+ (Helm CLI)
Kubectl CLI
A running Kubernetes cluster. Minimum of 2 cores and 4 GB memory required
Kafka for sourcing logs. Other topics to be created during installation
S3 credentials and a bucket to store index and data files
AVX2 support needed on compute machines
On linux (or unix machines) information about your cpu is in /proc/cpuinfo. You can extract information from there by hand, or with a grep command (grep flags /proc/cpuinfo). Also most compilers will automatically define AVX2 so you can check for that too
$ helm repo list or helm repo ls
NAME URL
episilia https://episilia.gitlab.io/episilia-helm/release
Searching for charts in the repository:
$ helm search repo episilia
Step 2 : Configure values
Update global values in the episilia/episilia-cpanel master chart values.yaml file. All configurable values are explained in the section below titled "Configuration".
Inspect the values before installing application use below:
ops:log:debug:on# Enable to get debug logs in all the serverslicense:url:episilia-cpanel:8080cpanel:data:publish:interval:seconds:300# Time interval in which cpanel will be pushing metrics to console
Kafka config
All kafka specific configuration goes below.
kafka:metadata:broker:list:localhost:9092# The kafka brokergroup:search:episilia-search-group# Kafka consumer-group for searchcpanel:episilia-cpanel-group# Kafka consumer-group for cpanellogwatcher:episilia-logwatcher-group# Kafka consumer-group for log-watcherlogwatcher.tail:episilia-logwatcher-tail-group# Kafka consumer-group for log-watcher-taillogwatcher.alert:episilia-logwatcher-alert-group# Kafka consumer-group for log-watcher-alerttopic:index:live:stagefiles-topic# Topic for internal publish indexed files - stage.topicoptimized:optfiles-topic# Topic for internal optimize.topic: publish file names post optimizationoptimize:request:stagefolder-topic#optimize.request.topic send folders to optimizecpanel:in:cpaneld-topic# Internal topic cpanel.data.topicout:cpaneld-topic# Internal topic cpanel.data.topicalert:response:out:alert_outindexer:logs:topics:logs# Topic from where logs are loaded.group:episilia-indexer-group# Kafka consumer-group for indexer
indexer:image:repository:episilia/episilia-log-indexer# docker image of episilia-log-indexertag:*releasereplicaCount:"1"# kubernetes pod replicas of episilia-log-indexerresources:limits:cpu:800m# cpu limit on episilia-log-indexer memory:1024Mi# memory limit on episilia-log-indexerrequests:cpu:400m# cpu request on episilia-log-indexermemory:300Mi# memory request on episilia-log-indexerlogs:source:kafka# source: kafka # s3 or kafkaschema:appid:fixed:"defaultApp"# If appid is a fixed stringkeys:"project.app_id"# label(s) for app identifiertenantid:fixed:"defaultTenant"# If tenantid is a fixed string keys:""# label(s) for tenant identifier message:key:"log"# actual log message keytimestamp:key:"time"# timestamp keyformats:"%Y-%m-%dT%H:%M:%S"#to specify timestamp format (ex: %Y-%m-%dT%H:%M:%S )exclude:"time"# labels to be excluded from the listoptimizer:replicaCount:"1"# kubernetes pod replicas of episilia-optimizer resources:limits:cpu:800m# cpu limit on episilia-optimizermemory:1024Mi# memory limit on episilia-optimizerrequests:cpu:500m# cpu request on episilia-optimizer memory:300Mi# memory request on episilia-optimizer
Alert
Config for alert server .
alert:resources:limits:cpu:500m# cpu limit on episilia-optimizermemory:600Mi# memory limit on episilia-optimizerrequests:cpu:300m# cpu request on episilia-optimizermemory:300Mi# memory request on episilia-optimizerrules.file.url:#s3 path of alert rules fileprometheus.gateway:localhost:5070# push-gateway url
Search
Config for search server goes below.
search:image:repository:episilia/episilia-search# docker image of episilia-searchtag:*releasereplicaCount:"1"# kubernetes pod replicas of episilia-search resources:limits:cpu:"1"# cpu limit on episilia-searchmemory:2048Mi# memory limit on episilia-searchrequests:cpu:500m# cpu request on episilia-searchmemory:600Mi# memory request on episilia-searchapi:timeout:seconds:40# timeout for search while queryinglive:from:hours:48# hours from when the required index blocks should be loadedto: hours: 0 # hours till when the required index blocks should be loaded, Note: value to be "0" to get instant logs
labels:exclude:"@timestamp,log"# Lables excluded from grafana dropdown GUI.
Config for historic search server.
fixedSearch: bucket: "" # s3 bucket for historic search to run parallelly, Note: if the value is empty it takes datastore.s3.bucket value as default
folder: "" # s3 folder for historic search to run parallelly, Note: if the value is empty it takes datastore.s3.folder value as default
replicaCount:"1"# kubernetes pod replicas of historic episilia-search resources:limits:cpu:"1"# cpu limit on historic episilia-searchmemory:1024Mi# memory limit on historic episilia-searchrequests:cpu:500m# cpu request on historic episilia-searchmemory:600Mi# memory request on historic episilia-searchfixed:from:yyyymmddhh:"2021092100"# the date from when the required index blocks should be loadedto:yyyymmddhh:"2021092202"# the date till when the required index blocks should be loadedapi:timeout:seconds:40# timeout for search while queryinglabels:exclude:"@timestamp,log"# Lables excluded from grafana dropdown GUI.
Gateway
Gateway specific configuration goes below.
gateway:image:repository:episilia/episilia-gateway# docker image of episilia-gatewaytag:*releaseservice:type:ClusterIP# service type of episilia-gatewayreplicaCount:"1"# kubernetes pod replicas of episilia-gatewayresources:limits:cpu:500m# cpu limit on episilia-gatewaymemory:600Mi# memory limit on episilia-gatewayrequests:cpu:300m# cpu request on episilia-gatewaymemory:200Mi# memory request on episilia-gatewaysearch:timeout:seconds:40# timeout of the query from gateway
Control Panel
Control Panel specific configuration goes below.
cpanel:ops:healthchecks:interval:mins:"5"# time interval in which metrics are pushedexclude:list:""# to exclude the specific metricsapi:access:# Unique keys to access the episilia consolekey:tokentoken:randompost:server:"https://console.episilia.com/publish_cpanel_data"# Url of the consoleget:server:""grpc:port:"8080"metrics:port:"8090"
Persistence Volume
If PV is enabled, configure the same below.
persistence:enabled:false# to enable PVC mountPath:"/data"# mount path of PVC storageClassName:do-block-storage# storage class name (differs on the cloud services that are used)accessModes: - ReadWriteOnce# access modessize:"40Gi"# size of PVC which will be mounted to episilia-search for live search historicSize: "20Gi" # size of PVC which will be mounted to episilia-search for historic search
# annotations: {}finalizers: - kubernetes.io/pvc-protection# selectorLabels: {}# subPath: ""# existingClaim:
flag -i or –install can be specified to run an install before if a release by this name doesn’t already exist. Otherwise, perform a rollback. If revision is not specified, the chart is rolled back to the previous version.