Moving dev back to LF Gerrit
[it/dep.git] / ric-aux / 80-Auxiliary-Functions / helm / mc-stack / charts / logstash / README.md
diff --git a/ric-aux/80-Auxiliary-Functions/helm/mc-stack/charts/logstash/README.md b/ric-aux/80-Auxiliary-Functions/helm/mc-stack/charts/logstash/README.md
new file mode 100755 (executable)
index 0000000..5ae3670
--- /dev/null
@@ -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`                                                  |