Files

352 lines
8.4 KiB
YAML

replicaCount: 1
podDisruptionBudget:
maxUnavailable: 1
updateStrategy:
type: RollingUpdate
terminationGracePeriodSeconds: 30
image:
repository: docker.elastic.co/logstash/logstash-oss
tag: 7.1.1
pullPolicy: IfNotPresent
## Add secrets manually via kubectl on kubernetes cluster and reference here
# pullSecrets:
# - name: "myKubernetesSecret"
service:
type: ClusterIP
# clusterIP: None
# nodePort:
# Set this to local, to preserve client source ip. Default stripes out the source ip
# externalTrafficPolicy: Local
annotations: {}
## AWS example for use with LoadBalancer service type.
# external-dns.alpha.kubernetes.io/hostname: logstash.cluster.local
# service.beta.kubernetes.io/aws-load-balancer-cross-zone-load-balancing-enabled: "true"
# service.beta.kubernetes.io/aws-load-balancer-internal: "true"
ports:
# syslog-udp:
# port: 1514
# targetPort: syslog-udp
# protocol: UDP
# syslog-tcp:
# port: 1514
# targetPort: syslog-tcp
# protocol: TCP
beats:
port: 5044
targetPort: beats
protocol: TCP
# http:
# port: 8080
# targetPort: http
# protocol: TCP
# loadBalancerIP: 10.0.0.1
# loadBalancerSourceRanges:
# - 192.168.0.1
ports:
# - name: syslog-udp
# containerPort: 1514
# protocol: UDP
# - name: syslog-tcp
# containerPort: 1514
# protocol: TCP
- name: beats
containerPort: 5044
protocol: TCP
# - name: http
# containerPort: 8080
# protocol: TCP
ingress:
enabled: false
annotations: {}
# kubernetes.io/ingress.class: nginx
# kubernetes.io/tls-acme: "true"
path: /
hosts:
- logstash.cluster.local
tls: []
# - secretName: logstash-tls
# hosts:
# - logstash.cluster.local
# set java options like heap size
logstashJavaOpts: "-Xmx1g -Xms1g"
resources: {}
# We usually recommend not to specify default resources and to leave this as a conscious
# choice for the user. This also increases chances charts run on environments with little
# resources, such as Minikube. If you do want to specify resources, uncomment the following
# lines, adjust them as necessary, and remove the curly braces after 'resources:'.
# limits:
# cpu: 100m
# memory: 128Mi
# requests:
# cpu: 100m
# memory: 128Mi
priorityClassName: ""
nodeSelector: {}
tolerations: []
securityContext:
fsGroup: 1000
runAsUser: 1000
affinity: {}
# podAntiAffinity:
# requiredDuringSchedulingIgnoredDuringExecution:
# - topologyKey: "kubernetes.io/hostname"
# labelSelector:
# matchLabels:
# release: logstash
podAnnotations: {}
# iam.amazonaws.com/role: "logstash-role"
# prometheus.io/scrape: "true"
# prometheus.io/path: "/metrics"
# prometheus.io/port: "9198"
podLabels: {}
# team: "developers"
# service: "logstash"
extraEnv: []
envFrom: []
# - configMapRef:
# name: configMap-name
# - secretRef:
# name: secret-name
extraInitContainers: []
# - name: echo
# image: busybox
# imagePullPolicy: Always
# args:
# - echo
# - hello
podManagementPolicy: OrderedReady
# can be OrderReady or Parallel
livenessProbe:
httpGet:
path: /
port: monitor
initialDelaySeconds: 20
# periodSeconds: 30
# timeoutSeconds: 30
# failureThreshold: 6
# successThreshold: 1
readinessProbe:
httpGet:
path: /
port: monitor
initialDelaySeconds: 20
# periodSeconds: 30
# timeoutSeconds: 30
# failureThreshold: 6
# successThreshold: 1
persistence:
enabled: true
## logstash data Persistent Volume Storage Class
## If defined, storageClassName: <storageClass>
## If set to "-", storageClassName: "", which disables dynamic provisioning
## If undefined (the default) or set to null, no storageClassName spec is
## set, choosing the default provisioner. (gp2 on AWS, standard on
## GKE, AWS & OpenStack)
##
# storageClass: "-"
accessMode: ReadWriteOnce
size: 2Gi
volumeMounts:
- name: data
mountPath: /usr/share/logstash/data
- name: patterns
mountPath: /usr/share/logstash/patterns
- name: files
mountPath: /usr/share/logstash/files
- name: pipeline
mountPath: /usr/share/logstash/pipeline
volumes: []
# - name: tls
# secret:
# secretName: logstash-tls
# - name: pipeline
# configMap:
# name: logstash-pipeline
# - name: certs
# hostPath:
# path: /tmp
exporter:
logstash:
enabled: false
image:
repository: bonniernews/logstash_exporter
tag: v0.1.2
pullPolicy: IfNotPresent
env: {}
resources: {}
path: /metrics
port: 9198
target:
port: 9600
path: /metrics
livenessProbe:
httpGet:
path: /metrics
port: ls-exporter
periodSeconds: 15
timeoutSeconds: 60
failureThreshold: 8
successThreshold: 1
readinessProbe:
httpGet:
path: /metrics
port: ls-exporter
periodSeconds: 15
timeoutSeconds: 60
failureThreshold: 8
successThreshold: 1
serviceMonitor:
## If true, a ServiceMonitor CRD is created for a prometheus operator
## https://github.com/coreos/prometheus-operator
##
enabled: false
# namespace: monitoring
labels: {}
interval: 10s
scrapeTimeout: 10s
scheme: http
port: metrics
elasticsearch:
host: elasticsearch-client.default.svc.cluster.local
port: 9200
## ref: https://github.com/elastic/logstash-docker/blob/master/build/logstash/env2yaml/env2yaml.go
config:
config.reload.automatic: "true"
path.config: /usr/share/logstash/pipeline
path.data: /usr/share/logstash/data
## ref: https://www.elastic.co/guide/en/logstash/current/persistent-queues.html
queue.checkpoint.writes: 1
queue.drain: "true"
queue.max_bytes: 1gb # disk capacity must be greater than the value of `queue.max_bytes`
queue.type: persisted
## Patterns for filters.
## Each YAML heredoc will become a separate pattern file.
patterns:
# main: |-
# TESTING {"foo":.*}$
## Custom files that can be referenced by plugins.
## Each YAML heredoc will become located in the logstash home directory under
## the files subdirectory.
files:
# logstash-template.json: |-
# {
# "order": 0,
# "version": 1,
# "index_patterns": [
# "logstash-*"
# ],
# "settings": {
# "index": {
# "refresh_interval": "5s"
# }
# },
# "mappings": {
# "doc": {
# "_meta": {
# "version": "1.0.0"
# },
# "enabled": false
# }
# },
# "aliases": {}
# }
## Custom binary files encoded as base64 string that can be referenced by plugins
## Each base64 encoded string is decoded & mounted as a file under logstash home directory under
## the files subdirectory.
binaryFiles: {}
## NOTE: 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.
inputs:
main: |-
input {
# udp {
# port => 1514
# type => syslog
# }
# tcp {
# port => 1514
# type => syslog
# }
beats {
port => 5044
}
# http {
# port => 8080
# }
# kafka {
# ## ref: https://www.elastic.co/guide/en/logstash/current/plugins-inputs-kafka.html
# bootstrap_servers => "kafka-input:9092"
# codec => json { charset => "UTF-8" }
# consumer_threads => 1
# topics => ["source"]
# type => "example"
# }
}
filters:
# main: |-
# filter {
# }
outputs:
main: |-
output {
# stdout { codec => rubydebug }
elasticsearch {
hosts => ["${ELASTICSEARCH_HOST}:${ELASTICSEARCH_PORT}"]
manage_template => false
index => "%{[@metadata][beat]}-%{+YYYY.MM.dd}"
}
# kafka {
# ## ref: https://www.elastic.co/guide/en/logstash/current/plugins-outputs-kafka.html
# bootstrap_servers => "kafka-output:9092"
# codec => json { charset => "UTF-8" }
# compression_type => "lz4"
# topic_id => "destination"
# }
}
serviceAccount:
# Specifies whether a ServiceAccount should be created
create: true
# The name of the ServiceAccount to use.
# If not set and create is true, a name is generated using the fullname template
name:
## Additional arguments to pass to the Logstash entrypoint
# args:
# - fizz