Quickstart: Running Logstash on Elastic Cloud on Kubernetes
ECK
Add the following specification to create a minimal Logstash deployment that will listen to a Beats agent or Elastic Agent configured to send to Logstash on port 5044, create the service and write the output to an Elasticsearch cluster named quickstart, created in Deploy an Elasticsearch cluster.
cat <<'EOF' | kubectl apply -f -
apiVersion: logstash.k8s.elastic.co/v1alpha1
kind: Logstash
metadata:
name: quickstart
spec:
count: 1
elasticsearchRefs:
- name: quickstart
clusterName: qs
version: 9.2.0
pipelines:
- pipeline.id: main
config.string: |
input {
beats {
port => 5044
}
}
output {
elasticsearch {
hosts => [ "${QS_ES_HOSTS}" ]
user => "${QS_ES_USER}"
password => "${QS_ES_PASSWORD}"
ssl_certificate_authorities => "${QS_ES_SSL_CERTIFICATE_AUTHORITY}"
}
}
services:
- name: beats
service:
spec:
type: NodePort
ports:
- port: 5044
name: "filebeat"
protocol: TCP
targetPort: 5044
EOF
Check Configuration examples for more ready-to-use manifests.
Check the status of Logstash
kubectl get logstashNAME AVAILABLE EXPECTED AGE VERSION quickstart 3 3 4s 9.2.0List all the Pods that belong to a given Logstash specification.
kubectl get pods --selector='logstash.k8s.elastic.co/name=quickstart'NAME READY STATUS RESTARTS AGE quickstart-ls-0 1/1 Running 0 91sAccess logs for a Pod.
kubectl logs -f quickstart-ls-0