X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=ric-aux%2Fhelm%2Fmc-stack%2Fcharts%2Flogstash%2FREADME.md;fp=ric-aux%2Fhelm%2Fmc-stack%2Fcharts%2Flogstash%2FREADME.md;h=5ae3670f7f28e5192aea4a8f25a6731642cade53;hb=dc00cdf008775e2ac5dddb186d1eb81e80370b69;hp=0000000000000000000000000000000000000000;hpb=ca9b3ee64b3966fa1d20226b361b4f614434129e;p=it%2Fdep.git diff --git a/ric-aux/helm/mc-stack/charts/logstash/README.md b/ric-aux/helm/mc-stack/charts/logstash/README.md new file mode 100755 index 00000000..5ae3670f --- /dev/null +++ b/ric-aux/helm/mc-stack/charts/logstash/README.md @@ -0,0 +1,126 @@ +# Logstash + +[Logstash](https://www.elastic.co/products/logstash) is an open source, server-side data processing pipeline that ingests data from a multitude of sources simultaneously, transforms it, and then sends it to your favorite “stash.” + +## TL;DR; + +```console +$ helm install stable/logstash +``` + +## Installing the Chart + +To install the chart with the release name `my-release`: + +```console +$ helm install --name my-release stable/logstash +``` + +## Uninstalling the Chart + +To uninstall/delete the `my-release` deployment: + +```console +$ helm delete my-release +``` + +The command removes nearly all the Kubernetes components associated with the +chart and deletes the release. + +## Best Practices + +### Release and tune this chart once per Logstash pipeline + +To achieve multiple pipelines with this chart, current best practice is to +maintain one pipeline per chart release. In this way configuration is +simplified and pipelines are more isolated from one another. + +### Default Pipeline: Beats Input -> Elasticsearch Output + +Current best practice for ELK logging is to ship logs from hosts using Filebeat +to logstash where persistent queues are enabled. Filebeat supports structured +(e.g. JSON) and unstructured (e.g. log lines) log shipment. + +### Load Beats-generated index template into Elasticsearch + +To best utilize the combination of Beats, Logstash and Elasticsearch, +load Beats-generated index templates into Elasticsearch as described [here]( +https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-template.html). + +On a remote-to-Kubernetes Linux instance you might run the following command to +load that instance's Beats-generated index template into Elasticsearch +(Elasticsearch hostname will vary). + +``` +filebeat setup --template -E output.logstash.enabled=false \ + -E 'output.elasticsearch.hosts=["elasticsearch.cluster.local:9200"]' +``` + +### Links + +Please review the following links that expound on current best practices. + +- https://www.elastic.co/blog/structured-logging-filebeat +- https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-template.html +- https://www.elastic.co/guide/en/logstash/current/deploying-and-scaling.html +- https://www.elastic.co/guide/en/logstash/current/persistent-queues.html + +## Configuration + +The following table lists the configurable parameters of the chart and its default values. + +| Parameter | Description | Default | +| --------------------------- | -------------------------------------------------- | ------------------------------------------------ | +| `replicaCount` | Number of replicas | `1` | +| `podDisruptionBudget` | Pod disruption budget | `maxUnavailable: 1` | +| `updateStrategy` | Update strategy | `type: RollingUpdate` | +| `image.repository` | Container image name | `docker.elastic.co/logstash/logstash-oss` | +| `image.tag` | Container image tag | `6.7.0` | +| `image.pullPolicy` | Container image pull policy | `IfNotPresent` | +| `service.type` | Service type (ClusterIP, NodePort or LoadBalancer) | `ClusterIP` | +| `service.annotations` | Service annotations | `{}` | +| `service.ports` | Ports exposed by service | beats | +| `service.loadBalancerIP` | The load balancer IP for the service | unset | +| `service.loadBalancerSourceRanges` | CIDR ranges to allow access to load balancer | unset | +| `service.clusterIP` | The cluster IP for the service | unset | +| `service.nodePort` | The nodePort for the service | unset | +| `service.externalTrafficPolicy` | Set externalTrafficPolicy | unset | +| `ports` | Ports exposed by logstash container | beats | +| `ingress.enabled` | Enables Ingress | `false` | +| `ingress.annotations` | Ingress annotations | `{}` | +| `ingress.path` | Ingress path | `/` | +| `ingress.hosts` | Ingress accepted hostnames | `["logstash.cluster.local"]` | +| `ingress.tls` | Ingress TLS configuration | `[]` | +| `logstashJavaOpts` | Java options for logstash like heap size | `"-Xmx1g -Xms1g"` | +| `resources` | Pod resource requests & limits | `{}` | +| `priorityClassName` | priorityClassName | `nil` | +| `nodeSelector` | Node selector | `{}` | +| `tolerations` | Tolerations | `[]` | +| `affinity` | Affinity or Anti-Affinity | `{}` | +| `podAnnotations` | Pod annotations | `{}` | +| `podLabels` | Pod labels | `{}` | +| `extraEnv` | Extra pod environment variables | `[]` | +| `extraInitContainers` | Add additional initContainers | `[]` | +| `podManagementPolicy` | podManagementPolicy of the StatefulSet | `OrderedReady` | +| `livenessProbe` | Liveness probe settings for logstash container | (see `values.yaml`) | +| `readinessProbe` | Readiness probe settings for logstash container | (see `values.yaml`) | +| `persistence.enabled` | Enable persistence | `true` | +| `persistence.storageClass` | Storage class for PVCs | unset | +| `persistence.accessMode` | Access mode for PVCs | `ReadWriteOnce` | +| `persistence.size` | Size for PVCs | `2Gi` | +| `volumeMounts` | Volume mounts to configure for logstash container | (see `values.yaml`) | +| `volumes` | Volumes to configure for logstash container | [] | +| `terminationGracePeriodSeconds` | Duration the pod needs to terminate gracefully | `30` +| `exporter.logstash` | Prometheus logstash-exporter settings | (see `values.yaml`) | +| `exporter.logstash.enabled` | Enables Prometheus logstash-exporter | `false` | +| `elasticsearch.host` | ElasticSearch hostname | `elasticsearch-client.default.svc.cluster.local` | +| `elasticsearch.port` | ElasticSearch port | `9200` | +| `config` | Logstash configuration key-values | (see `values.yaml`) | +| `patterns` | Logstash patterns configuration | `nil` | +| `files` | Logstash custom files configuration | `nil` | +| `binaryFiles` | Logstash custom binary files | `nil` | +| `inputs` | Logstash inputs configuration | beats | +| `filters` | Logstash filters configuration | `nil` | +| `outputs` | Logstash outputs configuration | elasticsearch | +| `securityContext.fsGroup` | Group ID for the container | `1000` | +| `securityContext.runAsUser` | User ID for the container | `1000` |